-
Notifications
You must be signed in to change notification settings - Fork 37.7k
build: Getting ready to Qt 6 (4/n). Improve build-aux/m4/bitcoin_qt.m4
#24813
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
Conversation
This is a prerequisite for the following commit. A move-only commit, use `diff --color-moved=dimmed-zebra` to verify.
This change increases robustness of the build system. A passed test guarantees that the required Qt resource system object have being linked properly.
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
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.
tACK b3a6ca2
Confirmed that the new checks are successfully run with configure.
Due to appending `qt_lib_suffix`, only one library can be passed to the `_BITCOIN_QT_CHECK_STATIC_PLUGIN` macro.
This change makes behavior consistent among `with_qt_*` variables, and it is required for Qt 6.
b3a6ca2
to
43af01e
Compare
Updated b3a6ca2 -> 43af01e (pr24813.02 -> pr24813.03, diff): |
reACK 43af01e |
Can you elaborate on when a user or developer would actually run into the scenario of these resources not being linked properly? I'm not against adding additional tests that might be useful to others, but if these are checks that were only helpful in your dev environment while things were broken / you were debugging, then it's less clear they should be added to configure. |
For example, in 9f61d6a forget to include |
In that case, concept ~0 for the new checks. They seem to be a symptom of other hacks (trying to link against specific .o files directly in configure checks? I'll comment in #24798), which I would hope have a better solution, and this isn't really guarding against a situation that someone is going to run into in the wild. |
Me too :) Not talking about a "better" solution, but here are some alternative ones:
|
That discussion might be better saved for #24798. I'm a Concept NACK here. I don't think these tests should be added, as they are guarding against situations that, from what I understand, can only could occur if we introduce the fairly fragile workarounds from #24798 into our code (it would have been handy if this was outlined in the PR description), which I don't think we should do. |
I think this should be closed / combined into #24798 for now. In any case, I don't think this is the approach (linking/testing object files) we would want to use in our build system to add Qt 6 support. |
This PR adds a test macro
_BITCOIN_QT_CHECK_APP
, which ensures that Qt resource system object (*.rcc
) have being compiled and linked properly. Found it such checks very useful while working on #24798.Here are examples from
configure
logs:The fourth commit may fix build in some weird setups, but it is definitely required for Qt 6.