diff --git a/Source/cmake.cxx b/Source/cmake.cxx index c1c26989d..9c4f7d913 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -217,7 +217,8 @@ bool cmake::SetCacheArgs(const std::vector& args) } else if(arg.find("-P",0) == 0) { - std::string path = arg.substr(strlen("-P")); + i++; + std::string path = args[i]; if ( path.size() == 0 ) { cmSystemTools::Error("No cmake scrpt provided."); diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx index 7c9a15524..3b29bf541 100644 --- a/Source/cmakemain.cxx +++ b/Source/cmakemain.cxx @@ -185,8 +185,14 @@ int do_cmake(int ac, char** av) } else if (strncmp(av[i], "-P", strlen("-P")) == 0) { + if ( i == ac -1 ) + { + cmSystemTools::Error("No script specified for argument -P"); + } script_mode = true; args.push_back(av[i]); + i++; + args.push_back(av[i]); } else { diff --git a/Tests/SimpleInstall/CMakeLists.txt b/Tests/SimpleInstall/CMakeLists.txt index 4a315a185..ed46a0f64 100644 --- a/Tests/SimpleInstall/CMakeLists.txt +++ b/Tests/SimpleInstall/CMakeLists.txt @@ -71,7 +71,7 @@ ADD_CUSTOM_COMMAND( POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS ${EXTRA_INSTALL_FLAGS} - "-P${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake" + -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake" COMMENT "Install Project" ) diff --git a/Tests/SimpleInstallS2/CMakeLists.txt b/Tests/SimpleInstallS2/CMakeLists.txt index 4a315a185..ed46a0f64 100644 --- a/Tests/SimpleInstallS2/CMakeLists.txt +++ b/Tests/SimpleInstallS2/CMakeLists.txt @@ -71,7 +71,7 @@ ADD_CUSTOM_COMMAND( POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS ${EXTRA_INSTALL_FLAGS} - "-P${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake" + -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake" COMMENT "Install Project" )