CPackInfos.cmake
3.16 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
# This file configures CPack. We setup a version number that contains
# the current git revision if git is found. A zip file is created on
# all platforms. Additionally an NSIS Installer exe is created on windows
# and a .sh installer file for linux.
find_package(Git QUIET)
if (GIT_EXECUTABLE AND EXISTS "../.git")
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
RESULT_VARIABLE CMD_RESULT
OUTPUT_VARIABLE VCS_REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif()
if(NOT DEFINED CMD_RESULT)
set(VCS_BRANCH "master")
set(VCS_REVISION "na")
else()
execute_process(
COMMAND ${GIT_EXECUTABLE} status
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
RESULT_VARIABLE CMD_RESULT
OUTPUT_VARIABLE DESCRIBE_STATUS
OUTPUT_STRIP_TRAILING_WHITESPACE
)
string(REPLACE "\n" " " DESCRIBE_STATUS ${DESCRIBE_STATUS})
string(REPLACE "\r" " " DESCRIBE_STATUS ${DESCRIBE_STATUS})
string(REPLACE "\rn" " " DESCRIBE_STATUS ${DESCRIBE_STATUS})
string(REPLACE " " ";" DESCRIBE_STATUS ${DESCRIBE_STATUS})
list(GET DESCRIBE_STATUS 2 VCS_BRANCH)
message(STATUS "Version: ${VCS_BRANCH}/${VCS_REVISION}")
execute_process(
COMMAND ${GIT_EXECUTABLE} config --get remote.origin.url
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
RESULT_VARIABLE CMD_RESULT
OUTPUT_VARIABLE VCS_URL
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif()
string(TIMESTAMP DATE_VERSION "%d.%m.%Y")
string(TIMESTAMP CURRENT_TIME "%d.%m.%Y %H:%M")
if (UNIX)
set(CPACK_GENERATOR ZIP STGZ)
if (NOT APPLE)
set(CPACK_GENERATOR ${CPACK_GENERATOR} DEB)
endif()
elseif(WIN32)
set(CPACK_GENERATOR ZIP NSIS)
endif()
set(CPACK_PACKAGE_NAME "${PROJECT_NAME}")
set(CPACK_PACKAGE_VERSION "${DATE_VERSION}-${VCS_BRANCH}-${VCS_REVISION}")
set(CPACK_PACKAGE_CONTACT "contact@openhantek.org")
set(CPACK_PACKAGE_VENDOR "OpenHantek Community")
set(CPACK_PACKAGE_DESCRIPTION "Digitial Oscilloscope for Hantek USB DSO hardware.")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenHantek is a free software for Hantek (Voltcraft/Darkwire/Protek/Acetech) USB DSOs based on HantekDSO. Build on ${CURRENT_TIME} from ${VCS_URL}. Branch ${VCS_BRANCH} has been used at commit ${VCS_REVISION}")
set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/readme.md")
if (EXISTS "${CMAKE_SOURCE_DIR}/COPYING")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
endif()
set(CPACK_DEBIAN_PACKAGE_SECTION "net")
IF ((MSVC AND CMAKE_GENERATOR MATCHES "Win64+") OR (CMAKE_SIZEOF_VOID_P EQUAL 8))
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
else()
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i586")
endif()
set(CPACK_STRIP_FILES 1)
include(CMakeDetermineSystem)
set(CPACK_NSIS_EXECUTABLES_DIRECTORY ".")
set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0)
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CMAKE_SYSTEM_NAME}")
set(CPACK_PACKAGE_INSTALL_DIRECTORY ".")
SET(CPACK_OUTPUT_FILE_PREFIX packages)
include(CPack)
set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION ".")
include(InstallRequiredSystemLibraries)
cpack_add_install_type(Full DISPLAY_NAME "All")
set(VERSION ${CPACK_PACKAGE_VERSION})