summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2008-03-12 21:54:27 -0400
committerBill Hoffman <bill.hoffman@kitware.com>2008-03-12 21:54:27 -0400
commit042f4c334d854448852ede2a207e7e361e53c154 (patch)
treedfccab0829f6b90046b7719e3d07a0afd054429e
parent5ab6c0f0ed39136bd778a6f982691e5142a7aceb (diff)
downloadcmake-042f4c334d854448852ede2a207e7e361e53c154.tar.gz
ENH: fix crash in cpack when CPACK_CYGWIN_PATCH_NUMBER not specified
-rw-r--r--CMakeCPackOptions.cmake.in5
-rw-r--r--Source/CPack/cmCPackCygwinBinaryGenerator.cxx2
-rw-r--r--Source/CPack/cmCPackCygwinSourceGenerator.cxx18
-rw-r--r--Source/CPack/cmCPackGenerator.cxx10
4 files changed, 29 insertions, 6 deletions
diff --git a/CMakeCPackOptions.cmake.in b/CMakeCPackOptions.cmake.in
index e20cdc41fd..0c571d069b 100644
--- a/CMakeCPackOptions.cmake.in
+++ b/CMakeCPackOptions.cmake.in
@@ -32,8 +32,9 @@ if(CPACK_GENERATOR MATCHES "NSIS")
SET(CPACK_NSIS_CONTACT @CPACK_PACKAGE_CONTACT@)
SET(CPACK_NSIS_MODIFY_PATH ON)
endif(CPACK_GENERATOR MATCHES "NSIS")
-# include the cpack options
-INCLUDE("@QT_DIALOG_CPACK_OPTIONS_FILE@")
+# include the cpack options for qt dialog if they exisit
+# they might not if qt was not enabled for the build
+INCLUDE("@QT_DIALOG_CPACK_OPTIONS_FILE@" OPTIONAL)
if(CPACK_GENERATOR MATCHES "CygwinSource")
# when packaging source make sure the .build directory is not included
diff --git a/Source/CPack/cmCPackCygwinBinaryGenerator.cxx b/Source/CPack/cmCPackCygwinBinaryGenerator.cxx
index f6f51be254..4f0eb46a19 100644
--- a/Source/CPack/cmCPackCygwinBinaryGenerator.cxx
+++ b/Source/CPack/cmCPackCygwinBinaryGenerator.cxx
@@ -106,7 +106,7 @@ const char* cmCPackCygwinBinaryGenerator::GetOutputExtension()
"CPACK_CYGWIN_PATCH_NUMBER not specified using 1"
<< std::endl);
}
- this->OutputExtension +=
+ this->OutputExtension += patchNumber;
this->OutputExtension += ".tar.bz2";
return this->OutputExtension.c_str();
}
diff --git a/Source/CPack/cmCPackCygwinSourceGenerator.cxx b/Source/CPack/cmCPackCygwinSourceGenerator.cxx
index 0856452a4a..c8fa121723 100644
--- a/Source/CPack/cmCPackCygwinSourceGenerator.cxx
+++ b/Source/CPack/cmCPackCygwinSourceGenerator.cxx
@@ -124,7 +124,14 @@ int cmCPackCygwinSourceGenerator::CompressFiles(const char* outFileName,
std::string outerTarFile
= this->GetOption("CPACK_TEMPORARY_DIRECTORY");
outerTarFile += "-";
- outerTarFile += this->GetOption("CPACK_CYGWIN_PATCH_NUMBER");
+ const char* patch = this->GetOption("CPACK_CYGWIN_PATCH_NUMBER");
+ if(!patch)
+ {
+ cmCPackLogger(cmCPackLog::LOG_WARNING, "CPACK_CYGWIN_PATCH_NUMBER"
+ << " not specified, defaulting to 1\n");
+ patch = "1";
+ }
+ outerTarFile += patch;
outerTarFile += "-src.tar";
std::string buildScript = cmSystemTools::GetFilenameName(
this->GetOption("CPACK_CYGWIN_BUILD_SCRIPT"));
@@ -176,7 +183,14 @@ const char* cmCPackCygwinSourceGenerator::GetPackagingInstallPrefix()
const char* cmCPackCygwinSourceGenerator::GetOutputExtension()
{
this->OutputExtension = "-";
- this->OutputExtension += this->GetOption("CPACK_CYGWIN_PATCH_NUMBER");
+ const char* patch = this->GetOption("CPACK_CYGWIN_PATCH_NUMBER");
+ if(!patch)
+ {
+ cmCPackLogger(cmCPackLog::LOG_WARNING, "CPACK_CYGWIN_PATCH_NUMBER"
+ << " not specified, defaulting to 1\n");
+ patch = "1";
+ }
+ this->OutputExtension += patch;
this->OutputExtension += "-src.tar.bz2";
return this->OutputExtension.c_str();
}
diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx
index a58953a084..8502df0413 100644
--- a/Source/CPack/cmCPackGenerator.cxx
+++ b/Source/CPack/cmCPackGenerator.cxx
@@ -817,7 +817,15 @@ bool cmCPackGenerator::IsSet(const char* name) const
//----------------------------------------------------------------------
const char* cmCPackGenerator::GetOption(const char* op)
{
- return this->MakefileMap->GetDefinition(op);
+ const char* ret = this->MakefileMap->GetDefinition(op);
+ if(!ret)
+ {
+ cmCPackLogger(cmCPackLog::LOG_DEBUG,
+ "Warning, GetOption return NULL for: "
+ << op
+ << std::endl);
+ }
+ return ret;
}
//----------------------------------------------------------------------