summaryrefslogtreecommitdiffstats
path: root/Source/CPack/cmCPackGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-03-31 14:26:29 (GMT)
committerBrad King <brad.king@kitware.com>2015-03-31 14:30:25 (GMT)
commit93a3ec8b7705c6edfa08a59a789d193fcb4cf4c1 (patch)
tree5d3e2bca7fe26a49cae92c8e5b80345adb391401 /Source/CPack/cmCPackGenerator.cxx
parented989122c3b997b19c714ce511619e6b6204a1f1 (diff)
downloadCMake-93a3ec8b7705c6edfa08a59a789d193fcb4cf4c1.zip
CMake-93a3ec8b7705c6edfa08a59a789d193fcb4cf4c1.tar.gz
CMake-93a3ec8b7705c6edfa08a59a789d193fcb4cf4c1.tar.bz2
CPack: Fix make tool selection during preinstall (#15483)
The CMAKE_MAKE_PROGRAM selected by CMake while configuring the project should also be used to drive the "preinstall" target during packaging. Teach CPack to use "cmake --build" instead of constructing the build command line itself. The "cmake --build" command already knows how to select the proper make tool.
Diffstat (limited to 'Source/CPack/cmCPackGenerator.cxx')
-rw-r--r--Source/CPack/cmCPackGenerator.cxx23
1 files changed, 8 insertions, 15 deletions
diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx
index ee255af..67005ef 100644
--- a/Source/CPack/cmCPackGenerator.cxx
+++ b/Source/CPack/cmCPackGenerator.cxx
@@ -655,26 +655,19 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
cmSystemTools::SetForceUnixPaths(globalGenerator->GetForceUnixPaths());
// Does this generator require pre-install?
- if ( globalGenerator->GetPreinstallTargetName() )
+ if (const char* preinstall = globalGenerator->GetPreinstallTargetName())
{
- globalGenerator->FindMakeProgram(this->MakefileMap);
- std::string cmakeMakeProgram
- = this->MakefileMap->GetSafeDefinition("CMAKE_MAKE_PROGRAM");
- std::vector<std::string> buildCommand;
- globalGenerator->GenerateBuildCommand(buildCommand, cmakeMakeProgram,
- installProjectName, installDirectory,
- globalGenerator->GetPreinstallTargetName(),
- buildConfig, false, false);
- std::string buildCommandStr =
- cmSystemTools::PrintSingleCommand(buildCommand);
+ std::string buildCommand =
+ globalGenerator->GenerateCMakeBuildCommand(
+ preinstall, buildConfig, "", false);
cmCPackLogger(cmCPackLog::LOG_DEBUG,
- "- Install command: " << buildCommandStr << std::endl);
+ "- Install command: " << buildCommand << std::endl);
cmCPackLogger(cmCPackLog::LOG_OUTPUT,
"- Run preinstall target for: " << installProjectName << std::endl);
std::string output;
int retVal = 1;
bool resB =
- cmSystemTools::RunSingleCommand(buildCommand,
+ cmSystemTools::RunSingleCommand(buildCommand.c_str(),
&output,
&retVal,
installDirectory.c_str(),
@@ -684,12 +677,12 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects(
std::string tmpFile = this->GetOption("CPACK_TOPLEVEL_DIRECTORY");
tmpFile += "/PreinstallOutput.log";
cmGeneratedFileStream ofs(tmpFile.c_str());
- ofs << "# Run command: " << buildCommandStr << std::endl
+ ofs << "# Run command: " << buildCommand << std::endl
<< "# Directory: " << installDirectory << std::endl
<< "# Output:" << std::endl
<< output << std::endl;
cmCPackLogger(cmCPackLog::LOG_ERROR,
- "Problem running install command: " << buildCommandStr
+ "Problem running install command: " << buildCommand
<< std::endl
<< "Please check " << tmpFile << " for errors"
<< std::endl);