Skip to content

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 and cmake_autorcc to avoid unnecessary rebuilds.
  • A new parameter was added for cmake_autogen and cmake_autorcc to specify the config name of the auto*_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 to AutogenInfo.json for CMAKE_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

Edited by Orkun Tokdemir

Merge request reports