This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, master has been updated
       via  2e6effd2e0d8e60ede4aa528e771430071c546b4 (commit)
       via  d615ce4386f98cfac4d90e136cb272ec2d635e15 (commit)
       via  c1dbbef2395847d9b68e4c7871f97066bdbad3a3 (commit)
       via  ea63df139efbe70b58fe95c7f0f4b6b35dd04a95 (commit)
       via  3b8fa496e7a9482cb4592e9f36b54f5b1bc3cdea (commit)
       via  7828577065afe8cf59434166ae0a0589689caea2 (commit)
       via  cf29fa18c8f0e7e482a0668ac1f36d1928080214 (commit)
       via  d7df3cd73f00aefd1878d2842ee8b56541ae3c44 (commit)
       via  8ff43de1a509b779fe6635086e16f6808a4dc765 (commit)
       via  da5ac4bb602bafb97b4dc0e012f1d26bbab58e3a (commit)
       via  1ae24ee1087c62740a9ed357a81274a9f9e8e70d (commit)
       via  5c028c27eb807e22f7d6095da4d9b694487ede05 (commit)
       via  d4e6b2ae25659699fccf6bc5888e87179f41b23a (commit)
      from  917cfecf12b77294370cf96150becbb4c0a9db1c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2e6effd2e0d8e60ede4aa528e771430071c546b4
commit 2e6effd2e0d8e60ede4aa528e771430071c546b4
Merge: d615ce4 da5ac4b
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Sep 3 13:29:57 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Tue Sep 3 09:30:15 2019 -0400

    Merge topic 'cpack-install-multiple-configurations'
    
    da5ac4bb60 cpack: Add `CPACK_INSTALL_CMAKE_CONFIGURATIONS` variable
    d4e6b2ae25 Refactor: Use `unique_ptr` instead of raw pointer
    
    Acked-by: Kitware Robot <kwro...@kitware.com>
    Merge-request: !3533


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d615ce4386f98cfac4d90e136cb272ec2d635e15
commit d615ce4386f98cfac4d90e136cb272ec2d635e15
Merge: c1dbbef 5c028c2
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Sep 3 13:26:58 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Tue Sep 3 09:27:39 2019 -0400

    Merge topic 'xcode11-swift'
    
    5c028c27eb Xcode: Relax swift compiler detection regex for Xcode 11
    
    Acked-by: Kitware Robot <kwro...@kitware.com>
    Merge-request: !3758


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c1dbbef2395847d9b68e4c7871f97066bdbad3a3
commit c1dbbef2395847d9b68e4c7871f97066bdbad3a3
Merge: ea63df1 3b8fa49
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Sep 3 09:26:03 2019 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Tue Sep 3 09:26:03 2019 -0400

    Merge branch 'release-3.15'


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ea63df139efbe70b58fe95c7f0f4b6b35dd04a95
commit ea63df139efbe70b58fe95c7f0f4b6b35dd04a95
Merge: 917cfec 7828577
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Sep 3 13:23:22 2019 +0000
Commit:     Kitware Robot <kwro...@kitware.com>
CommitDate: Tue Sep 3 09:23:48 2019 -0400

    Merge topic 'FindBoost-1.71'
    
    7828577065 FindBoost: Add support for Boost 1.71
    cf29fa18c8 FindBoost: Unwrap compatibility INTERFACE targets for legacy 
variables
    d7df3cd73f FindBoost: Remove incorrect 1.70 timer dependency
    8ff43de1a5 FindBoost: Simplify conditional block for last known version
    
    Acked-by: Kitware Robot <kwro...@kitware.com>
    Acked-by: Dennis Klein <d.kl...@gsi.de>
    Merge-request: !3763


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=da5ac4bb602bafb97b4dc0e012f1d26bbab58e3a
commit da5ac4bb602bafb97b4dc0e012f1d26bbab58e3a
Author:     Alex Turbov <i.za...@gmail.com>
AuthorDate: Wed Jul 10 00:07:55 2019 +0300
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Fri Aug 30 11:02:43 2019 -0400

    cpack: Add `CPACK_INSTALL_CMAKE_CONFIGURATIONS` variable
    
    For the multi-configuration generators one can specify the list
    of configurations to include in the package.
    
    E.g. having a project, where debug libraries have a suffix to
    distinct them from the release builds, one can build the package
    containing both `Debug` and `Release` binaries.

