1
+ #
2
+ # Packaging
3
+ # https://cmake.org/cmake/help/latest/module/CPack.html
4
+ #
5
+
6
+ set ( CPACK_PACKAGE_NAME ${PROJECT_NAME} )
7
+ set ( CPACK_PACKAGE_VENDOR "oatpp" )
8
+ set ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "oatpp-swagger - swagger ui plugin for oatpp" )
9
+ set ( CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/oatpp/oatpp-swagger" )
10
+ set ( CPACK_PACKAGE_CONTACT "https://github.com/oatpp/oatpp-swagger" )
11
+ set ( CPACK_PACKAGE_VERSION ${OATPP_THIS_MODULE_VERSION} )
12
+ set ( CPACK_PACKAGE_INSTALL_DIRECTORY ${PROJECT_NAME} )
13
+ get_filename_component ( oatpp_root_dir ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY )
14
+ set ( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR} /LICENSE" )
15
+ set ( CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR} /README.md" )
16
+
17
+ set ( CPACK_COMPONENT_Library_DISPLAY_NAME "oatpp-swagger Library" )
18
+ set ( CPACK_COMPONENT_Library_DESCRIPTION "The oatpp-swagger binary library." )
19
+ set ( CPACK_COMPONENT_Library_REQUIRED 1 )
20
+
21
+ if ( ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" )
22
+
23
+ if ( "${CPACK_PACKAGE_ARCHITECTURE} " STREQUAL "" )
24
+ # Note: the architecture should default to the local architecture, but it
25
+ # in fact comes up empty. We call `uname -m` to ask the kernel instead.
26
+ EXECUTE_PROCESS ( COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE CPACK_PACKAGE_ARCHITECTURE )
27
+ endif ()
28
+
29
+ set ( CPACK_INCLUDE_TOPLEVEL_DIRECTORY 1 )
30
+ set ( CPACK_PACKAGE_RELEASE 1 )
31
+
32
+ # RPM - https://cmake.org/cmake/help/latest/cpack_gen/rpm.html
33
+ set ( CPACK_RPM_PACKAGE_RELEASE ${CPACK_PACKAGE_RELEASE} )
34
+ set ( CPACK_RPM_PACKAGE_ARCHITECTURE ${CPACK_PACKAGE_ARCHITECTURE} )
35
+ set ( CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY} )
36
+ set ( CPACK_RPM_PACKAGE_URL ${CPACK_PACKAGE_HOMEPAGE_URL} )
37
+ set ( CPACK_RPM_PACKAGE_LICENSE "APACHE-2" )
38
+ set ( CPACK_RPM_COMPONENT_INSTALL 1 )
39
+ set ( CPACK_RPM_MAIN_COMPONENT "Library" )
40
+ set ( CPACK_RPM_COMPRESSION_TYPE "xz" )
41
+ set ( CPACK_RPM_PACKAGE_AUTOPROV 1 )
42
+ set ( CPACK_RPM_PACKAGE_NAME "${CPACK_PACKAGE_NAME} " )
43
+ set ( CPACK_RPM_FILE_NAME "RPM-DEFAULT" )
44
+
45
+ set ( CPACK_RPM_Library_PACKAGE_REQUIRES "cmake >= ${CMAKE_MINIMUM_REQUIRED_VERSION} ,oatpp >= ${CPACK_PACKAGE_VERSION} " )
46
+ set ( CPACK_RPM_Library_PACKAGE_ARCHITECTURE ${CPACK_PACKAGE_ARCHITECTURE} )
47
+ set ( CPACK_RPM_Library_PACKAGE_NAME ${CPACK_PACKAGE_NAME} )
48
+ set ( CPACK_RPM_Library_FILE_NAME
49
+ "${CPACK_RPM_Library_PACKAGE_NAME} -${CPACK_PACKAGE_VERSION} -${CPACK_RPM_PACKAGE_RELEASE} .${CPACK_RPM_Library_PACKAGE_ARCHITECTURE} .rpm" )
50
+ set ( CPACK_RPM_Library_PACKAGE_SUMMARY ${CPACK_COMPONENT_Library_DESCRIPTION} )
51
+
52
+ # DEB - https://cmake.org/cmake/help/latest/cpack_gen/deb.html
53
+ set ( CPACK_DEBIAN_PACKAGE_NAME "${CPACK_PACKAGE_NAME} -dev" )
54
+ set ( CPACK_DEBIAN_PACKAGE_RELEASE ${CPACK_PACKAGE_RELEASE} )
55
+ set ( CPACK_DEBIAN_PACKAGE_HOMEPAGE ${CPACK_PACKAGE_HOMEPAGE_URL} )
56
+ set ( CPACK_DEB_COMPONENT_INSTALL 1 )
57
+ set ( CPACK_DEBIAN_COMPRESSION_TYPE "xz" )
58
+
59
+ if ( ${CPACK_PACKAGE_ARCHITECTURE} STREQUAL "x86_64" )
60
+ set ( CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64" ) # DEB doesn't always use the kernel's arch name
61
+ else ()
62
+ set ( CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${CPACK_PACKAGE_ARCHITECTURE} )
63
+ endif ()
64
+
65
+ set ( CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT" ) # Use default naming scheme
66
+
67
+ set ( CPACK_DEBIAN_LIBRARY_PACKAGE_DEPENDS "cmake (>= ${CMAKE_MINIMUM_REQUIRED_VERSION} ), oatpp (>= ${CPACK_PACKAGE_VERSION} )" )
68
+ set ( CPACK_DEBIAN_LIBRARY_PACKAGE_NAME ${CPACK_PACKAGE_NAME} )
69
+ set ( CPACK_DEBIAN_LIBRARY_PACKAGE_SHLIBDEPS 1 )
70
+
71
+ elseif ( ${CMAKE_HOST_WIN32} )
72
+ set ( CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON )
73
+ set ( CPACK_NSIS_DISPLAY_NAME ${PROJECT_NAME} )
74
+ set ( CPACK_NSIS_PACKAGE_NAME ${PROJECT_NAME} )
75
+ set ( CPACK_NSIS_URL_INFO_ABOUT ${CPACK_PACKAGE_HOMEPAGE_URL} )
76
+ endif ()
0 commit comments