| ######################################################################### |
| # Setup release scripts. |
| |
| # Search for system runtime libraries based on the platform. This is |
| # not complete because it is used only for the release process by the |
| # developers. |
| IF(MSVC) |
| STRING(REGEX REPLACE "\\\\" "/" SYSTEMROOT "$ENV{SYSTEMROOT}") |
| FOREACH(lib |
| "${SYSTEMROOT}/system32/mfc71.dll" |
| "${SYSTEMROOT}/system32/msvcp71.dll" |
| "${SYSTEMROOT}/system32/msvcr71.dll" |
| ) |
| IF(EXISTS ${lib}) |
| SET(CMake_INSTALL_SYSTEM_RUNTIME_LIBS |
| ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib}) |
| ENDIF(EXISTS ${lib}) |
| ENDFOREACH(lib) |
| ENDIF(MSVC) |
| |
| # Include system runtime libraries in the installation if any are |
| # specified by CMake_INSTALL_SYSTEM_RUNTIME_LIBS. |
| IF(CMake_INSTALL_SYSTEM_RUNTIME_LIBS) |
| IF(WIN32) |
| INSTALL_PROGRAMS(/bin ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS}) |
| ELSE(WIN32) |
| INSTALL_PROGRAMS(/lib ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS}) |
| ENDIF(WIN32) |
| ENDIF(CMake_INSTALL_SYSTEM_RUNTIME_LIBS) |
| |
| IF(WIN32) |
| FIND_PROGRAM(NSIS_MAKENSIS NAMES makensis |
| PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\NSIS] |
| DOC "Where is makensis.exe located" |
| ) |
| MARK_AS_ADVANCED(NSIS_MAKENSIS) |
| FIND_PROGRAM(WINZIP_WZZIP NAMES wzzip |
| PATHS "C:/Program Files/WinZip" |
| DOC "Where is makensis.exe located" |
| ) |
| MARK_AS_ADVANCED(WINZIP_WZZIP) |
| STRING(REGEX REPLACE "/" "\\\\" CMake_INSTALL_TOP "${CMAKE_INSTALL_PREFIX}") |
| SET(NSIS_EXTRA_COMMANDS ";Include system runtime libraries.\n SetOutPath \"$INSTDIR\\bin\"\n") |
| FOREACH(lib ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS}) |
| STRING(REGEX REPLACE "/" "\\\\" LIB "${lib}") |
| SET(NSIS_EXTRA_COMMANDS "${NSIS_EXTRA_COMMANDS} File \"${LIB}\"\n") |
| ENDFOREACH(lib) |
| CONFIGURE_FILE( |
| ${PROJECT_SOURCE_DIR}/Utilities/Release/${PROJECT_NAME}.nsi.in |
| ${PROJECT_BINARY_DIR}/Utilities/Release/${PROJECT_NAME}.nsi |
| IMMEDIATE @ONLY) |
| CONFIGURE_FILE( |
| ${PROJECT_SOURCE_DIR}/Utilities/Release/cmake_release.sh.in |
| ${PROJECT_BINARY_DIR}/Utilities/Release/cmake_release.sh |
| IMMEDIATE @ONLY) |
| ENDIF(WIN32) |
| |
| CONFIGURE_FILE( |
| ${PROJECT_SOURCE_DIR}/Utilities/Release/MakeRelease.cmake.in |
| ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake |
| IMMEDIATE @ONLY) |
| |
| IF (NSIS_MAKENSIS AND WINZIP_WZZIP) |
| # build the NSI |
| ADD_CUSTOM_TARGET( release |
| ${CMAKE_COMMAND} -DBUILD_NSIW=1 -DCOMMIT_UNIX_SCRIPT=1 -DTAG_TREE=1 -DBUILD_WINZIP=1 |
| -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake |
| ) |
| ADD_CUSTOM_TARGET( release_nsiw |
| ${CMAKE_COMMAND} -DBUILD_NSIW=1 |
| -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake |
| ) |
| ADD_CUSTOM_TARGET( release_winzip |
| ${CMAKE_COMMAND} -DBUILD_WINZIP=1 |
| -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake |
| ) |
| ENDIF (NSIS_MAKENSIS AND WINZIP_WZZIP) |
| |
| ADD_CUSTOM_TARGET( release_commit_unix |
| ${CMAKE_COMMAND} -DCOMMIT_UNIX_SCRIPT=1 |
| -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake |
| ) |
| ADD_CUSTOM_TARGET( release_tag |
| ${CMAKE_COMMAND} -DTAG_TREE=1 |
| -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake |
| ) |
| ADD_CUSTOM_TARGET( release_tar |
| ${CMAKE_COMMAND} -DBUILD_TAR=1 |
| -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake |
| ) |