-
-
Notifications
You must be signed in to change notification settings - Fork 92
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
Patch *.prl too and patch *.pc for mingw #640
Conversation
I experienced |
891b73a
to
d47742c
Compare
Waiting for #641 to be merged to rebase. |
ad0cd81
to
035d1a2
Compare
CI build fails with |
I wouldn't worry about the CI failure; that's probably a server backpressure mechanism. The only thing I can see that this PR is lacking is additional tests. I think it's clear that it's not going to break any existing functionality, but I would like to see proof in CI that this change is fixing something, and a way to prevent regressions in the future. For now, I would not worry about unit tests; we're not testing the What do you think, @miurahr? |
It is always better to have CI test that cover a code the patch changed, and integration test with actual repository. A CI test server, MS hosted, is provided by azure pipelines free plan.
aqtinstall consumed 336 build minutes in total 360 build minutes in this month in my projects. We can add more CI job if we can wait the jobs finished. |
Maybe it's time to audit the jobs we have and remove anything that's not really high value. I just added 6 new jobs in #648, for a total of 49 Azure builds by my count. I'm sure we can find a few that we don't need anymore. |
FYI: I use https://marketplace.visualstudio.com/items?itemName=ms-devlabs.BuildandTestUsage to check build minutes. |
Ok, I like this idea to reproduce the problem with tests in CI, I hope there is even a chance to reproduce with current build configurations. In my case this happened in |
def patch_prl(self, oldvalue): | ||
for prlfile in self.prefix.joinpath("lib").glob("*.prl"): | ||
self.logger.info("Patching {}".format(prlfile)) | ||
self._patch_textfile(prlfile, oldvalue, "$$[QT_INSTALL_LIBS]") |
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.
I am curious about this value: $$[QT_INSTALL_LIBS]
I've never seen it before, but it looks like it's internal to qmake: https://doc.qt.io/qt-6/qmake-environment-reference.html
Should we be using these built-in variables to patch other values as well? It seems inconsistent to hard-code specific paths in some places, and qmake variables in others. Personally, I like the idea of using qmake variables in more places, as long as it makes sense.
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.
I treat built-in
and internal use only
terms differently, and propose to use built-ins instead of hard-coded paths. qmake -query
shows built-ins, and for cross-platform environment these vars are usually well-defined. Worth noting, that the decision between QT_INSTALL_LIBS
vs. QT_HOST_LIBS
(and similar variables) should be done each time.
I can see these vars are actively used in installed prf and prl files.
Also, there are /raw
, /dev
, and sometimes /get
properties, which are occasionaly useful. One can find examples in /mkspecs, f.e. $$[QT_INSTALL_LIBS/raw]
@iakov progress? |
@miurahr , sorry, I've forgotten to do this.
then Here are all mentioned files for convenience: test.zip |
I would kindly appreciate any ideas about the CI test. Where to inject it? The example from the comment above is enough to test reproducibility, isn't it? To finish the build successfully, the
So, I'm ready to improve the PR, but I need an idea of the best place to add the test. |
*.prl are qmake's library descriptions like *.pc are for package-config, and contain incorrect paths for some archives/modules (at least qttools is bad in 5.11) Also .pc can be used with mingw via MSYS's pkgconfig, and should be patched on Windows too.
43ebc96
to
ef20528
Compare
For unit test which checks a mod function of changes of Unit tests will run on GitHub Actions. For integration test, that run It will be run on Azure-Pipelines. |
*.prl are qmake's library descriptions like *.pc are for package-config, and contain incorrect paths for some archives/modules (at least qttools is bad in 5.11)
Also .pc can be used with mingw via MSYS's pkgconfig, and should be patched on Windows too.