-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathUnisonPackage.cmake
More file actions
127 lines (112 loc) · 5.89 KB
/
UnisonPackage.cmake
File metadata and controls
127 lines (112 loc) · 5.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
include(../cmake/UnisonVersion.cmake)
set(PROJECT_VENDOR "Unison Inc.")
set(PROJECT_COPYRIGHT_YEAR "2012-2013")
set(PROJECT_DOMAIN_FIRST "unison")
set(PROJECT_DOMAIN_SECOND "com")
set(PROJECT_DOMAIN "${PROJECT_DOMAIN_FIRST}.${PROJECT_DOMAIN_SECOND}")
set(PROJECT_APPLICATION_NAME "Unison3")
set(PROJECT_EXECUTABLE_NAME ${TARGET})
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${UNISON_PACKAGE_VERSION}")
set(CPACK_PACKAGE_VERSION_MAJOR "${UNISON_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${UNISON_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${UNISON_VERSION_PATCH}")
set(CPACK_PACKAGE_VERSION "${UNISON_VERSION}")
set(CPACK_PACKAGE_VENDOR "${PROJECT_VENDOR}")
set(CPACK_PACKAGE_CONTACT "Unison Technologies <support@unison.com>")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Supersimple messaging and collaboration for business.")
add_definitions(-DUNISON_VERSION=\"${UNISON_VERSION}\")
if(UNIX AND NOT APPLE)
string(TOLOWER ${PROJECT_APPLICATION_NAME} PROJECT_APPLICATION_NAME_LOWERCASE)
set(BIN_INSTALL_DIR "bin")
set(DOC_INSTALL_DIR "share/doc/${PROJECT_APPLICATION_NAME_LOWERCASE}/")
set(LIB_INSTALL_DIR "opt/${PROJECT_NAME}")
else()
set(BIN_INSTALL_DIR ".")
set(DOC_INSTALL_DIR ".")
set(LIB_INSTALL_DIR ".")
endif()
set(ICONS_DIR "${CMAKE_SOURCE_DIR}/src/resources/icons")
message(STATUS "${PROJECT_EXECUTABLE_NAME} will be installed to ${CMAKE_INSTALL_PREFIX}")
install(TARGETS ${PROJECT_EXECUTABLE_NAME} DESTINATION ${BIN_INSTALL_DIR})
set(LICENSE_FILE "LICENSE.txt")
set(README_FILE "README.md")
set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/${README_FILE}")
if(WIN32)
set(CPACK_GENERATOR "NSIS")
set(CPACK_PACKAGE_EXECUTABLES "${PROJECT_APPLICATION_NAME}" "${PROJECT_APPLICATION_NAME}")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_APPLICATION_NAME}")
set(CPACK_NSIS_MODIFY_PATH "OFF")
# set this to 1 to provide license file
set(CPACK_RESOURCE_FILE_LICENSE_PROVIDED "1")
if(CPACK_RESOURCE_FILE_LICENSE_PROVIDED STREQUAL "1")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/${LICENSE_FILE}")
endif()
set(CPACK_NSIS_EXECUTABLES_DIRECTORY "${BIN_INSTALL_DIR}")
set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/src/resources/application.ico")
set(CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}/src/resources/application.ico")
#set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/src/resources/nsis.bmp")
set(CPACK_NSIS_URL_INFO_ABOUT "http://${PROJECT_DOMAIN}")
set(CPACK_NSIS_INSTALLED_ICON_NAME "${PROJECT_EXECUTABLE_NAME}${CMAKE_EXECUTABLE_SUFFIX}")
set(CPACK_NSIS_MENU_LINKS
"${CPACK_NSIS_URL_INFO_ABOUT}" "Visit us on the web"
)
set(CPACK_NSIS_MUI_FINISHPAGE_RUN "${CPACK_NSIS_INSTALLED_ICON_NAME}")
elseif(APPLE)
set(MACOSX_BUNDLE_INFO_STRING "${PROJECT_EXECUTABLE_NAME} ${UNISON_VERSION}")
set(MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_EXECUTABLE_NAME} ${UNISON_VERSION}")
set(MACOSX_BUNDLE_LONG_VERSION_STRING "${PROJECT_EXECUTABLE_NAME} ${UNISON_VERSION}")
set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${UNISON_VERSION}")
set(MACOSX_BUNDLE_COPYRIGHT "${PROJECT_COPYRIGHT_YEAR} ${PROJECT_VENDOR}")
set(MACOSX_BUNDLE_ICON_FILE "unison.icns")
set(MACOSX_BUNDLE_GUI_IDENTIFIER "${PROJECT_DOMAIN_SECOND}.${PROJECT_DOMAIN_FIRST}.${PROJECT_NAME}")
set(MACOSX_BUNDLE_BUNDLE_NAME "${PROJECT_APPLICATION_NAME}")
set(MACOSX_BUNDLE_RESOURCES "${EXECUTABLE_OUTPUT_PATH}/${PROJECT_EXECUTABLE_NAME}.app/Contents/Resources")
set(MACOSX_RESOURCE_FILES "${ICONS_DIR}/${MACOSX_BUNDLE_ICON_FILE}")
set_source_files_properties(${MACOSX_RESOURCE_FILES} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${MACOSX_BUNDLE_RESOURCES})
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${ICONS_DIR}/${MACOSX_BUNDLE_ICON_FILE} ${MACOSX_BUNDLE_RESOURCES}/${MACOSX_BUNDLE_ICON_FILE})
# qt_menu.nib is mandatory for mac
if(${QT_USE_FRAMEWORKS})
set(QT_MENU_NIB ${QT_LIBRARY_DIR}/QtGui.framework/Resources/qt_menu.nib)
else()
set(QT_MENU_NIB ${QT_LIBRARY_DIR}/Resources/qt_menu.nib)
endif()
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory ${QT_MENU_NIB} ${MACOSX_BUNDLE_RESOURCES}/qt_menu.nib)
set(CMAKE_INSTALL_PREFIX "/Applications")
set(CPACK_GENERATOR "DragNDrop")
set(CPACK_DMG_FORMAT "UDBZ")
set(CPACK_DMG_VOLUME_NAME "${PROJECT_APPLICATION_NAME}")
set(CPACK_SYSTEM_NAME "OSX")
set(CPACK_PACKAGE_ICON "${ICONS_DIR}/unison.icns")
#set(CPACK_DMG_DS_STORE "${ICONS_DIR}/DMGDSStore")
#set(CPACK_DMG_BACKGROUND_IMAGE "${ICONS_DIR}/DMGBackground.png")
elseif(LINUX)
# FIXME: replace with ${PROJECT_NAME} once we will be ready to release
set(UNISON_LINUX_PACKAGE_NAME unison3)
set(CPACK_GENERATOR "DEB;RPM;TGZ")
set(CPACK_DEBIAN_PACKAGE_NAME ${UNISON_LINUX_PACKAGE_NAME})
set(CPACK_DEBIAN_PACKAGE_SECTION "non-free/net")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libqt4-core, libqt4-network, libqt4-gui, libqt4-xml, libqt4-declarative, libqt4-sql")
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
# --- RPM
set(CPACK_RPM_PACKAGE_NAME ${UNISON_LINUX_PACKAGE_NAME})
set(CPACK_RPM_PACKAGE_GROUP "Productivity/Networking/Instant Messenger")
set(CPACK_RPM_PACKAGE_LICENSE "Commercial")
set(CPACK_RPM_PACKAGE_ARCHITECTURE "x86_64")
set(CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
set(CPACK_RPM_PACKAGE_REQUIRES "libqt4 >= 4.8.0")
elseif(UNIX)
set(CPACK_GENERATOR "TBZ2")
set(CPACK_SYSTEM_NAME "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
endif()
include(CPack)
set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION "${BIN_INSTALL_DIR}")
include(InstallRequiredSystemLibraries)
if(APPLE)
set(EXECUTABLE "${PROJECT_NAME}.app")
elseif(WIN32)
set(EXECUTABLE "${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}")
else()
set(EXECUTABLE "${BIN_INSTALL_DIR}/${PROJECT_NAME}${CMAKE_EXECUTABLE_SUFFIX}")
endif()