Browse Source

CPack: Deprecate PackageMaker generator

Xcode no longer distributes the PackageMaker tools.
Add a deprecation warning when the generator is used.

Issue: #20235
Brad King 6 years ago
parent
commit
7bf187499f

+ 5 - 0
Help/cpack_gen/packagemaker.rst

@@ -3,6 +3,11 @@ CPack PackageMaker Generator
 
 PackageMaker CPack generator (macOS).
 
+.. deprecated:: 3.17
+
+  Xcode no longer distributes the PackageMaker tools.
+  This CPack generator will be removed in a future version of CPack.
+
 Variables specific to CPack PackageMaker generator
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 

+ 5 - 0
Help/release/dev/cpack-deprecate-old-macos-generators.rst

@@ -0,0 +1,5 @@
+cpack-deprecate-old-macos-generators
+------------------------------------
+
+* The :cpack_gen:`CPack PackageMaker Generator` generator has been
+  deprecated because Xcode no longer distributes the PackageMaker tools.

+ 1 - 1
Modules/CPack.cmake

@@ -564,7 +564,7 @@ if(NOT CPACK_GENERATOR)
         option(CPACK_BINARY_BUNDLE       "Enable to build OSX bundles"      OFF)
         option(CPACK_BINARY_DRAGNDROP    "Enable to build OSX Drag And Drop package" OFF)
         option(CPACK_BINARY_OSXX11       "Enable to build OSX X11 packages"      OFF)
-        option(CPACK_BINARY_PACKAGEMAKER "Enable to build PackageMaker packages" OFF)
+        option(CPACK_BINARY_PACKAGEMAKER "Enable to build PackageMaker packages (deprecated)" OFF)
         option(CPACK_BINARY_PRODUCTBUILD "Enable to build productbuild packages" OFF)
         mark_as_advanced(
           CPACK_BINARY_BUNDLE

+ 3 - 0
Source/CPack/cmCPackPackageMakerGenerator.cxx

@@ -321,6 +321,9 @@ int cmCPackPackageMakerGenerator::PackageFiles()
 
 int cmCPackPackageMakerGenerator::InitializeInternal()
 {
+  cmCPackLogger(cmCPackLog::LOG_WARNING,
+                "The PackageMaker generator is deprecated "
+                "and will be removed in a future version.\n");
   this->SetOptionIfNotSet("CPACK_PACKAGING_INSTALL_PREFIX", "/usr");
 
   // Starting with Xcode 4.3, PackageMaker is a separate app, and you