Skip to content

Commit 72c72a0

Browse files
author
Andreas Dorrer
committed
add cpack file
1 parent 8cb460b commit 72c72a0

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed

CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,8 @@ if(OATPP_BUILD_TESTS)
109109
enable_testing()
110110
add_subdirectory(test)
111111
endif()
112+
113+
include(cpack.cmake)
114+
115+
# This must always be last!
116+
include( CPack )

cpack.cmake

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
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

Comments
 (0)