diff --git a/Help/manual/cpack.1.rst b/Help/manual/cpack.1.rst
index 10f617e..f82c466 100644
--- a/Help/manual/cpack.1.rst
+++ b/Help/manual/cpack.1.rst
@@ -48,9 +48,11 @@ Options
   the :variable:`CPACK_GENERATOR` variable determines the default set of
   generators that will be used.
 
-``-C <Configuration>``
-  Specify the project configuration to be packaged (e.g. ``Debug``,
-  ``Release``, etc.).  When the CMake project uses a multi-configuration
+``-C <configs>``
+  Specify the project configuration(s) to be packaged (e.g. ``Debug``,
+  ``Release``, etc.), where ``<configs>`` is a
+  :ref:`semicolon-separated list <CMake Language Lists>`.
+  When the CMake project uses a multi-configuration
   generator such as Xcode or Visual Studio, this option is needed to tell
   ``cpack`` which built executables to include in the package.
 
diff --git a/Help/release/dev/cpack-install-multiple-configurations.rst 
b/Help/release/dev/cpack-install-multiple-configurations.rst
new file mode 100644
index 0000000..d1692dc
--- /dev/null
+++ b/Help/release/dev/cpack-install-multiple-configurations.rst
@@ -0,0 +1,5 @@
+cpack-install-multiple-configurations
+-------------------------------------
+
+* CPack learned :variable:`CPACK_INSTALL_CMAKE_CONFIGURATIONS` to control
+  what configurations going to be packaged for multi-configuration generators.
diff --git a/Modules/CPack.cmake b/Modules/CPack.cmake
index 8a6a712..1809846 100644
--- a/Modules/CPack.cmake
+++ b/Modules/CPack.cmake
@@ -301,6 +301,13 @@ The following variables are for advanced uses of CPack:
   project.  Defaults to the value of :variable:`CMAKE_GENERATOR`.  Few users
   will want to change this setting.
 
+.. variable:: CPACK_INSTALL_CMAKE_CONFIGURATIONS
+
+  Specify the project configurations to be packaged (e.g. ``Debug``, 
``Release``,
+  etc.). When the CMake project uses a multi-configuration generator such as 
Xcode
+  or Visual Studio, this option can be used to specify what configurations
+  to include in the package.
+
 .. variable:: CPACK_INSTALL_CMAKE_PROJECTS
 
   List of four values that specify what project to install.  The four values
diff --git a/Source/CPack/cmCPackGenerator.cxx 
b/Source/CPack/cmCPackGenerator.cxx
index 46c602e..065aadf 100644
--- a/Source/CPack/cmCPackGenerator.cxx
+++ b/Source/CPack/cmCPackGenerator.cxx
@@ -598,8 +598,34 @@ int 
cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
         componentsVector.push_back(project.Component);
       }
 
-      const char* buildConfigCstr = this->GetOption("CPACK_BUILD_CONFIG");
-      std::string buildConfig = buildConfigCstr ? buildConfigCstr : "";
+      std::vector<std::string> buildConfigs;
+
+      // Try get configuration names given via `-C` CLI option
+      {
+        const char* const buildConfigCstr =
+          this->GetOption("CPACK_BUILD_CONFIG");
+        auto buildConfig = buildConfigCstr ? buildConfigCstr : std::string{};
+        cmExpandList(buildConfig, buildConfigs);
+      }
+
+      // Try get configurations requested by the user explicitly
+      {
+        const char* const configsCstr =
+          this->GetOption("CPACK_INSTALL_CMAKE_CONFIGURATIONS");
+        auto configs = configsCstr ? configsCstr : std::string{};
+        cmExpandList(configs, buildConfigs);
+      }
+
+      // Remove duplicates
+      std::sort(buildConfigs.begin(), buildConfigs.end());
+      buildConfigs.erase(std::unique(buildConfigs.begin(), buildConfigs.end()),
+                         buildConfigs.end());
+
+      // Ensure we have at least one configuration.
+      if (buildConfigs.empty()) {
+        buildConfigs.emplace_back();
+      }
+
       std::unique_ptr<cmGlobalGenerator> globalGenerator(
         this->MakefileMap->GetCMakeInstance()->CreateGlobalGenerator(
           cmakeGenerator));
@@ -615,25 +641,29 @@ int 
cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
       // on windows.
       cmSystemTools::SetForceUnixPaths(globalGenerator->GetForceUnixPaths());
 
