Autogen: AUTO*_EXECUTABLE: add support per-config values & Refactor dependency graph
Changes
- Per-config values were added to
AUTO*_EXECUTABLE
. - Dependency order was refactored for
cmake_autogen
andcmake_autorcc
to avoid unnecessary rebuilds. - A new parameter was added for
cmake_autogen
andcmake_autorcc
to specify the config name of theauto*_executable
to be used. - The timestamp target was split into three targets for per-config to avoid redundant
mocs_compilation
builds. - Ninja multi-config tests were improved.
- Per-config
DEP_FILE_RULE_NAME
values were added toAutogenInfo.json
forCMAKE_CROSS_CONFIG
usage. - Some functions were refactored to avoid code duplication.
Since all configs are enabled when CMAKE_CROSS_CONFIG=all
is set, all config executables should be compiled/ready before cmake_auto*
processes run. Because cmake_auto*
is run for every config and chooses the corresponding QT_*_EXECUTABLE
in AutogenInfo.json
. This modification will change the number of build steps for each config. In the first build regardless of the config value, more steps will be built than before. In the second build with a different config value, fewer steps will be built because some of them were already built in the first build.
The redundant cmake_autorcc
process execution was optimized for
non-CROSS_CONFIGS
usage. It was executed three times for each
config although only one is needed.
Fixes: #20074 (closed)
Topic-rename: autogen-exe-per-config