-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDHCOM_HAL_Packaging.cmake
88 lines (73 loc) · 3.59 KB
/
DHCOM_HAL_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
dhcom_hal_cmake_hook(INIT_CPACK)
if(NOT EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
message(STATUS "CPack is not found. SKIP")
return()
endif()
set(CPACK_set_DESTDIR "on")
if(NOT DHCOM_HAL_CUSTOM_PACKAGE_INFO)
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "DHCOM Hardware Abstraction Library")
set(CPACK_PACKAGE_DESCRIPTION
"The DHCOM Hardware Abstraction Library provides access to commen hardware interfaces. The aim is to
provide a interface that is useable on multiple DHCOM boards.")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "DH electronics GmbH <embedded@dh-electronics.com>" CACHE STRING "Maintainer of the Debian Package")
set(CPACK_PACKAGE_VERSION "${DHCOM_HAL_VCSVERSION}")
endif(NOT DHCOM_HAL_CUSTOM_PACKAGE_INFO)
#arch
if(X86)
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i386")
elseif(X86_64)
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
elseif(ARM)
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "armhf")
elseif(AARCH64)
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "arm64")
else()
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
endif()
if("${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}" STREQUAL "armv7l") # both armhf and armel report armv7l in gitlab-ci docker build
execute_process( COMMAND gcc -dumpmachine COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE )
message("Architecture: ${ARCHITECTURE}" )
if( ${ARCHITECTURE} STREQUAL "arm-linux-gnueabihf" )
set( CPACK_DEBIAN_PACKAGE_ARCHITECTURE "armhf" )
else( ${ARCHITECTURE} STREQUAL "arm-linux-gnueabi")
set( CPACK_DEBIAN_PACKAGE_ARCHITECTURE "armel" )
endif()
endif()
message("Package cpu architecture: " ${CPACK_DEBIAN_PACKAGE_ARCHITECTURE})
if(CPACK_GENERATOR STREQUAL "DEB")
set(DHCOM_HAL_PACKAGE_ARCH_SUFFIX ${CPACK_DEBIAN_PACKAGE_ARCHITECTURE})
else()
set(DHCOM_HAL_PACKAGE_ARCH_SUFFIX ${CMAKE_SYSTEM_PROCESSOR})
endif()
#deb options
set(CPACK_DEB_COMPONENT_INSTALL TRUE)
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
set(CPACK_DEBIAN_PACKAGE_SECTION "libs")
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://www.dh-electronics.com")
#display names
set(CPACK_COMPONENT_DEV_DISPLAY_NAME "Development files")
set(CPACK_COMPONENT_LIB_DISPLAY_NAME "Library and license")
#depencencies
set(CPACK_DEBIAN_LIB_PACKAGE_SHLIBDEPS TRUE)
set(CPACK_COMPONENT_LIB_REQUIRED TRUE)
set(CPACK_COMPONENT_DEV_DEPENDS lib)
set(CPACK_COMPONENT_LIB_CONFLICTS "${DHCOM_HAL_PACKAGE_NAME}")
set(CPACK_COMPONENT_LIB_PROVIDES "${DHCOM_HAL_PACKAGE_NAME}")
set(CPACK_COMPONENT_LIB_REPLACES "${DHCOM_HAL_PACKAGE_NAME}")
set(CPACK_COMPONENT_DEV_CONFLICTS "${DHCOM_HAL_PACKAGE_NAME}-dev")
set(CPACK_COMPONENT_DEV_PROVIDES "${DHCOM_HAL_PACKAGE_NAME}-dev")
set(CPACK_COMPONENT_DEV_REPLACES "${DHCOM_HAL_PACKAGE_NAME}-dev")
set(CPACK_COMPONENT_LIB_DESCRIPTION "DHCOM Hardware Abstraction Library")
set(CPACK_DEBIAN_COMPONENT_LIB_NAME "${DHCOM_HAL_PACKAGE_NAME}")
set(CPACK_DEBIAN_LIB_PACKAGE_NAME "${CPACK_DEBIAN_COMPONENT_LIB_NAME}")
set(CPACK_DEBIAN_LIB_FILE_NAME "${CPACK_DEBIAN_COMPONENT_LIB_NAME}_${DHCOM_HAL_VCSVERSION}_${DHCOM_HAL_PACKAGE_ARCH_SUFFIX}.deb")
set(CPACK_COMPONENT_DEV_DESCRIPTION "Development files for DHCOM Hardware Abstraction Library")
set(CPACK_DEBIAN_COMPONENT_DEV_NAME "${DHCOM_HAL_PACKAGE_NAME}-dev")
set(CPACK_DEBIAN_DEV_PACKAGE_SECTION "libdevel")
set(CPACK_DEBIAN_DEV_PACKAGE_NAME "${CPACK_DEBIAN_COMPONENT_DEV_NAME}")
set(CPACK_DEBIAN_DEV_FILE_NAME "${DHCOM_HAL_PACKAGE_NAME}-dev_${DHCOM_HAL_VCSVERSION}_${DHCOM_HAL_PACKAGE_ARCH_SUFFIX}.deb")
set(CPACK_DEBIAN_DEV_PACKAGE_DEPENDS "${CPACK_DEBIAN_LIB_PACKAGE_NAME} (= ${CPACK_PACKAGE_VERSION})")
set(CPACK_COMPONENTS_ALL lib dev)
dhcom_hal_cmake_hook(PRE_CPACK)
include(CPack)
dhcom_hal_cmake_hook(POST_CPACK)