-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathPackaging.cmake
109 lines (93 loc) · 4.36 KB
/
Packaging.cmake
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
set(CPACK_IFW_ROOT $ENV{HOME}/Qt/QtIFW-3.0.6/ CACHE PATH "Qt Installer Framework installation base path")
find_program(BINARYCREATOR_EXECUTABLE binarycreator HINTS "${_qt_bin_dir}" ${CPACK_IFW_ROOT}/bin)
set(CPACK_PACKAGE_VENDOR "Brain Products")
set(CPACK_PACKAGE_NAME "${PROJECT_NAME}")
set(CPACK_PACKAGE_CONTACT "Example_vendor <[email protected]>")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_DESCRIPTION}")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt")
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME}")
set(CPACK_PACKAGE_DIRECTORY "${CMAKE_BINARY_DIR}")
# set human names to exetuables
set(CPACK_PACKAGE_EXECUTABLES "${PROJECT_NAME}" "LiveAmp LSL Connector")
set(CPACK_CREATE_DESKTOP_LINKS "${PROJECT_NAME}")
set(CPACK_STRIP_FILES TRUE)
#------------------------------------------------------------------------------
# include CPack, so we get target for packages
set(CPACK_OUTPUT_CONFIG_FILE "${CMAKE_BINARY_DIR}/BundleConfig.cmake")
add_custom_target(bundle
COMMAND ${CMAKE_CPACK_COMMAND} "--config" "${CMAKE_BINARY_DIR}/BundleConfig.cmake"
COMMENT "Running CPACK. Please wait..."
DEPENDS ./bin)
set(CPACK_GENERATOR)
# Qt IFW packaging framework
if(BINARYCREATOR_EXECUTABLE)
list(APPEND CPACK_GENERATOR IFW)
message(STATUS " + Qt Installer Framework YES ")
else()
message(STATUS " + Qt Installer Framework NO ")
endif()
#--------------------------------------------------------------------------
# Windows specific
# needed for wix handling of custom install dir
set(INSTALL_DIR ${CMAKE_PACKAGE_INSTALL_DIRECTORY})
list(APPEND CPACK_GENERATOR ZIP)
message(STATUS "Package generation - Windows")
message(STATUS " + ZIP YES ")
set(PACKAGE_ICON "${CMAKE_SOURCE_DIR}/Resources/BV_LSL.ico")
set(INSTALLER_HEADER "${CMAKE_SOURCE_DIR}/Resources/BV_LSL.ico")
set(PREFERRED_INSTALL_DIR "C:\\\\Vision\\\\LSL-Apps")
# NSIS windows installer
find_program(NSIS_PATH nsis PATH_SUFFIXES nsis)
if(NSIS_PATH)
list(APPEND CPACK_GENERATOR NSIS)
message(STATUS " + NSIS YES ")
set(CPACK_NSIS_DISPLAY_NAME ${CPACK_PACKAGE_NAME})
# Icon of the installer
# Icon of the installer
file(TO_CMAKE_PATH "${PACKAGE_ICON}" CPACK_NSIS_MUI_ICON)
file(TO_CMAKE_PATH "${PACKAGE_ICON}" CPACK_NSIS_MUI_UNIICON)
file(TO_CMAKE_PATH "${INSTALLER_HEADER}" CPACK_NSIS_MUI_HEADERIMAGE_BITMAP)
file(TO_CMAKE_PATH "${INSTALLER_HEADER}" CPACK_NSIS_MUI_WELCOMEFINISH_BITMAP)
message(STATUS dir: " ${PREFERRED_INSTALL_DIR}${INSTALL_DIR}\\LiveAmp\ LSL\ Connector.exe")
set(CPACK_NSIS_INSTALLED_ICON_NAME "\\\\bin\\\\LiveAmp\ LSL\ Connector.exe")
set(CPACK_NSIS_CONTACT "${CPACK_PACKAGE_CONTACT}")
set(CPACK_NSIS_INSTALL_ROOT "${PREFERRED_INSTALL_DIR}" )
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
set(CPACK_NSIS_MODIFY_PATH ON)
set(CPACK_CREATE_DESKTOP_LINKS "${PROJECT_NAME}.exe")
set(CPACK_NSIS_BRANDING_TEXT "Copyright Brain Products 2022")
else()
message(STATUS " + NSIS NO ")
endif()
# WIX windows installer
# find_program(WIX_PATH wix PATH_SUFFIXES wix)
# if(WIX_PATH)
#list(APPEND CPACK_GENERATOR WIX)
#message(STATUS " + WIX YES ")
#file(TO_CMAKE_PATH "${PACKAGE_ICON}" CPACK_WIX_PRODUCT_ICON)
#set(CMAKE_PACKAGE_INSTALL_DIRECTORY #"${PREFERRED_INSTALL_DIR}${CMAKE_PACKAGE_INSTALL_DIRECTORY}")
#set(CPACK_WIX_SKIP_PROGRAM_FOLDER TRUE)
# else()
# message(STATUS " + WIX NO ")
# endif()
# reset the package install dir for nuget
set(CMAKE_PACKAGE_INSTALL_DIRECTORY "${INSTALL_DIR}")
# NuGet package
# find_program(NUGET_EXECUTABLE nuget)
set(NUGET_EXECUTABLE OFF)
if(NUGET_EXECUTABLE)
list(APPEND CPACK_GENERATOR NuGET)
message(STATUS " + NuGET YES ")
set(CPACK_NUGET_PACKAGE_NAME "${PROJECT_NAME}")
set(CPACK_NUGET_PACKAGE_VERSION "1.0.0")
set(CPACK_NUGET_PACKAGE_DESCRIPTION "Example")
set(CPACK_NUGET_PACKAGE_AUTHORS "Example")
else()
message(STATUS " + NuGET NO ")
endif()
windeployqt(${PROJECT_NAME})
include(CPack)