-      if (!this->RunPreinstallTarget(project.ProjectName, project.Directory,
-                                     globalGenerator.get(), buildConfig)) {
-        return 0;
-      }
-
-      cmCPackLogger(cmCPackLog::LOG_OUTPUT,
-                    "- Install project: " << project.ProjectName << std::endl);
-
-      // Run the installation for each component
-      for (std::string const& component : componentsVector) {
-        if (!this->InstallCMakeProject(
-              setDestDir, project.Directory, baseTempInstallDirectory,
-              default_dir_mode, component, componentInstall,
-              project.SubDirectory, buildConfig, absoluteDestFiles)) {
+      // Run the installation for the selected build configurations
+      for (auto const& buildConfig : buildConfigs) {
+        if (!this->RunPreinstallTarget(project.ProjectName, project.Directory,
+                                       globalGenerator.get(), buildConfig)) {
           return 0;
         }
+
+        cmCPackLogger(cmCPackLog::LOG_OUTPUT,
+                      "- Install project: " << project.ProjectName << " ["
+                                            << buildConfig << ']'
+                                            << std::endl);
+        // Run the installation for each component
+        for (std::string const& component : componentsVector) {
+          if (!this->InstallCMakeProject(
+                setDestDir, project.Directory, baseTempInstallDirectory,
+                default_dir_mode, component, componentInstall,
+                project.SubDirectory, buildConfig, absoluteDestFiles)) {
+            return 0;
+          }
+        }
       }
 
-      this->CMakeProjects.push_back(project);
+      this->CMakeProjects.emplace_back(std::move(project));
     }
   }
   this->SetOption("CPACK_ABSOLUTE_DESTINATION_FILES",
diff --git a/Tests/RunCMake/CPack/RunCMakeTest.cmake 
b/Tests/RunCMake/CPack/RunCMakeTest.cmake
index d93f280..8e98961 100644
--- a/Tests/RunCMake/CPack/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CPack/RunCMakeTest.cmake
@@ -36,3 +36,6 @@ run_cpack_test(MD5SUMS "DEB.MD5SUMS" false 
"MONOLITHIC;COMPONENT")
 run_cpack_test_subtests(CPACK_INSTALL_SCRIPTS "singular;plural;both" "ZIP" 
false "MONOLITHIC")
 run_cpack_test(DEB_PACKAGE_VERSION_BACK_COMPATIBILITY 
"DEB.DEB_PACKAGE_VERSION_BACK_COMPATIBILITY" false "MONOLITHIC;COMPONENT")
 run_cpack_test_subtests(EXTERNAL 
"none;good;good_multi;bad_major;bad_minor;invalid_good;invalid_bad;stage_and_package"
 "External" false "MONOLITHIC;COMPONENT")
+if(RunCMake_GENERATOR MATCHES "Visual Studio|Xcode")
+  run_cpack_test(CPACK_INSTALL_CMAKE_CONFIGURATIONS "ZIP" false "MONOLITHIC")
+endif()
diff --git 
a/Tests/RunCMake/CPack/tests/CPACK_INSTALL_CMAKE_CONFIGURATIONS/ExpectedFiles.cmake
 
b/Tests/RunCMake/CPack/tests/CPACK_INSTALL_CMAKE_CONFIGURATIONS/ExpectedFiles.cmake
new file mode 100644
index 0000000..34c7f8a
--- /dev/null
+++ 
b/Tests/RunCMake/CPack/tests/CPACK_INSTALL_CMAKE_CONFIGURATIONS/ExpectedFiles.cmake
@@ -0,0 +1,3 @@
+set(EXPECTED_FILES_COUNT "1")
+
+set(EXPECTED_FILE_CONTENT_1_LIST "foo;foo/debug.txt;foo/release.txt")
diff --git 
a/Tests/RunCMake/CPack/tests/CPACK_INSTALL_CMAKE_CONFIGURATIONS/ZIP-stdout.txt 
b/Tests/RunCMake/CPack/tests/CPACK_INSTALL_CMAKE_CONFIGURATIONS/ZIP-stdout.txt
new file mode 100644
index 0000000..2a3aa9e
--- /dev/null
+++ 
b/Tests/RunCMake/CPack/tests/CPACK_INSTALL_CMAKE_CONFIGURATIONS/ZIP-stdout.txt
@@ -0,0 +1,3 @@
+CPack: Install projects
+CPack: - Install project: CPACK_INSTALL_CMAKE_CONFIGURATIONS-MONOLITHIC-type 
\[Debug\]
+CPack: - Install project: CPACK_INSTALL_CMAKE_CONFIGURATIONS-MONOLITHIC-type 
\[Release\]
diff --git 
a/Tests/RunCMake/CPack/tests/CPACK_INSTALL_CMAKE_CONFIGURATIONS/test.cmake 
b/Tests/RunCMake/CPack/tests/CPACK_INSTALL_CMAKE_CONFIGURATIONS/test.cmake
new file mode 100644
index 0000000..4f562cf
--- /dev/null
+++ b/Tests/RunCMake/CPack/tests/CPACK_INSTALL_CMAKE_CONFIGURATIONS/test.cmake
@@ -0,0 +1,9 @@
+set(CMAKE_CONFIGURATION_TYPES Debug Release)
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/debug.txt" "debug content")
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/release.txt" "release content")
+
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/debug.txt" DESTINATION "foo" 
CONFIGURATIONS Debug)
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/release.txt" DESTINATION "foo" 
CONFIGURATIONS Release)
+
+set(CPACK_INSTALL_CMAKE_CONFIGURATIONS ${CMAKE_CONFIGURATION_TYPES})

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5c028c27eb807e22f7d6095da4d9b694487ede05
commit 5c028c27eb807e22f7d6095da4d9b694487ede05
Author:     Gregor Jasny <gja...@googlemail.com>
AuthorDate: Fri Aug 30 09:33:37 2019 +0200
Commit:     Gregor Jasny <gja...@googlemail.com>
CommitDate: Fri Aug 30 10:53:58 2019 +0200

    Xcode: Relax swift compiler detection regex for Xcode 11
    
    The Xcode 11 output:
    
    ```
      CompileSwift normal x86_64
      
/Users/gregorj/Git/cmake/_build_xcode/Tests/SwiftOnly/CMakeFiles/3.15.20190826-g89479bd/CompilerIdSwift/CompilerId/main.swift
      (in target 'CompilerIdSwift' from project 'CompilerIdSwift')
    
          cd 
/Users/gregorj/Git/cmake/_build_xcode/Tests/SwiftOnly/CMakeFiles/3.15.20190826-g89479bd/CompilerIdSwift
          
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift
 -frontend -c -primary-file 
/Users/gregorj/Git/cmake/_build_xcode/Tests/SwiftOnly/CMakeFiles/3.15.20190826-g89479bd/CompilerIdSwift/CompilerId/main.swift
 ...
    ```
    
    The Xcode 10 output:
    
    ```
    CompileSwiftSources normal x86_64 com.apple.xcode.tools.swift.compiler
        cd /Users/gjasny/src/cmake/Tests/SwiftOnly
        
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc
 -incremental -module-name SwiftOnly -O -enable-batch-mode 
-enforce-exclusivity=checked -swift-version 5.0 -sdk 
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
 -target x86_64-apple-macosx10.14 -g -Xfrontend -serialize-debugging-options 
-swift-version 5 -Xlinker -rpath -Xlinker /usr/lib/swift -I 
/Users/gjasny/src/cmake/_build_xcode/Tests/SwiftOnly/Debug -F 
/Users/gjasny/src/cmake/_build_xcode/Tests/SwiftOnly/Debug -c -j24 
/Users/gjasny/src/cmake/Tests/SwiftOnly/main.swift ...
    
    CompileSwift normal x86_64 
/Users/gjasny/src/cmake/Tests/SwiftOnly/main.swift
        cd /Users/gjasny/src/cmake/Tests/SwiftOnly
        
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift
 -frontend -c -primary-file /Users/gjasny/src/cmake/Tests/SwiftOnly/main.swift 
...
    
    ```
    
    The Xcode 11 output lacks the CompileSwiftSources action but the
    CompileSwift action is present for both and also look suitable.

