Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add FindCEF module & use it for Linux system builds #1556

Closed

Conversation

dimitry-ishenko
Copy link
Contributor

No description provided.

@dimitry-ishenko
Copy link
Contributor Author

dimitry-ishenko commented Sep 8, 2024

@Julusian I was thinking of using FindCEF for manually fetched version of libcef as well, but this is a bit tricky since CEF doesn't get pulled/extracted until the compile stage. This can partially be worked around by replacing ExternalProject_Add() with FetchContent_Declare()/FetchContent_MakeAvailable(), which will make libcef.so and the headers available for FindCEF, but it still leaves libcef_dll_wrapper.so that needs to be built... Any thoughts?

@dimitry-ishenko
Copy link
Contributor Author

Another option would be to patch CEF itself and make it export targets that can be pulled in by the Server, whether it's manually-built or provided by the system. This might be a better version. You are already patching it anyway. And I can apply the patch to my CEF packages as well.

BTW, if you are interested, I have CEF packages in my PPA here: https://launchpad.net/~ppa-verse/+archive/ubuntu/casparcg

@Julusian
Copy link
Member

Julusian commented Sep 8, 2024

I don't have strong feelings on this really, just that I find the Find* scripts a bit annoying. Partly because they don't work with dependencies pulled in through ExternalProject_Add, and partly because you have to bring your own if cmake doesn't bundle it, and then maintain that. (eg #1522 #1418)
When doing this cmake rework, I removed the FindBoost for a similar reason, but for that we can at least assume that there will be one already on the system (on linux, windows does it manually).

So I am fine with it being done differently when using system vs downloaded version of the library.

I see you have already found my ppa, the packaging is probably not as properly done as yours, but it works well enough. I shall take a look at what you've done for inspiration

@dimitry-ishenko dimitry-ishenko marked this pull request as draft September 8, 2024 20:56
@dimitry-ishenko
Copy link
Contributor Author

dimitry-ishenko commented Sep 8, 2024

OK yeah. CMake people seem to agree (as far as not liking the FindXXX scripts) and suggest that packages should export their own config files. I am going to try to patch the CEF package and make it install the config file. This way it should play nicely with both fetched and installed version.

I see you have already found my ppa, the packaging is probably not as properly done as yours, but it works well enough. I shall take a look at what you've done for inspiration

If you care to give me access to your PPA, I can push my package there. Or, you can just grab mine here:

https://github.com/dimitry-ishenko-casparcg/chromium-embedded-117

and push it yourself. NB: I am using split tarballs to build for amd64, arm64 and armhf, which you probably don't care about.

@dimitry-ishenko
Copy link
Contributor Author

@Julusian I've added build instructions to my repo so you can re-create the package and upload to yours.

Or, if you want, I can be the maintainer for the Debian packages.

I am planning to integrate my CEF patches with the Server, which should help simplify the build system a bit. I will also try to do some work on the build system as discussed in #1489. So, expect some PRs from me shortly. 😅

@dimitry-ishenko
Copy link
Contributor Author

Closing this in favor of #1557

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants