Details
-
Suggestion
-
Resolution: Unresolved
-
P2: Important
-
None
-
None
-
None
Description
Currently both qmake and cmake configurations take configure arguments that are only passed to qtbase (or qt5 for top-level builds), and then no additional arguments are passed when calling qmake/cmake for other repos like qtsvg, qtdeclarative, etc.
There should be a way to allow specifying additional flags to pass to qmake / cmake per a combination of platform_config + repository.
For instance, maybe i need to disable a feature only on MinGW for qtimageformats, or enable a cmake feature on Linux for qtwebengine.
One way to implement this (poorly) would be to set 2 additional env vars per each repo in qt5.yaml/default.yaml configurations (QT_HOST_IMAGE_FORMATS_CONFIGURE, QT_TARGET_IMAGE_FORMATS_CONFIGURE), and then modify the qtimageformats instructions to use those env vars depending on the configuration that is being built.
The downside is that each repo's instruction file needs to be manually changed to check for the specifically called env var.
So qtimageformats instructions need to check for env vars QT_HOST_QTIMAGEFORMATS_CONFIGURE, QT_TARGET_QTIMAGEFORMATS_CONFIGURE, qtwebengine's instruction file would have to check different env vars.
This makes the instructions unwieldy, it would be better if they can be reused.
A better approach would be if we can have a new Coin instruction, something like GetRepoNameUpperCase which would return a <FOO> (QTIMAGEFORMATS), and then we could generically build the QT_HOST_QTIMAGEFORMATS_CONFIGURE env var in the same instructions we use for qtbase.
This way we can set the env vars in qt5.yaml as needed, and there are no requirements for per-repo instructions.
Perhaps there's also some other better way that I haven't thought of yet, so feel free to enlighten me
Attachments
Issue Links
- relates to
-
COIN-605 Allow instructions to have conditions on environment variable values
-
- Closed
-
Gerrit Reviews
For Gerrit Dashboard: COIN-601 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
307109,3 | CMake: Propagate configure args to all repositories | dev | qt/qtbase | Status: MERGED | +2 | 0 |
307320,5 | CMake: Propagate non-qtbase configure args to other repositories | dev | qt/qtbase | Status: MERGED | +2 | 0 |