summaryrefslogtreecommitdiffstats
path: root/Source/CPack/cmCPackProductBuildGenerator.h
diff options
context:
space:
mode:
authorClinton Stimpson <clinton@elemtech.com>2013-11-02 16:24:53 (GMT)
committerClinton Stimpson <clinton@elemtech.com>2016-06-03 20:41:57 (GMT)
commit2e3c67d1b636f752eea35ef407c5243a79742d63 (patch)
tree9398330039272daa72dbb35c18b0d480f01c3364 /Source/CPack/cmCPackProductBuildGenerator.h
parent50a3d34005ec923db3d76d0a5d118437a7632617 (diff)
downloadCMake-2e3c67d1b636f752eea35ef407c5243a79742d63.zip
CMake-2e3c67d1b636f752eea35ef407c5243a79742d63.tar.gz
CMake-2e3c67d1b636f752eea35ef407c5243a79742d63.tar.bz2
productbuild: Add new productbuild cpack generator.
This cpack generator basically replaces the obsolete PackageMaker generator.
Diffstat (limited to 'Source/CPack/cmCPackProductBuildGenerator.h')
-rw-r--r--Source/CPack/cmCPackProductBuildGenerator.h60
1 files changed, 60 insertions, 0 deletions
diff --git a/Source/CPack/cmCPackProductBuildGenerator.h b/Source/CPack/cmCPackProductBuildGenerator.h
new file mode 100644
index 0000000..0740f89
--- /dev/null
+++ b/Source/CPack/cmCPackProductBuildGenerator.h
@@ -0,0 +1,60 @@
+/*============================================================================
+ CMake - Cross Platform Makefile Generator
+ Copyright 2000-2009 Kitware, Inc.
+
+ Distributed under the OSI-approved BSD License (the "License");
+ see accompanying file Copyright.txt for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even the
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the License for more information.
+============================================================================*/
+
+#ifndef cmCPackProductBuildGenerator_h
+#define cmCPackProductBuildGenerator_h
+
+
+#include "cmCPackPKGGenerator.h"
+
+class cmCPackComponent;
+
+/** \class cmCPackProductBuildGenerator
+ * \brief A generator for ProductBuild files
+ *
+ */
+class cmCPackProductBuildGenerator : public cmCPackPKGGenerator
+{
+public:
+ cmCPackTypeMacro(cmCPackProductBuildGenerator, cmCPackPKGGenerator);
+
+ /**
+ * Construct generator
+ */
+ cmCPackProductBuildGenerator();
+ virtual ~cmCPackProductBuildGenerator();
+
+protected:
+ virtual int InitializeInternal();
+ int PackageFiles();
+ virtual const char* GetOutputExtension() { return ".pkg"; }
+
+ // Run ProductBuild with the given command line, which will (if
+ // successful) produce the given package file. Returns true if
+ // ProductBuild succeeds, false otherwise.
+ bool RunProductBuild(const std::string& command);
+
+ // Generate a package in the file packageFile for the given
+ // component. All of the files within this component are stored in
+ // the directory packageDir. Returns true if successful, false
+ // otherwise.
+ bool GenerateComponentPackage(const std::string& packageFileDir,
+ const std::string& packageFileName,
+ const std::string& packageDir,
+ const cmCPackComponent* component);
+
+ const char* GetComponentScript(const char* script,
+ const char* script_component);
+
+};
+
+#endif