-
Notifications
You must be signed in to change notification settings - Fork 2k
qt: fix Platform component #26524
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
base: master
Are you sure you want to change the base?
qt: fix Platform component #26524
Conversation
85e7087
to
6fcccd9
Compare
6fcccd9
to
8500bb5
Compare
@jcar87 @uilianries @perseoGI @AbrilRBS @franramirez688 friendly pinging for a review |
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.
@maksim-petukhov Hello 👋
Thank you for giving those details, it's clear there is a window for improvement.
This prevents me from compiling one of the closed-source libraries (QtitanRibbon) using Qt6 taken from CCI.
At least you could inform what error occurs and the compilation error? So we can have a better view of the current limitation of this component.
@uilianries Hi I believe these were the compilation errors:
The initial comment in this PR already includes some context around the issue: this component is clearly not aligned with the upstream version. Feel free to take another look at the initial comment when you get a chance - that might help clarify things a bit further |
@uilianries is there anything else I can do to move this forward? |
@maksim-petukhov Hello, we have been discussing internally about this PR and we doing a very detailed review, as the Qt package is really fragile and affects several users. My only concern right now is the UTF-8 extra code in this PR. It fits for this current version, but it's one more extra point to be always reviewed in the future, to make sure nothing changed in Qt and result in unexpected behavior based on the upstream. |
Summary
Changes to recipe: qt/6.x
Motivation and Details
Qt6::Platform component and its relationship with Qt6::Core differ from the upstream ones. This prevents me from compiling one of the closed-source libraries (QtitanRibbon) using Qt6 taken from CCI.
Actually Qt6::Core depends on Qt6::Platform, see
<package>\lib\cmake\Qt6Core\Qt6CoreTargets.cmake
:And
-permissive-
and-Zc:__cplusplus
flags come from Qt6::Platform, not from Qt6::Core, see<package>\lib\cmake\Qt6\Qt6Targets.cmake
:there we can also see that it "links" to Threads::Threads. There are also conditional compile definitions and compile options which are missing (
_UNICODE
and-utf-8
). You can look at this file https://github.com/qt/qtbase/blob/92b685784960eea6eb353688cf0edeb94d69c6cd/cmake/QtPlatformTargetHelpers.cmake#L61 to get a better idea where they come from (see calls toqt_set_msvc_cplusplus_options
,qt_enable_utf8_sources
,qt_internal_enable_unicode_defines
). And you can also notice that Qt6::Platform requireslog
library on Android.These changes are also required for these documented functions to work: https://doc.qt.io/qt-6/qt-disable-unicode-defines.html, https://doc.qt.io/qt-6/qt-allow-non-utf8-sources.html.