-
Notifications
You must be signed in to change notification settings - Fork 6.4k
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
[wxwidgets] Use vcpkg gtk3 for linux et al., fix mingw cross builds #27087
Conversation
In general update is cool, but how to fix now all these issues?
|
@AenBleidd Try x64-linux-dynamic. Seems like something is missing to link a lot of x (XRender,XI,XFixes) libraries and dbus |
@AenBleidd Unlike most other ports, there is wxwidgets cmake usage validation in vcpkg CI - also for x64-linux. vcpkg/ports/wxwidgets/example/CMakeLists.txt Lines 5 to 15 in 083f103
The screenshot was taken from this example, built by vcpkg-ci-wxwidgets:x64-linux. How do you detect the link libraries? |
We do not use cmake in this case, so we do detection this way: https://github.com/BOINC/boinc/blob/master/linux/ci_configure_manager.sh#L17 According to this build log, X11 libraries are there: https://github.com/BOINC/boinc/actions/runs/3218223766/jobs/5262138586 |
Use CMake ;) So the pkg-config files don't give enough linkage info as it seems. |
Thanks, but no: it will require to convert the whole build system (and test it somehow for the whole amount of OSs), so this is definitely not a solution. |
Then use x64-linux-dynamic for testing. It probably doesn't require the transitiv deps in pkg-config to be present. |
I can check test But you call |
No, but it is also not the secret force solving all cross-platform cross-buildsystem issues between upstreams and downstreams. |
could probably use |
Ok, I was able to fix this by changing:
to
Keeping this here in case anyone else will face the same issue |
I don't think it is a good reference. It is probably using the system's pc files, which may or may not reflect the configuration in vcpkg. Note that vcpkg's pc files are usually modified to always provide the needed link libraries for static linkage even without passing By the way you already have a hack to use vpckg's Now some introspection into my Ubuntu 18.04 system. System gtk3, default (dynamic linkage):
System gtk3, static linkage:
vcpkg gtk3:x64-linux, static linkage (but no
vcpkg wxwidgets:x64-linux:
Now that's really a long list of link libraries, including gtk and X. And
Now I wonder why it doesn't work for you. |
Yes, the list of libraries is long, but only these for are mentioned as a libraries to link with:
In my case it was required to add these additionally (from pkg-config) to have a successful build:
Of course there could be an issue in my build scripts/configuration |
It remains unclear how you got the list, but I guess this is the configuration from a dynamic build. In any case, your problems seem to be unrelated to this PR. |
Port
gtk3
was merged 🎉 so let's continue:What does your PR fix?
Fixes building wxwidgets:x64-linux with vcpkg gtk3 (and its vcpkg dependencies) instead of system gtk3 (and its system dependencies).
Fixes [wxwidgets] Build error on Ubuntu with triplet=x64-mingw-static #26571..
Which triplets are supported/not supported? Have you updated the CI baseline?
unchanged but adding x64-linux support in vcpkg CI, yes
Does your PR follow the maintainer guide?
yes
If you have added/updated a port: Have you run
./vcpkg x-add-version --all
and committed the result?yes
Example from vcpkg-ci-wxwidgets on Ubuntu 18.04 (old system gtk3, but wxwidgets finally using latest vcpkg gtk3):