diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2007-11-07 18:11:58 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2007-11-07 18:11:58 (GMT) |
commit | 87c22309b844176df1250f37ecef418b6856ddd6 (patch) | |
tree | 51046edc7411a3d5a8ce62a92f6f9f6d758dbbab | |
parent | c05f8aa70ed5837b75211483bddd9ae27012cd12 (diff) | |
download | CMake-87c22309b844176df1250f37ecef418b6856ddd6.zip CMake-87c22309b844176df1250f37ecef418b6856ddd6.tar.gz CMake-87c22309b844176df1250f37ecef418b6856ddd6.tar.bz2 |
ENH: change CPACK_CREATE_DESKTOP_LINKS to something that can handle spaces in the name of the exectuable
-rw-r--r-- | CMakeCPack.cmake | 5 | ||||
-rw-r--r-- | CMakeCPackOptions.cmake.in | 2 | ||||
-rw-r--r-- | Source/CPack/cmCPackNSISGenerator.cxx | 34 |
3 files changed, 35 insertions, 6 deletions
diff --git a/CMakeCPack.cmake b/CMakeCPack.cmake index f511895..24eb061 100644 --- a/CMakeCPack.cmake +++ b/CMakeCPack.cmake @@ -2,7 +2,10 @@ IF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") IF(EXISTS "${CMAKE_ROOT}/Modules/InstallRequiredSystemLibraries.cmake") SET(CMAKE_INSTALL_MFC_LIBRARIES 1) - INCLUDE(InstallRequiredSystemLibraries) + OPTION(CMAKE_INSTALL_DEBUG_LIBRARIES + "Install Microsoft runtime debug libraries with CMake." FALSE) + MARK_AS_ADVANCED(CMAKE_INSTALL_DEBUG_LIBRARIES) + INCLUDE(${CMake_SOURCE_DIR}/Modules/InstallRequiredSystemLibraries.cmake) ENDIF(EXISTS "${CMAKE_ROOT}/Modules/InstallRequiredSystemLibraries.cmake") CONFIGURE_FILE("${CMake_SOURCE_DIR}/CMakeCPackOptions.cmake.in" "${CMake_BINARY_DIR}/CMakeCPackOptions.cmake" @ONLY) diff --git a/CMakeCPackOptions.cmake.in b/CMakeCPackOptions.cmake.in index f1be2e8..9175a5e 100644 --- a/CMakeCPackOptions.cmake.in +++ b/CMakeCPackOptions.cmake.in @@ -20,7 +20,7 @@ if(CPACK_GENERATOR MATCHES "NSIS") # tell cpack the executables you want in the start menu as links SET(CPACK_PACKAGE_EXECUTABLES "CMakeSetup" "CMake" ) # tell cpack to create a desktop link to CMakeSetup - SET(CPACK_CREATE_DESKTOP_LINK_CMakeSetup ON) + SET(CPACK_CREATE_DESKTOP_LINKS "CMakeSetup") SET(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\CMakeSetup.exe") SET(CPACK_NSIS_DISPLAY_NAME "@CPACK_PACKAGE_INSTALL_DIRECTORY@ a cross-platform, open-source build system") SET(CPACK_NSIS_HELP_LINK "http:\\\\www.cmake.org") diff --git a/Source/CPack/cmCPackNSISGenerator.cxx b/Source/CPack/cmCPackNSISGenerator.cxx index 953b367..2e794f0 100644 --- a/Source/CPack/cmCPackNSISGenerator.cxx +++ b/Source/CPack/cmCPackNSISGenerator.cxx @@ -228,10 +228,34 @@ int cmCPackNSISGenerator::InitializeInternal() << nsisVersion << std::endl); return 0; } - this->SetOptionIfNotSet("CPACK_INSTALLER_PROGRAM", nsisPath.c_str()); const char* cpackPackageExecutables = this->GetOption("CPACK_PACKAGE_EXECUTABLES"); + const char* cpackPackageDeskTopLinks + = this->GetOption("CPACK_CREATE_DESKTOP_LINKS"); + std::vector<std::string> cpackPackageDesktopLinksVector; + if(cpackPackageDeskTopLinks) + { + cmCPackLogger(cmCPackLog::LOG_DEBUG, "CPACK_CREATE_DESKTOP_LINKS: " + << cpackPackageDeskTopLinks << std::endl); + + cmSystemTools:: + ExpandListArgument(cpackPackageDeskTopLinks, + cpackPackageDesktopLinksVector); + for(std::vector<std::string>::iterator i = + cpackPackageDesktopLinksVector.begin(); i != + cpackPackageDesktopLinksVector.end(); ++i) + { + cmCPackLogger(cmCPackLog::LOG_DEBUG, "CPACK_CREATE_DESKTOP_LINKS: " + << *i << std::endl); + } + } + else + { + cmCPackLogger(cmCPackLog::LOG_DEBUG, "CPACK_CREATE_DESKTOP_LINKS: " + << "not set" << std::endl); + + } if ( cpackPackageExecutables ) { cmCPackLogger(cmCPackLog::LOG_DEBUG, "The cpackPackageExecutables: " @@ -263,9 +287,11 @@ int cmCPackNSISGenerator::InitializeInternal() << ".lnk\"" << std::endl; // see if CPACK_CREATE_DESKTOP_LINK_ExeName is on // if so add a desktop link - std::string desktop = "CPACK_CREATE_DESKTOP_LINK_"; - desktop += execName; - if(this->IsSet(desktop.c_str())) + if(cpackPackageDesktopLinksVector.size() && + std::find(cpackPackageDesktopLinksVector.begin(), + cpackPackageDesktopLinksVector.end(), + execName) + != cpackPackageDesktopLinksVector.end()) { str << " StrCmp \"$INSTALL_DESKTOP\" \"1\" 0 +2\n"; str << " CreateShortCut \"$DESKTOP\\" |