Release.cmake 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #########################################################################
  2. # Setup release scripts.
  3. # Search for system runtime libraries based on the platform. This is
  4. # not complete because it is used only for the release process by the
  5. # developers.
  6. IF(WIN32)
  7. STRING(REGEX REPLACE "\\\\" "/" SYSTEMROOT "$ENV{SYSTEMROOT}")
  8. FOREACH(lib
  9. "${SYSTEMROOT}/system32/msvcp71.dll"
  10. "${SYSTEMROOT}/system32/msvcr71.dll"
  11. )
  12. IF(EXISTS ${lib})
  13. SET(CMake_INSTALL_SYSTEM_RUNTIME_LIBS
  14. ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib})
  15. ENDIF(EXISTS ${lib})
  16. ENDFOREACH(lib)
  17. ENDIF(WIN32)
  18. # Include system runtime libraries in the installation if any are
  19. # specified by CMake_INSTALL_SYSTEM_RUNTIME_LIBS.
  20. IF(CMake_INSTALL_SYSTEM_RUNTIME_LIBS)
  21. IF(WIN32)
  22. INSTALL_PROGRAMS(${CMake_INSTALL_BIN_DIR}
  23. ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS})
  24. ELSE(WIN32)
  25. INSTALL_PROGRAMS(${CMake_INSTALL_LIB_DIR}
  26. ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS})
  27. ENDIF(WIN32)
  28. ENDIF(CMake_INSTALL_SYSTEM_RUNTIME_LIBS)
  29. IF(WIN32)
  30. FIND_PROGRAM(NSIS_MAKENSIS NAMES makensis
  31. PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\NSIS]
  32. DOC "Where is makensis.exe located"
  33. )
  34. MARK_AS_ADVANCED(NSIS_MAKENSIS)
  35. FIND_PROGRAM(WINZIP_WZZIP NAMES wzzip
  36. PATHS "C:/Program Files/WinZip"
  37. DOC "Where is makensis.exe located"
  38. )
  39. MARK_AS_ADVANCED(WINZIP_WZZIP)
  40. STRING(REGEX REPLACE "/" "\\\\" CMake_INSTALL_TOP "${CMAKE_INSTALL_PREFIX}")
  41. SET(NSIS_EXTRA_COMMANDS ";Include system runtime libraries.\n SetOutPath \"$INSTDIR\\bin\"\n")
  42. FOREACH(lib ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS})
  43. STRING(REGEX REPLACE "/" "\\\\" LIB "${lib}")
  44. SET(NSIS_EXTRA_COMMANDS "${NSIS_EXTRA_COMMANDS} File \"${LIB}\"\n")
  45. ENDFOREACH(lib)
  46. CONFIGURE_FILE(
  47. ${PROJECT_SOURCE_DIR}/Utilities/Release/${PROJECT_NAME}.nsi.in
  48. ${PROJECT_BINARY_DIR}/Utilities/Release/${PROJECT_NAME}.nsi
  49. IMMEDIATE @ONLY)
  50. CONFIGURE_FILE(
  51. ${PROJECT_SOURCE_DIR}/Utilities/Release/cmake_release.sh.in
  52. ${PROJECT_BINARY_DIR}/Utilities/Release/cmake_release.sh
  53. IMMEDIATE @ONLY)
  54. CONFIGURE_FILE(
  55. ${PROJECT_SOURCE_DIR}/Utilities/Release/MakeRelease.cmake.in
  56. ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake
  57. IMMEDIATE @ONLY)
  58. ENDIF(WIN32)
  59. IF (NSIS_MAKENSIS AND WINZIP_WZZIP)
  60. # build the NSI
  61. ADD_CUSTOM_TARGET( release
  62. ${CMAKE_COMMAND} -DBUILD_NSIW=1 -DTAG_TREE=1 -DBUILD_WINZIP=1
  63. -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake
  64. )
  65. ADD_CUSTOM_TARGET( release_nsiw
  66. ${CMAKE_COMMAND} -DBUILD_NSIW=1
  67. -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake
  68. )
  69. ADD_CUSTOM_TARGET( release_tag
  70. ${CMAKE_COMMAND} -DTAG_TREE=1
  71. -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake
  72. )
  73. ADD_CUSTOM_TARGET( release_winzip
  74. ${CMAKE_COMMAND} -DBUILD_WINZIP=1
  75. -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake
  76. )
  77. ENDIF (NSIS_MAKENSIS AND WINZIP_WZZIP)