From e47ecc1828973320a3f5a949666d74ab3e9c34b0 Mon Sep 17 00:00:00 2001 From: Craig Tyler Date: Wed, 11 Dec 2019 09:40:10 -0800 Subject: [PATCH] Updates supporting CPack RPM generation Enable command line overrides of default settings * CPACK_GENERATOR * CPACK_PACKAGE_RELOCATABLE Enables command line setting of generated RPM version attributes * CPACK_RPM_PACKAGE_RELEASE * CPACK_RPM_PACKAGE_ARCHITECTURE Adds dependency on pkgconfig RPM when not generating relocatable RPM --- cmake/spdlogCPack.cmake | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/cmake/spdlogCPack.cmake b/cmake/spdlogCPack.cmake index 6ee2e51c..471a7ea3 100644 --- a/cmake/spdlogCPack.cmake +++ b/cmake/spdlogCPack.cmake @@ -1,7 +1,4 @@ -set(CPACK_GENERATOR - TGZ - ZIP - ) +set(CPACK_GENERATOR "TGZ;ZIP" CACHE STRING "Semicolon separated list of generators") set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 0) set(CPACK_INSTALL_CMAKE_PROJECTS @@ -22,11 +19,32 @@ set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PR if (PROJECT_VERSION_TWEAK) set(CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}.${PROJECT_VERSION_TWEAK}) endif () -set(CPACK_PACKAGE_RELOCATABLE ON) +set(CPACK_PACKAGE_RELOCATABLE ON CACHE BOOL "Build relocatable package") set(CPACK_RPM_PACKAGE_LICENSE "MIT") -set(CPACK_RPM_PACKAGE_GROUP "System Environment/Libraries") +set(CPACK_RPM_PACKAGE_GROUP "Development/Libraries") set(CPACK_RPM_PACKAGE_URL ${CPACK_PROJECT_URL}) set(CPACK_RPM_PACKAGE_DESCRIPTION "Very fast, header-only/compiled, C++ logging library.") +if (CPACK_PACKAGE_NAME) + set(CPACK_RPM_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") +else() + set(CPACK_RPM_FILE_NAME "${PROJECT_NAME}-${CPACK_PACKAGE_VERSION}") +endif() + +if (CPACK_RPM_PACKAGE_RELEASE) + set(CPACK_RPM_FILE_NAME "${CPACK_RPM_FILE_NAME}-${CPACK_RPM_PACKAGE_RELEASE}") +endif () + +if (CPACK_RPM_PACKAGE_ARCHITECTURE) + set(CPACK_RPM_FILE_NAME "${CPACK_RPM_FILE_NAME}.${CPACK_RPM_PACKAGE_ARCHITECTURE}") +endif () +set(CPACK_RPM_FILE_NAME "${CPACK_RPM_FILE_NAME}.rpm") + +if (NOT CPACK_PACKAGE_RELOCATABLE) + # Depend on pkgconfig rpm to create the system pkgconfig folder + set(CPACK_RPM_PACKAGE_REQUIRES pkgconfig) + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION "${CPACK_PACKAGING_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/pkgconfig") +endif () + include(CPack)