@@ -95,3 +95,60 @@ install(EXPORT ${TARGETS_EXPORT_NAME}
9595
9696# add to CMake registry
9797export (PACKAGE ${PROJECT_NAME} )
98+
99+ #---------------------------------------------------------------------------------------
100+ # Create release packages
101+ #---------------------------------------------------------------------------------------
102+ # package release version
103+ set (PACKAGE_RELEASE_VERSION 1)
104+
105+ # determine distribution and architecture
106+ find_program (LSB_RELEASE lsb_release)
107+
108+ execute_process (COMMAND uname -m OUTPUT_VARIABLE MACHINE_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE)
109+
110+ if (LSB_RELEASE)
111+ execute_process (COMMAND lsb_release -sr OUTPUT_VARIABLE LINUX_DISTRO_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
112+ execute_process (COMMAND lsb_release -si OUTPUT_VARIABLE LINUX_DISTRO OUTPUT_STRIP_TRAILING_WHITESPACE)
113+
114+ string (TOLOWER ${LINUX_DISTRO} LINUX_DISTRO)
115+ endif ()
116+
117+ # default CPack generators
118+ set (CPACK_GENERATOR TGZ STGZ)
119+
120+ # extra CPack generators
121+ if (LINUX_DISTRO STREQUAL "debian" OR LINUX_DISTRO STREQUAL "ubuntu" OR LINUX_DISTRO STREQUAL "linuxmint" )
122+ list (APPEND CPACK_GENERATOR DEB)
123+ elseif (LINUX_DISTRO STREQUAL "fedora" OR LINUX_DISTRO STREQUAL "opensuse" OR LINUX_DISTRO STREQUAL "centos" )
124+ list (APPEND CPACK_GENERATOR RPM)
125+ endif ()
126+
127+ # general CPack config
128+ set (CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR} /packages)
129+ message (STATUS "CPack: packages will be generated under ${CPACK_PACKAGE_DIRECTORY} " )
130+ set (CPACK_PACKAGE_NAME "lib${PROJECT_NAME} " )
131+ set (CPACK_PACKAGE_VERSION ${PROJECT_VERSION} )
132+ set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "LibTomMath" )
133+ set (CPACK_PACKAGE_VENDOR "LibTomMath" )
134+ set (CPACK_PACKAGE_CONTACT "libtom@googlegroups.com" )
135+ set (CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR} /LICENSE" )
136+ set (CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME} -${CPACK_PACKAGE_VERSION} -${PACKAGE_RELEASE_VERSION} _${LINUX_DISTRO} -${LINUX_DISTRO_VERSION} _${MACHINE_ARCH} )
137+ set (CPACK_STRIP_FILES ON )
138+
139+ # deb specific CPack config
140+ set (CPACK_DEBIAN_PACKAGE_RELEASE ${PACKAGE_RELEASE_VERSION} )
141+ set (CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
142+ set (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON )
143+ set (CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://www.libtom.net/LibTomMath" )
144+ set (CPACK_DEBIAN_PACKAGE_SECTION "devel" )
145+
146+ # rpm specific CPack config
147+ set (CPACK_RPM_PACKAGE_URL "https://www.libtom.net/LibTomMath" )
148+ set (CPACK_RPM_PACKAGE_RELEASE ${PACKAGE_RELEASE_VERSION} )
149+ set (CPACK_RPM_PACKAGE_ARCHITECTURE ${MACHINE_ARCH} )
150+ set (CPACK_RPM_PACKAGE_NAME "lib${PROJECT_NAME} -${PROJECT_VERSION} " )
151+ set (CPACK_RPM_FILE_NAME "lib${PROJECT_NAME} _${PROJECT_VERSION} -${CPACK_RPM_PACKAGE_RELEASE} _${LINUX_DISTRO} -${LINUX_DISTRO_VERSION} _${CPACK_RPM_PACKAGE_ARCHITECTURE} .rpm" )
152+ set (CPACK_RPM_PACKAGE_LICENSE "WTFPL" )
153+
154+ include (CPack)
0 commit comments