-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
feat(qt): improve qt test_package and fix qt libs dependencies #18650
Conversation
Qt have many libs, each one should be tested to check if link informations is correctly defined in conan recipe with this link test, some libs dependencies have be fixed
🤖 Beep Boop! This pull request is making changes to 'recipes/qt//'. 👋 @ericLemanissier @jwillikers @MartinDelille you might be interested. 😉 |
I detected other pull requests that are modifying qt/5.x.x recipe:
This message is automatically generated by https://github.com/ericLemanissier/conan-center-conflicting-prs so don't hesitate to report issues/improvements there. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a massive piece of work, thanks !
I'm not sure the test recipe covering all modules is compatible with CCI policy though :/
if self.options.get_safe("with_x11", False): | ||
gui_reqs.append("xorg::xorg") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
xorg has to be referenced as a requirement of at least one component. Why do You think it's not needed here, wereas qt checks for these libraries during GUI module configuration https://github.com/qt/qtbase/blob/v5.15.10-lts-lgpl/src/gui/configure.json#L556 ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This dependencies is the first that I try to remove because I know that QtGUI is platform agnostic, and platform dependencies is in platforms plugins. To do this, I add test for QtGui module in test_package. If test can link and run, this mean that dependencies list defined in conanfile is exhaustive.
Now, I have a test to confirm that Xorg is not in QtGUI,
To be precise, xcb_qpa_lib is link against xcb, and platforms/xcb plugins (and platforms/xcb/gl_integrations) is link against xcb_qpa_lib
https://github.com/qt/qtbase/blob/v5.15.10-lts-lgpl/src/plugins/platforms/xcb/xcb_qpa_lib.pro#L94
https://github.com/qt/qtbase/blob/v5.15.10-lts-lgpl/src/plugins/platforms/xcb/xcb-plugin.pro#L3
https://github.com/qt/qtbase/blob/v5.15.10-lts-lgpl/src/plugins/platforms/xcb/gl_integrations/gl_integrations_plugin_base.pri#L1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
xorg is referenced by XcbQpa component
recipes/qt/5.x.x/conanfile.py
Outdated
widget_reqs = ["Gui"] | ||
if self.options.with_freetype: | ||
widget_reqs.append("freetype::freetype") | ||
_create_module("Widgets", widget_reqs) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Freetype is hidden in fontdatabase, plugins.
Their also are reference in platforms/xcb and platforms/minimal plugin, but I don't know why
The only reference to freetype in .pro/.pri for linking with it are:
https://github.com/qt/qtbase/blob/v5.15.10-lts-lgpl/src/platformsupport/fontdatabases/freetype/freetype.pri#L9
https://github.com/qt/qtbase/blob/v5.15.10-lts-lgpl/src/plugins/platforms/xcb/nativepainting/nativepainting.pri#L3
https://github.com/qt/qtbase/blob/v5.15.10-lts-lgpl/src/plugins/platforms/minimal/minimal.pro#L17
I will also remove it from QtWidget
This comment has been minimized.
This comment has been minimized.
…lready in generate() method
Co-authored-by: ericLemanissier <ericLemanissier@users.noreply.github.com>
Co-authored-by: ericLemanissier <ericLemanissier@users.noreply.github.com>
Co-authored-by: ericLemanissier <ericLemanissier@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Conan v1 pipeline ❌Failure in build 3 (
Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability. |
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This pull request has been automatically closed because it has not had recent activity. Thank you for your contributions. |
@ledocc hello, sorry for mentioning, may you continue work on this PR? It looks like that it's almost complete and looks great for early detecting some nasty link errors |
Hi @leha-bot, no problem for mentioning me. I no longer work on this PR this comment. But I continue on my side to fix qt dependencies. I also think a test that link and run for each library is require in conan's test_package. But seem that's not CCI policy. |
Qt have many libs,
each one should be tested to check if link informations is correctly defined in conan recipe with this link test, some libs dependencies have be fixed
Specify library name and version: qt/5.x.x