diff --git a/Modules/CMakeDetermineSwiftCompiler.cmake 
b/Modules/CMakeDetermineSwiftCompiler.cmake
index 2fcf7b0..9aafe48 100644
--- a/Modules/CMakeDetermineSwiftCompiler.cmake
+++ b/Modules/CMakeDetermineSwiftCompiler.cmake
@@ -53,7 +53,7 @@ if(NOT CMAKE_Swift_COMPILER_ID_RUN)
     list(APPEND CMAKE_Swift_COMPILER_ID_MATCH_VENDORS Apple)
     set(CMAKE_Swift_COMPILER_ID_MATCH_VENDOR_REGEX_Apple 
"com.apple.xcode.tools.swift.compiler")
 
-    set(CMAKE_Swift_COMPILER_ID_TOOL_MATCH_REGEX 
"\nCompileSwiftSources[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]* 
-c[^\r\n]*CompilerIdSwift/CompilerId/main.swift")
+    set(CMAKE_Swift_COMPILER_ID_TOOL_MATCH_REGEX "\nCompileSwift[^\n]*(\n[ 
\t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]* 
-c[^\r\n]*CompilerIdSwift/CompilerId/main.swift")
     set(CMAKE_Swift_COMPILER_ID_TOOL_MATCH_INDEX 2)
   endif()
 

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d4e6b2ae25659699fccf6bc5888e87179f41b23a
commit d4e6b2ae25659699fccf6bc5888e87179f41b23a
Author:     Alex Turbov <i.za...@gmail.com>
AuthorDate: Tue Jul 9 17:56:47 2019 +0300
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Mon Aug 19 15:25:06 2019 -0400

    Refactor: Use `unique_ptr` instead of raw pointer

diff --git a/Source/CPack/cmCPackGenerator.cxx 
b/Source/CPack/cmCPackGenerator.cxx
index f3de53c..46c602e 100644
--- a/Source/CPack/cmCPackGenerator.cxx
+++ b/Source/CPack/cmCPackGenerator.cxx
@@ -600,9 +600,9 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
 
       const char* buildConfigCstr = this->GetOption("CPACK_BUILD_CONFIG");
       std::string buildConfig = buildConfigCstr ? buildConfigCstr : "";
-      cmGlobalGenerator* globalGenerator =
+      std::unique_ptr<cmGlobalGenerator> globalGenerator(
         this->MakefileMap->GetCMakeInstance()->CreateGlobalGenerator(
-          cmakeGenerator);
+          cmakeGenerator));
       if (!globalGenerator) {
         cmCPackLogger(cmCPackLog::LOG_ERROR,
                       "Specified package generator not found. "
@@ -616,12 +616,10 @@ int 
cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
       cmSystemTools::SetForceUnixPaths(globalGenerator->GetForceUnixPaths());
 
       if (!this->RunPreinstallTarget(project.ProjectName, project.Directory,
-                                     globalGenerator, buildConfig)) {
+                                     globalGenerator.get(), buildConfig)) {
         return 0;
       }
 
-      delete globalGenerator;
-
       cmCPackLogger(cmCPackLog::LOG_OUTPUT,
                     "- Install project: " << project.ProjectName << std::endl);
 

-----------------------------------------------------------------------

Summary of changes:
 Help/manual/cpack.1.rst                            |  8 ++-
 .../dev/cpack-install-multiple-configurations.rst  |  5 ++
 Modules/CMakeDetermineSwiftCompiler.cmake          |  2 +-
 Modules/CPack.cmake                                |  7 +++
 Modules/FindBoost.cmake                            | 49 +++++++++------
 Source/CPack/cmCPackGenerator.cxx                  | 70 +++++++++++++++-------
 Tests/RunCMake/CPack/RunCMakeTest.cmake            |  3 +
 .../ExpectedFiles.cmake                            |  3 +
 .../ZIP-stdout.txt                                 |  3 +
 .../CPACK_INSTALL_CMAKE_CONFIGURATIONS/test.cmake  |  9 +++
 .../FindBoost/CMakePackage_New/BoostConfig.cmake   |  5 ++
 11 files changed, 121 insertions(+), 43 deletions(-)
 create mode 100644 Help/release/dev/cpack-install-multiple-configurations.rst
 create mode 100644 
Tests/RunCMake/CPack/tests/CPACK_INSTALL_CMAKE_CONFIGURATIONS/ExpectedFiles.cmake
 create mode 100644 
Tests/RunCMake/CPack/tests/CPACK_INSTALL_CMAKE_CONFIGURATIONS/ZIP-stdout.txt
 create mode 100644 
Tests/RunCMake/CPack/tests/CPACK_INSTALL_CMAKE_CONFIGURATIONS/test.cmake


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
https://cmake.org/mailman/listinfo/cmake-commits

Reply via email to