summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Cedilnik <andy.cedilnik@kitware.com>2006-02-27 15:58:20 (GMT)
committerAndy Cedilnik <andy.cedilnik@kitware.com>2006-02-27 15:58:20 (GMT)
commitee227d3af5c0d5abcb8816e34809df60b9665ec1 (patch)
tree2575658691b780ee4f6a4e0d8d059639e6925b54
parentac99baa44d985ddbf6f767090c49583bdd8f1aa4 (diff)
downloadCMake-ee227d3af5c0d5abcb8816e34809df60b9665ec1.zip
CMake-ee227d3af5c0d5abcb8816e34809df60b9665ec1.tar.gz
CMake-ee227d3af5c0d5abcb8816e34809df60b9665ec1.tar.bz2
ENH: Several packaging issues. Allow random variables to be passed to cpack (anything starting with CPACK_, add preinstall to the list of dependencies for package, fix typos
-rw-r--r--Modules/CPack.Info.plist.in4
-rw-r--r--Modules/CPack.cmake9
-rw-r--r--Modules/NSIS.template.in2
-rw-r--r--Source/CPack/cmCPackGenericGenerator.cxx2
-rw-r--r--Source/cmBootstrapCommands.cxx2
-rw-r--r--Source/cmCommands.cxx2
-rw-r--r--Source/cmGlobalGenerator.cxx4
-rw-r--r--Templates/CPackConfig.cmake.in42
8 files changed, 41 insertions, 26 deletions
diff --git a/Modules/CPack.Info.plist.in b/Modules/CPack.Info.plist.in
index 622b288..5ad9a37 100644
--- a/Modules/CPack.Info.plist.in
+++ b/Modules/CPack.Info.plist.in
@@ -4,9 +4,9 @@
<plist version="1.0">
<dict>
<key>IFMajorVersion</key>
-<integer>@CPACK_PACKAGE_MAJOR_VERSION@</integer>
+<integer>@CPACK_PACKAGE_VERSION_MAJOR@</integer>
<key>IFMinorVersion</key>
-<integer>@CPACK_PACKAGE_MINOR_VERSION@</integer>
+<integer>@CPACK_PACKAGE_VERSION_MINOR@</integer>
<key>IFPkgFlagAllowBackRev</key>
<false/>
<key>IFPkgFlagAuthorizationAction</key>
diff --git a/Modules/CPack.cmake b/Modules/CPack.cmake
index 2a80741..9b3689d 100644
--- a/Modules/CPack.cmake
+++ b/Modules/CPack.cmake
@@ -82,4 +82,13 @@ IF(CMake_INSTALL_SYSTEM_RUNTIME_LIBS)
ENDIF(WIN32)
ENDIF(CMake_INSTALL_SYSTEM_RUNTIME_LIBS)
+SET(_CPACK_UNUSED_VARIABLES_)
+GET_CMAKE_PROPERTY(res VARIABLES)
+FOREACH(var ${res})
+ IF("xxx${var}" MATCHES "xxxCPACK")
+ SET(_CPACK_OTHER_VARIABLES_
+ "${_CPACK_OTHER_VARIABLES_}\nSET(${var} \"${${var}}\")")
+ ENDIF("xxx${var}" MATCHES "xxxCPACK")
+ENDFOREACH(var ${res})
+
CONFIGURE_FILE("${cpack_input_file}" "${CMAKE_BINARY_DIR}/CPackConfig.cmake" @ONLY IMMEDIATE)
diff --git a/Modules/NSIS.template.in b/Modules/NSIS.template.in
index e84a112..87f8c66 100644
--- a/Modules/NSIS.template.in
+++ b/Modules/NSIS.template.in
@@ -355,7 +355,6 @@ Section "Dummy Section" SecDummy
;Create shortcuts
CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
@CPACK_NSIS_CREATE_ICONS@
-@CPACK_NSIS_CREATE_EXTRA_ICONS@
CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
@CPACK_NSIS_EXTRA_INSTALL_COMMANDS@
@@ -415,7 +414,6 @@ Section "Uninstall"
Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk"
@CPACK_NSIS_DELETE_ICONS@
-@CPACK_NSIS_DELETE_EXTRA_ICONS@
;Delete empty start menu parent diretories
StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP"
diff --git a/Source/CPack/cmCPackGenericGenerator.cxx b/Source/CPack/cmCPackGenericGenerator.cxx
index b203563..920a89e 100644
--- a/Source/CPack/cmCPackGenericGenerator.cxx
+++ b/Source/CPack/cmCPackGenericGenerator.cxx
@@ -101,7 +101,7 @@ int cmCPackGenericGenerator::PrepareNames()
if ( !this->GetOption("CPACK_PACKAGE_DESCRIPTION") )
{
cmCPackLogger(cmCPackLog::LOG_ERROR,
- "Project description not specified. Please specify CPACK_PACKAGE_DESCRIPTION or CPACK_PACKAGE_DESCRIPTION_FILE_NAME."
+ "Project description not specified. Please specify CPACK_PACKAGE_DESCRIPTION or CPACK_PACKAGE_DESCRIPTION_FILE."
<< std::endl);
return 0;
}
diff --git a/Source/cmBootstrapCommands.cxx b/Source/cmBootstrapCommands.cxx
index fe4f32d..e20da55 100644
--- a/Source/cmBootstrapCommands.cxx
+++ b/Source/cmBootstrapCommands.cxx
@@ -44,6 +44,7 @@
#include "cmFindPathCommand.cxx"
#include "cmFindProgramCommand.cxx"
#include "cmForEachCommand.cxx"
+#include "cmGetCMakePropertyCommand.cxx"
#include "cmGetFilenameComponentCommand.cxx"
#include "cmGetSourceFilePropertyCommand.cxx"
#include "cmGetTargetPropertyCommand.cxx"
@@ -102,6 +103,7 @@ void GetBootstrapCommands(std::list<cmCommand*>& commands)
commands.push_back(new cmFindPathCommand);
commands.push_back(new cmFindProgramCommand);
commands.push_back(new cmForEachCommand);
+ commands.push_back(new cmGetCMakePropertyCommand);
commands.push_back(new cmGetFilenameComponentCommand);
commands.push_back(new cmGetSourceFilePropertyCommand);
commands.push_back(new cmGetTargetPropertyCommand);
diff --git a/Source/cmCommands.cxx b/Source/cmCommands.cxx
index da4683d..63f5f4d 100644
--- a/Source/cmCommands.cxx
+++ b/Source/cmCommands.cxx
@@ -22,7 +22,6 @@
#include "cmExportLibraryDependencies.cxx"
#include "cmEnableLanguageCommand.cxx"
#include "cmFLTKWrapUICommand.cxx"
-#include "cmGetCMakePropertyCommand.cxx"
#include "cmGetDirectoryPropertyCommand.cxx"
#include "cmGetTestPropertyCommand.cxx"
#include "cmIncludeExternalMSProjectCommand.cxx"
@@ -66,7 +65,6 @@ void GetPredefinedCommands(std::list<cmCommand*>&
commands.push_back(new cmExecuteProcessCommand);
commands.push_back(new cmExportLibraryDependenciesCommand);
commands.push_back(new cmFLTKWrapUICommand);
- commands.push_back(new cmGetCMakePropertyCommand);
commands.push_back(new cmGetDirectoryPropertyCommand);
commands.push_back(new cmGetTestPropertyCommand);
commands.push_back(new cmIncludeExternalMSProjectCommand);
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index fe8324e..e783774 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1226,6 +1226,10 @@ void cmGlobalGenerator::CreateDefaultGlobalTargets(cmTargets* targets)
configFile += "/CPackConfig.cmake";
singleLine.push_back(configFile);
cpackCommandLines.push_back(singleLine);
+ if ( this->GetPreInstallAvailable() )
+ {
+ depends.push_back("preinstall");
+ }
(*targets)[this->GetPackageTargetName()]
= this->CreateGlobalTarget(this->GetPackageTargetName(),
"Run CPack packaging tool...", &cpackCommandLines, depends);
diff --git a/Templates/CPackConfig.cmake.in b/Templates/CPackConfig.cmake.in
index be52b74..0f4ecd0 100644
--- a/Templates/CPackConfig.cmake.in
+++ b/Templates/CPackConfig.cmake.in
@@ -1,22 +1,26 @@
-SET(CPACK_GENERATOR "@CPACK_GENERATOR@")
+# This file will be configured to contain variables for CPack. These variables
+# should be set in the CMake list file of the project before CPack module is
+# included. Example variables are:
+# CPACK_BINARY_DIR - Path to the build tree
+# CPACK_GENERATOR - Generator used to create package
+# CPACK_PACKAGE_DESCRIPTION_FILE - Description file for the package
+# CPACK_PACKAGE_DESCRIPTION_SUMMARY - Summary of the package
+# CPACK_PACKAGE_EXECUTABLES - List of pairs of executables and labels
+# CPACK_PACKAGE_FILE_NAME - Name of the package generated
+# CPACK_PACKAGE_ICON - Icon used for the package
+# CPACK_PACKAGE_INSTALL_DIRECTORY - Name of directory for the installer
+# CPACK_PACKAGE_NAME - Package project name
+# CPACK_PACKAGE_VENDOR - Package project vendor
+# CPACK_PACKAGE_VERSION - Package project version
+# CPACK_PACKAGE_VERSION_MAJOR - Package project version (major)
+# CPACK_PACKAGE_VERSION_MINOR - Package project version (minor)
+# CPACK_PACKAGE_VERSION_PATCH - Package project version (patch)
-SET(CPACK_PACKAGE_NAME "@CPACK_PACKAGE_NAME@")
-SET(CPACK_PACKAGE_INSTALL_DIRECTORY "@CPACK_PACKAGE_INSTALL_DIRECTORY@")
-SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "@CPACK_PACKAGE_INSTALL_REGISTRY_KEY@")
-SET(CPACK_PACKAGE_VERSION_MAJOR "@CPACK_PACKAGE_VERSION_MAJOR@")
-SET(CPACK_PACKAGE_VERSION_MINOR "@CPACK_PACKAGE_VERSION_MINOR@")
-SET(CPACK_PACKAGE_VERSION_PATCH "@CPACK_PACKAGE_VERSION_PATCH@")
+# There are certain generator specific ones
-SET(CPACK_PACKAGE_VENDOR "@CPACK_PACKAGE_VENDOR@")
+# NSIS Generator:
+# CPACK_PACKAGE_INSTALL_REGISTRY_KEY - Name of the registry key for the installer
+# CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS - Extra commands used during uninstall
+# CPACK_NSIS_EXTRA_INSTALL_COMMANDS - Extra commands used during install
-SET(CPACK_PACKAGE_FILE_NAME "@CPACK_PACKAGE_FILE_NAME@")
-
-SET(CPACK_PACKAGE_EXECUTABLES "@CPACK_PACKAGE_EXECUTABLES@")
-
-SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "@CPACK_PACKAGE_DESCRIPTION_SUMMARY@")
-SET(CPACK_PACKAGE_DESCRIPTION_FILE "@CPACK_PACKAGE_DESCRIPTION_FILE@")
-
-# It is a CMake project, so we need a binary directory
-SET(CPACK_BINARY_DIR "@CPACK_BINARY_DIR@")
-
-SET(CPACK_PACKAGE_ICON "@CPACK_PACKAGE_ICON@")
+@_CPACK_OTHER_VARIABLES_@