diff options
author | Alex Turbov <i.zaufi@gmail.com> | 2017-07-31 14:53:11 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-09-20 17:33:22 (GMT) |
commit | 091663395e25a9671024b8f5a8be9995b7b80604 (patch) | |
tree | f096b347a7c8807a9060fabd873e3b91fee3f1b8 | |
parent | 4547d9a83030f8ae7e636cef16a261c65e6feb40 (diff) | |
download | CMake-091663395e25a9671024b8f5a8be9995b7b80604.zip CMake-091663395e25a9671024b8f5a8be9995b7b80604.tar.gz CMake-091663395e25a9671024b8f5a8be9995b7b80604.tar.bz2 |
CPack: Add missing check for CPACK_INSTALL_SCRIPT variable
Also add a test case that uses CPACK_INSTALL_SCRIPT.
Co-Author: Domen Vrankar <domen.vrankar@gmail.com>
Fixes: #15005
-rw-r--r-- | Source/CPack/cpack.cxx | 3 | ||||
-rw-r--r-- | Tests/RunCMake/CPack/RunCMakeTest.cmake | 1 | ||||
-rw-r--r-- | Tests/RunCMake/CPack/tests/CPACK_INSTALL_SCRIPT/ExpectedFiles.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/CPack/tests/CPACK_INSTALL_SCRIPT/test.cmake | 11 |
4 files changed, 17 insertions, 1 deletions
diff --git a/Source/CPack/cpack.cxx b/Source/CPack/cpack.cxx index 33d03e5..cc51c60 100644 --- a/Source/CPack/cpack.cxx +++ b/Source/CPack/cpack.cxx @@ -350,13 +350,14 @@ int main(int argc, char const* const* argv) } if (!mf->GetDefinition("CPACK_INSTALL_COMMANDS") && + !mf->GetDefinition("CPACK_INSTALL_SCRIPT") && !mf->GetDefinition("CPACK_INSTALLED_DIRECTORIES") && !mf->GetDefinition("CPACK_INSTALL_CMAKE_PROJECTS")) { cmCPack_Log( &log, cmCPackLog::LOG_ERROR, "Please specify build tree of the project that uses CMake " "using CPACK_INSTALL_CMAKE_PROJECTS, specify " - "CPACK_INSTALL_COMMANDS, or specify " + "CPACK_INSTALL_COMMANDS, CPACK_INSTALL_SCRIPT, or " "CPACK_INSTALLED_DIRECTORIES." << std::endl); parsed = 0; diff --git a/Tests/RunCMake/CPack/RunCMakeTest.cmake b/Tests/RunCMake/CPack/RunCMakeTest.cmake index faf151a..fb1f476 100644 --- a/Tests/RunCMake/CPack/RunCMakeTest.cmake +++ b/Tests/RunCMake/CPack/RunCMakeTest.cmake @@ -27,3 +27,4 @@ run_cpack_test(SUGGESTS "RPM" false "MONOLITHIC") run_cpack_test(SYMLINKS "RPM;TGZ" false "MONOLITHIC;COMPONENT") run_cpack_test(USER_FILELIST "RPM" false "MONOLITHIC") run_cpack_test(MD5SUMS "DEB" false "MONOLITHIC;COMPONENT") +run_cpack_test(CPACK_INSTALL_SCRIPT "ZIP" false "MONOLITHIC") diff --git a/Tests/RunCMake/CPack/tests/CPACK_INSTALL_SCRIPT/ExpectedFiles.cmake b/Tests/RunCMake/CPack/tests/CPACK_INSTALL_SCRIPT/ExpectedFiles.cmake new file mode 100644 index 0000000..5cb12c3 --- /dev/null +++ b/Tests/RunCMake/CPack/tests/CPACK_INSTALL_SCRIPT/ExpectedFiles.cmake @@ -0,0 +1,3 @@ +set(EXPECTED_FILES_COUNT "1") + +set(EXPECTED_FILE_CONTENT_1_LIST "/usr;/usr/foo;/usr/foo/abc.txt") diff --git a/Tests/RunCMake/CPack/tests/CPACK_INSTALL_SCRIPT/test.cmake b/Tests/RunCMake/CPack/tests/CPACK_INSTALL_SCRIPT/test.cmake new file mode 100644 index 0000000..e3fe0ca --- /dev/null +++ b/Tests/RunCMake/CPack/tests/CPACK_INSTALL_SCRIPT/test.cmake @@ -0,0 +1,11 @@ +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/abc.txt" "test content") +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/user-script.cmake" + "file(INSTALL DESTINATION \"\${CMAKE_INSTALL_PREFIX}/foo\" + TYPE FILE FILES \"${CMAKE_CURRENT_BINARY_DIR}/abc.txt\")") +set(CPACK_INSTALL_SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/user-script.cmake") + +function(run_after_include_cpack) + file(READ "${CPACK_OUTPUT_CONFIG_FILE}" conf_file_) + string(REGEX REPLACE "SET\\(CPACK_INSTALL_CMAKE_PROJECTS [^)]*\\)" "" conf_file_ "${conf_file_}") + file(WRITE "${CPACK_OUTPUT_CONFIG_FILE}" "${conf_file_}") +endfunction() |