Quellcode durchsuchen

Merge topic 'ipo-var-per-config'

470437f6 Support CMAKE_INTERPROCEDURAL_OPTIMIZATION_<CONFIG>

Acked-by: Kitware Robot <[email protected]>
Merge-request: !709
Brad King vor 8 Jahren
Ursprung
Commit
f7e3a34d3c

+ 1 - 0
Help/manual/cmake-variables.7.rst

@@ -292,6 +292,7 @@ Variables that Control the Build
    /variable/CMAKE_INSTALL_RPATH
    /variable/CMAKE_INSTALL_RPATH_USE_LINK_PATH
    /variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION
+   /variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG
    /variable/CMAKE_IOS_INSTALL_COMBINED
    /variable/CMAKE_LANG_CLANG_TIDY
    /variable/CMAKE_LANG_COMPILER_LAUNCHER

+ 4 - 0
Help/prop_tgt/INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst

@@ -6,3 +6,7 @@ Per-configuration interprocedural optimization for a target.
 This is a per-configuration version of INTERPROCEDURAL_OPTIMIZATION.
 If set, this property overrides the generic property for the named
 configuration.
+
+This property is initialized by the
+:variable:`CMAKE_INTERPROCEDURAL_OPTIMIZATION_<CONFIG>` variable if it is set
+when a target is created.

+ 8 - 0
Help/variable/CMAKE_INTERPROCEDURAL_OPTIMIZATION_CONFIG.rst

@@ -0,0 +1,8 @@
+CMAKE_INTERPROCEDURAL_OPTIMIZATION_<CONFIG>
+-------------------------------------------
+
+Default value for :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION_<CONFIG>` of targets.
+
+This variable is used to initialize the :prop_tgt:`INTERPROCEDURAL_OPTIMIZATION_<CONFIG>`
+property on all the targets.  See that target property for additional
+information.

+ 4 - 7
Source/cmTarget.cxx

@@ -291,13 +291,10 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type,
   if (this->GetType() != cmStateEnums::UTILITY) {
     const char* configProps[] = {
       /* clang-format needs this comment to break after the opening brace */
-      "ARCHIVE_OUTPUT_DIRECTORY_",
-      "LIBRARY_OUTPUT_DIRECTORY_",
-      "RUNTIME_OUTPUT_DIRECTORY_",
-      "PDB_OUTPUT_DIRECTORY_",
-      "COMPILE_PDB_OUTPUT_DIRECTORY_",
-      "MAP_IMPORTED_CONFIG_",
-      CM_NULLPTR
+      "ARCHIVE_OUTPUT_DIRECTORY_",     "LIBRARY_OUTPUT_DIRECTORY_",
+      "RUNTIME_OUTPUT_DIRECTORY_",     "PDB_OUTPUT_DIRECTORY_",
+      "COMPILE_PDB_OUTPUT_DIRECTORY_", "MAP_IMPORTED_CONFIG_",
+      "INTERPROCEDURAL_OPTIMIZATION_", CM_NULLPTR
     };
     for (std::vector<std::string>::iterator ci = configNames.begin();
          ci != configNames.end(); ++ci) {