Release.cmake 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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 AND NOT CYGWIN)
  7. STRING(REGEX REPLACE "\\\\" "/" SYSTEMROOT "$ENV{SYSTEMROOT}")
  8. FOREACH(lib
  9. "${SYSTEMROOT}/system32/mfc71.dll"
  10. "${SYSTEMROOT}/system32/msvcp71.dll"
  11. "${SYSTEMROOT}/system32/msvcr71.dll"
  12. )
  13. IF(EXISTS ${lib})
  14. SET(CMake_INSTALL_SYSTEM_RUNTIME_LIBS
  15. ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib})
  16. ENDIF(EXISTS ${lib})
  17. ENDFOREACH(lib)
  18. ENDIF(WIN32 AND NOT CYGWIN)
  19. # Include system runtime libraries in the installation if any are
  20. # specified by CMake_INSTALL_SYSTEM_RUNTIME_LIBS.
  21. IF(CMake_INSTALL_SYSTEM_RUNTIME_LIBS)
  22. IF(WIN32)
  23. INSTALL_PROGRAMS(/bin ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS})
  24. ELSE(WIN32)
  25. INSTALL_PROGRAMS(/lib ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS})
  26. ENDIF(WIN32)
  27. ENDIF(CMake_INSTALL_SYSTEM_RUNTIME_LIBS)
  28. IF(WIN32)
  29. FIND_PROGRAM(NSIS_MAKENSIS NAMES makensis
  30. PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\NSIS]
  31. DOC "Where is makensis.exe located"
  32. )
  33. MARK_AS_ADVANCED(NSIS_MAKENSIS)
  34. FIND_PROGRAM(WINZIP_WZZIP NAMES wzzip
  35. PATHS "C:/Program Files/WinZip"
  36. DOC "Where is makensis.exe located"
  37. )
  38. MARK_AS_ADVANCED(WINZIP_WZZIP)
  39. STRING(REGEX REPLACE "/" "\\\\" CMake_INSTALL_TOP "${CMAKE_INSTALL_PREFIX}")
  40. SET(NSIS_EXTRA_COMMANDS ";Include system runtime libraries.\n SetOutPath \"$INSTDIR\\bin\"\n")
  41. FOREACH(lib ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS})
  42. STRING(REGEX REPLACE "/" "\\\\" LIB "${lib}")
  43. SET(NSIS_EXTRA_COMMANDS "${NSIS_EXTRA_COMMANDS} File \"${LIB}\"\n")
  44. ENDFOREACH(lib)
  45. CONFIGURE_FILE(
  46. ${PROJECT_SOURCE_DIR}/Utilities/Release/${PROJECT_NAME}.nsi.in
  47. ${PROJECT_BINARY_DIR}/Utilities/Release/${PROJECT_NAME}.nsi
  48. IMMEDIATE @ONLY)
  49. CONFIGURE_FILE(
  50. ${PROJECT_SOURCE_DIR}/Utilities/Release/cmake_release.sh.in
  51. ${PROJECT_BINARY_DIR}/Utilities/Release/cmake_release.sh
  52. IMMEDIATE @ONLY)
  53. ENDIF(WIN32)
  54. CONFIGURE_FILE(
  55. ${PROJECT_SOURCE_DIR}/Utilities/Release/MakeRelease.cmake.in
  56. ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake
  57. IMMEDIATE @ONLY)
  58. IF (NSIS_MAKENSIS AND WINZIP_WZZIP)
  59. # build the NSI
  60. ADD_CUSTOM_TARGET( release
  61. ${CMAKE_COMMAND} -DBUILD_NSIW=1 -DCOMMIT_UNIX_SCRIPT=1 -DTAG_TREE=1 -DBUILD_WINZIP=1
  62. -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake
  63. )
  64. ADD_CUSTOM_TARGET( release_nsiw
  65. ${CMAKE_COMMAND} -DBUILD_NSIW=1
  66. -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake
  67. )
  68. ADD_CUSTOM_TARGET( release_winzip
  69. ${CMAKE_COMMAND} -DBUILD_WINZIP=1
  70. -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake
  71. )
  72. ENDIF (NSIS_MAKENSIS AND WINZIP_WZZIP)
  73. ADD_CUSTOM_TARGET( release_commit_unix
  74. ${CMAKE_COMMAND} -DCOMMIT_UNIX_SCRIPT=1
  75. -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake
  76. )
  77. ADD_CUSTOM_TARGET( release_tag
  78. ${CMAKE_COMMAND} -DTAG_TREE=1
  79. -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake
  80. )
  81. ADD_CUSTOM_TARGET( release_tar
  82. ${CMAKE_COMMAND} -DBUILD_TAR=1
  83. -P ${PROJECT_BINARY_DIR}/Utilities/Release/MakeRelease.cmake
  84. )