From 15bf2e9eb4ceb40de1bd08291111a1ea1191b61f Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Fri, 11 Dec 2020 22:13:58 +0100 Subject: [PATCH] cpack --- CMakeLists.txt | 1 + CPack.txt | 53 ++++++++++++++++++++++++++++---------------------- CPackDEB.txt | 11 +++++++++++ CPackRPM.txt | 1 + 4 files changed, 43 insertions(+), 23 deletions(-) create mode 100644 CPackDEB.txt create mode 100644 CPackRPM.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index d8217f08..57509844 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,7 @@ project(libmemcached HOMEPAGE_URL "https://github.com/m6w6/libmemcached" DESCRIPTION "libmemcached, a C/C++ memcached client library" ) +set(PROJECT_CONTACT "Michael Wallner ") set(CXX_STANDARD 11) set(CMAKE_POSITION_INDEPENDENT_CODE ON) diff --git a/CPack.txt b/CPack.txt index 2e31163b..c3973292 100644 --- a/CPack.txt +++ b/CPack.txt @@ -1,26 +1,15 @@ -# options - -# DEBs -if(EXISTS /usr/bin/dpkg) - message(STATUS "Enabling Debian packages") - set(CPACK_BINARY_DEB ON) -endif() - -# BSDs -if(CMAKE_SYSTEM_NAME MATCHES BSD AND EXISTS CPackFreeBSD.txt) - message(STATUS "Enabling FreeBSD packages") - set(CPACK_BINARY_FREEBSD ON) - include(CPackFreeBSD.txt) -endif() - -# RPMs -if(EXISTS /usr/bin/dnf OR EXISTS /usr/bin/yum OR EXISTS /usr/bin/rpm-build) - message(STATUS "Enabling RPM packages") - set(CPACK_BINARY_RPM ON) -endif() - -if (EXISTS CPackNSIS.txt) - include(CPackNSIS.txt) +# default options + +macro(cpack_include_if GENERATOR) + message(STATUS "Checking ${GENERATOR} package configuration ...") + if(EXISTS ${CMAKE_SOURCE_DIR}/CPack${GENERATOR}.txt) + message(STATUS " Sourcing ${CMAKE_SOURCE_DIR}/CPack${GENERATOR}.txt") + include(${CMAKE_SOURCE_DIR}/CPack${GENERATOR}.txt) + elseif(EXISTS ${CMAKE_BINARY_DIR}/CPack${GENERATOR}.txt) + message(STATUS " Sourcing ${CMAKE_BINARY_DIR}/CPack${GENERATOR}.txt") + include(${CMAKE_BINARY_DIR}/CPack${GENERATOR}.txt) + endif() +endmacro() # shell installer set(CPACK_BINARY_STGZ ${UNIX}) @@ -31,6 +20,8 @@ set(CPACK_BINARY_TGZ ${UNIX}) set(CPACK_BINARY_TXZ 0) set(CPACK_BINARY_TZ 0) set(CPACK_BINARY_ZIP ${WIN32}) +set(CPACK_BINARY_NSIS ${WIN32}) +set(CPACK_BINARY_NUGET ${WIN32}) # source archive set(CPACK_SOURCE_TBZ2 0) @@ -39,6 +30,21 @@ set(CPACK_SOURCE_TXZ 0) set(CPACK_SOURCE_TZ 0) set(CPACK_SOURCE_ZIP ${WIN32}) +# DEBs +if(EXISTS /usr/bin/dpkg) + cpack_include_if(DEB) +endif() + +# BSDs +if(CMAKE_SYSTEM_NAME MATCHES BSD) + cpack_include_if(BSD) +endif() + +# RPMs +if(EXISTS /usr/bin/dnf OR EXISTS /usr/bin/yum OR EXISTS /usr/bin/rpmbuild) + cpack_include_if(RPM) +endif() + # project internals set(CPACK_PACKAGE_VENDOR ${CMAKE_PROJECT_HOMEPAGE_URL}) set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md") @@ -47,4 +53,5 @@ set(CPACK_PACKAGE_CHECKSUM SHA1) set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE") set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/README.md") +# keep last include(CPack) diff --git a/CPackDEB.txt b/CPackDEB.txt new file mode 100644 index 00000000..85668a1c --- /dev/null +++ b/CPackDEB.txt @@ -0,0 +1,11 @@ +set(CPACK_BINARY_DEB ON) +set(CPACK_PACKAGE_CONTACT "${PROJECT_CONTACT}") +if(HAVE_LIBSASL) + string(APPEND CPACK_DEBIAN_PACKAGE_DEPENDS " libsasl2") +endif() +if(HAVE_TBB) + string(APPEND CPACK_DEBIAN_PACKAGE_DEPENDS " tbb") +endif() +if(HAVE_LIBEVENT) + string(APPEND CPACK_DEBIAN_PACKAGE_DEPENDS " libevent") +endif() diff --git a/CPackRPM.txt b/CPackRPM.txt new file mode 100644 index 00000000..9c092cfd --- /dev/null +++ b/CPackRPM.txt @@ -0,0 +1 @@ +set(CPACK_BINARY_RPM ON) -- 2.30.2