[Cmake-commits] CMake branch, next, updated. v3.7.2-2221-g9764f95

Brad King brad.king at kitware.com
Tue Jan 17 09:32:06 EST 2017


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, next has been updated
       via  9764f958cca5dd910ad7b49ccb804afe69d0f30a (commit)
       via  28b332f1f1aceec9b5c2b598f432454d72711246 (commit)
      from  37dff4b95a8846939d0294434bc0e0b16e006d09 (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=9764f958cca5dd910ad7b49ccb804afe69d0f30a
commit 9764f958cca5dd910ad7b49ccb804afe69d0f30a
Merge: 37dff4b 28b332f
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Jan 17 09:32:06 2017 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Jan 17 09:32:06 2017 -0500

    Merge topic 'productbuild_signing' into next
    
    28b332f1 CPackProductBuild: Add options to sign packages


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=28b332f1f1aceec9b5c2b598f432454d72711246
commit 28b332f1f1aceec9b5c2b598f432454d72711246
Author:     Roman Wüger <office at wueger.at>
AuthorDate: Sun Jan 15 01:29:34 2017 +0100
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Jan 17 09:30:52 2017 -0500

    CPackProductBuild: Add options to sign packages

diff --git a/Help/release/dev/cpack-productbuild-signing.rst b/Help/release/dev/cpack-productbuild-signing.rst
new file mode 100644
index 0000000..0b91b38
--- /dev/null
+++ b/Help/release/dev/cpack-productbuild-signing.rst
@@ -0,0 +1,8 @@
+cpack-productbuild-signing
+--------------------------
+
+* The :module:`CPackProductBuild` module gained options to sign packages.
+  See the variables :variable:`CPACK_PRODUCTBUILD_IDENTITY_NAME`,
+  :variable:`CPACK_PRODUCTBUILD_KEYCHAIN_PATH`,
+  :variable:`CPACK_PKGBUILD_IDENTITY_NAME`, and
+  :variable:`CPACK_PKGBUILD_KEYCHAIN_PATH`.
diff --git a/Modules/CPackProductBuild.cmake b/Modules/CPackProductBuild.cmake
index ea2fa7c..d545d3e 100644
--- a/Modules/CPackProductBuild.cmake
+++ b/Modules/CPackProductBuild.cmake
@@ -20,9 +20,29 @@
 #  the automatically detected command (or specify its location if the
 #  auto-detection fails to find it.)
 #
+# .. variable:: CPACK_PRODUCTBUILD_IDENTITY_NAME
+#
+#  Adds a digital signature to the resulting package.
+#
+#
+# .. variable:: CPACK_PRODUCTBUILD_KEYCHAIN_PATH
+#
+#  Specify a specific keychain to search for the signing identity.
+#
+#
 # .. variable:: CPACK_COMMAND_PKGBUILD
 #
 #  Path to the pkgbuild(1) command used to generate an OS X component package
 #  on OS X.  This variable can be used to override the automatically detected
 #  command (or specify its location if the auto-detection fails to find it.)
 #
+#
+# .. variable:: CPACK_PKGBUILD_IDENTITY_NAME
+#
+#  Adds a digital signature to the resulting package.
+#
+#
+# .. variable:: CPACK_PKGBUILD_KEYCHAIN_PATH
+#
+#  Specify a specific keychain to search for the signing identity.
+#
diff --git a/Source/CPack/cmCPackProductBuildGenerator.cxx b/Source/CPack/cmCPackProductBuildGenerator.cxx
index a46e3a6..35b2ccc 100644
--- a/Source/CPack/cmCPackProductBuildGenerator.cxx
+++ b/Source/CPack/cmCPackProductBuildGenerator.cxx
@@ -75,14 +75,27 @@ int cmCPackProductBuildGenerator::PackageFiles()
 
   std::string version = this->GetOption("CPACK_PACKAGE_VERSION");
   std::string productbuild = this->GetOption("CPACK_COMMAND_PRODUCTBUILD");
+  std::string identityName =
+    this->GetOption("CPACK_PRODUCTBUILD_IDENTITY_NAME");
+  std::string keychainPath =
+    this->GetOption("CPACK_PRODUCTBUILD_KEYCHAIN_PATH");
 
   pkgCmd << productbuild << " --distribution \"" << packageDirFileName
          << "/Contents/distribution.dist\""
          << " --package-path \"" << packageDirFileName << "/Contents/Packages"
          << "\""
          << " --resources \"" << resDir << "\""
-         << " --version \"" << version << "\""
-         << " \"" << packageFileNames[0] << "\"";
+         << " --version \"" << version << "\"";
+
+  if (!identityName.empty()) {
+    pkgCmd << " --sign \"" << identityName << "\"";
+  }
+
+  if (!keychainPath.empty()) {
+    pkgCmd << " --keychain \"" << keychainPath << "\"";
+  }
+
+  pkgCmd << " \"" << packageFileNames[0] << "\"";
 
   // Run ProductBuild
   return RunProductBuild(pkgCmd.str());
@@ -193,13 +206,24 @@ bool cmCPackProductBuildGenerator::GenerateComponentPackage(
 
   std::string version = this->GetOption("CPACK_PACKAGE_VERSION");
   std::string pkgbuild = this->GetOption("CPACK_COMMAND_PKGBUILD");
+  std::string identityName = this->GetOption("CPACK_PKGBUILD_IDENTITY_NAME");
+  std::string keychainPath = this->GetOption("CPACK_PKGBUILD_KEYCHAIN_PATH");
 
   pkgCmd << pkgbuild << " --root \"" << packageDir << "\""
          << " --identifier \"" << pkgId << "\""
          << " --scripts \"" << scriptDir << "\""
          << " --version \"" << version << "\""
-         << " --install-location \"/\""
-         << " \"" << packageFile << "\"";
+         << " --install-location \"/\"";
+
+  if (!identityName.empty()) {
+    pkgCmd << " --sign \"" << identityName << "\"";
+  }
+
+  if (!keychainPath.empty()) {
+    pkgCmd << " --keychain \"" << keychainPath << "\"";
+  }
+
+  pkgCmd << " \"" << packageFile << "\"";
 
   // Run ProductBuild
   return RunProductBuild(pkgCmd.str());

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

Summary of changes:
 Help/release/dev/cpack-productbuild-signing.rst |    8 ++++++
 Modules/CPackProductBuild.cmake                 |   20 ++++++++++++++
 Source/CPack/cmCPackProductBuildGenerator.cxx   |   32 ++++++++++++++++++++---
 3 files changed, 56 insertions(+), 4 deletions(-)
 create mode 100644 Help/release/dev/cpack-productbuild-signing.rst


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list