From 396cabe2d74f9a7f565c2a65594c6cfcf7505856 Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Thu, 8 Aug 2024 12:18:33 +0200 Subject: [PATCH] build: ensure PRJ_VERSION_FULL is always set --- CMakeLists.txt | 101 ++++++++++++++++++++++++------------------------- 1 file changed, 50 insertions(+), 51 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 682fe4ce..e8f1737b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -196,6 +196,10 @@ endif() include(${CMAKE_SOURCE_DIR}/cmake/version.cmake) include(${CMAKE_SOURCE_DIR}/cmake/thrift_library.cmake) +if(NOT PRJ_VERSION_FULL) + message(FATAL_ERROR "PRJ_VERSION_FULL is not set") +endif() + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules") if(STATIC_BUILD_DO_NOT_USE) @@ -1513,21 +1517,19 @@ if(STATIC_BUILD_DO_NOT_USE OR APPLE) endif() endif() -if(PRJ_VERSION_FULL) - set(DWARFS_ARTIFACT_ID "${PRJ_VERSION_FULL}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}") - if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set(DWARFS_ARTIFACT_ID "${DWARFS_ARTIFACT_ID}-gcc") - elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - set(DWARFS_ARTIFACT_ID "${DWARFS_ARTIFACT_ID}-clang") - endif() - if(DWARFS_OPTIMIZE) - set(DWARFS_ARTIFACT_ID "${DWARFS_ARTIFACT_ID}-O${DWARFS_OPTIMIZE}") - endif() - if(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") - set(DWARFS_ARTIFACT_ID "${DWARFS_ARTIFACT_ID}-reldbg") - elseif(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(DWARFS_ARTIFACT_ID "${DWARFS_ARTIFACT_ID}-debug") - endif() +set(DWARFS_ARTIFACT_ID "${PRJ_VERSION_FULL}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}") +if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + set(DWARFS_ARTIFACT_ID "${DWARFS_ARTIFACT_ID}-gcc") +elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + set(DWARFS_ARTIFACT_ID "${DWARFS_ARTIFACT_ID}-clang") +endif() +if(DWARFS_OPTIMIZE) + set(DWARFS_ARTIFACT_ID "${DWARFS_ARTIFACT_ID}-O${DWARFS_OPTIMIZE}") +endif() +if(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") + set(DWARFS_ARTIFACT_ID "${DWARFS_ARTIFACT_ID}-reldbg") +elseif(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(DWARFS_ARTIFACT_ID "${DWARFS_ARTIFACT_ID}-debug") endif() if(STATIC_BUILD_DO_NOT_USE OR WIN32) @@ -1601,40 +1603,37 @@ if(STATIC_BUILD_DO_NOT_USE OR WIN32) endif() endif() -if(NOT "${PRJ_VERSION_FULL}" STREQUAL "") - if(DWARFS_GIT_BUILD) - configure_file("${PROJECT_SOURCE_DIR}/cmake/dwarfs_install.cmake.in" dwarfs_install.cmake @ONLY) - set(CPACK_INSTALL_SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/dwarfs_install.cmake") - endif() - - if(WIN32) - # set(CPACK_GENERATOR "NSIS;ZIP;7Z") - set(CPACK_GENERATOR "7Z") - else() - # use TZST and later re-pack as TXZ - set(CPACK_GENERATOR "TZST") - endif() - set(CPACK_SOURCE_GENERATOR "${CPACK_GENERATOR}") - set(CPACK_PACKAGE_VERSION_MAJOR "${PRJ_VERSION_MAJOR}") - set(CPACK_PACKAGE_VERSION_MINOR "${PRJ_VERSION_MINOR}") - set(CPACK_PACKAGE_VERSION_PATCH "${PRJ_VERSION_PATCH}") - set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${PRJ_VERSION_FULL}") - set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${DWARFS_ARTIFACT_ID}") - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "dwarfs - A high compression read-only file system") - set(CPACK_PACKAGE_VENDOR "Marcus Holland-Moritz ") - set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") - list(APPEND CPACK_SOURCE_IGNORE_FILES - "\\.git/" - "${CMAKE_SOURCE_DIR}/build.*" - "${CMAKE_SOURCE_DIR}/@" - "/\\." - ".*~$" - "${CMAKE_SOURCE_DIR}/doc/.*\\.png$" - "${CMAKE_SOURCE_DIR}/doc/.*\\.gif$" - ) - set(CPACK_VERBATIM_VARIABLES YES) - set(CPACK_STRIP_FILES YES) - - include(CPack) +if(DWARFS_GIT_BUILD) + configure_file("${PROJECT_SOURCE_DIR}/cmake/dwarfs_install.cmake.in" dwarfs_install.cmake @ONLY) + set(CPACK_INSTALL_SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/dwarfs_install.cmake") endif() + +if(WIN32) + # set(CPACK_GENERATOR "NSIS;ZIP;7Z") + set(CPACK_GENERATOR "7Z") +else() + # use TZST and later re-pack as TXZ + set(CPACK_GENERATOR "TZST") +endif() +set(CPACK_SOURCE_GENERATOR "${CPACK_GENERATOR}") +set(CPACK_PACKAGE_VERSION_MAJOR "${PRJ_VERSION_MAJOR}") +set(CPACK_PACKAGE_VERSION_MINOR "${PRJ_VERSION_MINOR}") +set(CPACK_PACKAGE_VERSION_PATCH "${PRJ_VERSION_PATCH}") +set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${PRJ_VERSION_FULL}") +set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${DWARFS_ARTIFACT_ID}") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "dwarfs - A high compression read-only file system") +set(CPACK_PACKAGE_VENDOR "Marcus Holland-Moritz ") +set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") +set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") +list(APPEND CPACK_SOURCE_IGNORE_FILES + "\\.git/" + "${CMAKE_SOURCE_DIR}/build.*" + "${CMAKE_SOURCE_DIR}/@" + "/\\." + ".*~$" + "${CMAKE_SOURCE_DIR}/doc/.*\\.png$" + "${CMAKE_SOURCE_DIR}/doc/.*\\.gif$" +) +set(CPACK_VERBATIM_VARIABLES YES) + +include(CPack)