CPack.cmake 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. # Pick a configuration file
  2. SET(cpack_input_file "${CMAKE_ROOT}/Templates/CPackConfig.cmake.in")
  3. IF(EXISTS "${CMAKE_SOURCE_DIR}/CPackConfig.cmake.in")
  4. SET(cpack_input_file "${CMAKE_SOURCE_DIR}/CPackConfig.cmake.in")
  5. ENDIF(EXISTS "${CMAKE_SOURCE_DIR}/CPackConfig.cmake.in")
  6. # Macro for setting values if a user did not overwrite them
  7. MACRO(cpack_set_if_not_set name value)
  8. IF(NOT DEFINED "${name}")
  9. SET(${name} "${value}")
  10. ENDIF(NOT DEFINED "${name}")
  11. ENDMACRO(cpack_set_if_not_set)
  12. # Set the package name
  13. cpack_set_if_not_set(CPACK_PACKAGE_NAME "${PROJECT_NAME}")
  14. cpack_set_if_not_set(CPACK_PACKAGE_VERSION_MAJOR "0")
  15. cpack_set_if_not_set(CPACK_PACKAGE_VERSION_MINOR "1")
  16. cpack_set_if_not_set(CPACK_PACKAGE_VERSION_PATCH "1")
  17. cpack_set_if_not_set(CPACK_PACKAGE_VERSION
  18. "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
  19. cpack_set_if_not_set(CPACK_PACKAGE_VENDOR "Humanity")
  20. cpack_set_if_not_set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
  21. "${PROJECT_NAME} built using CMake")
  22. cpack_set_if_not_set(CPACK_PACKAGE_DESCRIPTION_FILE
  23. "${CMAKE_ROOT}/Templates/CPack.GenericDescription.txt")
  24. # <project>-<major>.<minor>.<patch>-<release>-<platform>.<pkgtype>
  25. cpack_set_if_not_set(CPACK_PACKAGE_FILE_NAME
  26. "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}-${CMAKE_SYSTEM_NAME}")
  27. cpack_set_if_not_set(CPACK_PACKAGE_INSTALL_DIRECTORY
  28. "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}")
  29. cpack_set_if_not_set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY
  30. "${CPACK_PACKAGE_NAME} ${CPACK_PACKAGE_VERSION}")
  31. IF(NOT EXISTS "${CPACK_PACKAGE_DESCRIPTION_FILE}")
  32. MESSAGE(SEND_ERROR "CPack package description file: \"${CPACK_PACKAGE_DESCRIPTION_FILE}\" could not be found.")
  33. ENDIF(NOT EXISTS "${CPACK_PACKAGE_DESCRIPTION_FILE}")
  34. # Pick a generator
  35. IF(NOT CPACK_GENERATOR)
  36. IF(UNIX)
  37. IF(APPLE)
  38. SET(CPACK_GENERATOR "PackageMaker")
  39. ELSE(APPLE)
  40. SET(CPACK_GENERATOR "STGZ")
  41. ENDIF(APPLE)
  42. ELSE(UNIX)
  43. SET(CPACK_GENERATOR "NSIS")
  44. ENDIF(UNIX)
  45. ENDIF(NOT CPACK_GENERATOR)
  46. # Set some other variables
  47. SET(CPACK_BINARY_DIR "${CMAKE_BINARY_DIR}")
  48. # Hack for Visual Studio support
  49. # Search for system runtime libraries based on the platform. This is
  50. # not complete because it is used only for the release process by the
  51. # developers.
  52. IF(NOT CPACK_DISABLE_EXTRA_MSVC_LIBRARIES)
  53. IF(MSVC)
  54. STRING(REGEX REPLACE "\\\\" "/" SYSTEMROOT "$ENV{SYSTEMROOT}")
  55. FOREACH(lib
  56. "${SYSTEMROOT}/system32/mfc71.dll"
  57. "${SYSTEMROOT}/system32/msvcp71.dll"
  58. "${SYSTEMROOT}/system32/msvcr71.dll"
  59. )
  60. IF(EXISTS ${lib})
  61. SET(CMake_INSTALL_SYSTEM_RUNTIME_LIBS
  62. ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib})
  63. ENDIF(EXISTS ${lib})
  64. ENDFOREACH(lib)
  65. ENDIF(MSVC)
  66. ENDIF(NOT CPACK_DISABLE_EXTRA_MSVC_LIBRARIES)
  67. # Include system runtime libraries in the installation if any are
  68. # specified by CMake_INSTALL_SYSTEM_RUNTIME_LIBS.
  69. IF(CMake_INSTALL_SYSTEM_RUNTIME_LIBS)
  70. IF(WIN32)
  71. INSTALL_PROGRAMS(/bin ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS})
  72. ELSE(WIN32)
  73. INSTALL_PROGRAMS(/lib ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS})
  74. ENDIF(WIN32)
  75. ENDIF(CMake_INSTALL_SYSTEM_RUNTIME_LIBS)
  76. CONFIGURE_FILE("${cpack_input_file}" "${CMAKE_BINARY_DIR}/CPackConfig.cmake" @ONLY IMMEDIATE)