mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-06 06:38:37 -06:00
Autogen: AUTO*_EXECUTABLE: add support for per-config values
* 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.
* Add `AUTOGEN_BETTER_GRAPH_MULTI_CONFIG` target property to change the behavior of the dependency graph.
* The timestamp target is split into three targets for per-config to avoid redundant `mocs_compilation` builds when `AUTOGEN_BETTER_GRAPH_MULTI_CONFIG` is ON
* Per-config `DEP_FILE_RULE_NAME` values were added to `AutogenInfo.json` for `Multi-Config` usage.
* Some functions were refactored to avoid code duplication.
This commit reimplements fddd0f0443
Fixes: #20074
This commit is contained in:
@@ -129,6 +129,7 @@ Properties on Targets
|
||||
/prop_tgt/ARCHIVE_OUTPUT_DIRECTORY_CONFIG
|
||||
/prop_tgt/ARCHIVE_OUTPUT_NAME
|
||||
/prop_tgt/ARCHIVE_OUTPUT_NAME_CONFIG
|
||||
/prop_tgt/AUTOGEN_BETTER_GRAPH_MULTI_CONFIG
|
||||
/prop_tgt/AUTOGEN_BUILD_DIR
|
||||
/prop_tgt/AUTOGEN_COMMAND_LINE_LENGTH_MAX
|
||||
/prop_tgt/AUTOGEN_ORIGIN_DEPENDS
|
||||
|
||||
@@ -389,6 +389,7 @@ Variables that Control the Build
|
||||
/variable/CMAKE_APPLE_SILICON_PROCESSOR
|
||||
/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY
|
||||
/variable/CMAKE_ARCHIVE_OUTPUT_DIRECTORY_CONFIG
|
||||
/variable/CMAKE_AUTOGEN_BETTER_GRAPH_MULTI_CONFIG
|
||||
/variable/CMAKE_AUTOGEN_COMMAND_LINE_LENGTH_MAX
|
||||
/variable/CMAKE_AUTOGEN_ORIGIN_DEPENDS
|
||||
/variable/CMAKE_AUTOGEN_PARALLEL
|
||||
|
||||
22
Help/prop_tgt/AUTOGEN_BETTER_GRAPH_MULTI_CONFIG.rst
Normal file
22
Help/prop_tgt/AUTOGEN_BETTER_GRAPH_MULTI_CONFIG.rst
Normal file
@@ -0,0 +1,22 @@
|
||||
AUTOGEN_BETTER_GRAPH_MULTI_CONFIG
|
||||
---------------------------------
|
||||
|
||||
.. versionadded:: 3.29
|
||||
|
||||
``AUTOGEN_BETTER_GRAPH_MULTI_CONFIG`` is a boolean property that can be set
|
||||
on a target to have better dependency graph for multi-configuration generators.
|
||||
When this property is enabled, ``CMake`` will generate more per-config targets.
|
||||
Thus, the dependency graph will be more accurate for multi-configuration
|
||||
generators and some recompilations will be avoided.
|
||||
|
||||
If the Qt version is 6.8 or newer, this property is enabled by default.
|
||||
If the Qt version is older than 6.8, this property is disabled by default.
|
||||
Consult the Qt documentation to check if the property can be enabled for older
|
||||
Qt versions.
|
||||
|
||||
See the :manual:`cmake-qt(7)` manual for more information on using CMake
|
||||
with Qt.
|
||||
|
||||
This property is initialized by the
|
||||
:variable:`CMAKE_AUTOGEN_BETTER_GRAPH_MULTI_CONFIG` variable if it is set when
|
||||
a target is created.
|
||||
10
Help/variable/CMAKE_AUTOGEN_BETTER_GRAPH_MULTI_CONFIG.rst
Normal file
10
Help/variable/CMAKE_AUTOGEN_BETTER_GRAPH_MULTI_CONFIG.rst
Normal file
@@ -0,0 +1,10 @@
|
||||
CMAKE_AUTOGEN_BETTER_GRAPH_MULTI_CONFIG
|
||||
---------------------------------------
|
||||
|
||||
.. versionadded:: 3.29
|
||||
|
||||
This variable is used to initialize the
|
||||
:prop_tgt:`AUTOGEN_BETTER_GRAPH_MULTI_CONFIG` property on all targets as they
|
||||
are created. See that target property for additional information.
|
||||
|
||||
By default ``CMAKE_AUTOGEN_BETTER_GRAPH_MULTI_CONFIG`` is unset.
|
||||
Reference in New Issue
Block a user