From d356d04bf5fdaee4ec3209d00dd6e534f93aa5ac Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Wed, 17 Jul 2024 07:54:51 -0500 Subject: [PATCH] updated build system --- CMakeLists.txt | 22 ++++++++++++++++++++++ config.sh | 4 ++++ project.cmake | 18 ------------------ repertory/version.rc.in | 22 +++++++++++----------- scripts/env.sh | 9 +++++++++ 5 files changed, 46 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 435c2256..9c47c175 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,11 @@ include(cmake/libraries.cmake) if(PROJECT_BUILD) file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.cpp "") + if (PROJECT_IS_MINGW) + set(PROJECT_WINDOWS_VERSION_RC ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.rc) + file(WRITE ${PROJECT_WINDOWS_VERSION_RC} "") + endif() + file(GLOB_RECURSE ADDITIONAL_SOURCES ${PROJECT_3RD_PARTY_DIR}/src/*.c ${PROJECT_3RD_PARTY_DIR}/src/*.cpp @@ -37,6 +42,20 @@ if(PROJECT_BUILD) include(project.cmake) + if (PROJECT_IS_MINGW) + if ("${PROJECT_RELEASE_ITER}" STREQUAL "release") + set(PROJECT_PRERELEASE 0) + else() + set(PROJECT_PRERELEASE VS_FF_PRERELEASE) + endif() + + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.rc.in + ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.rc + @ONLY + ) + endif() + configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.cpp.in ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.cpp @@ -63,6 +82,9 @@ endif() -DPROJECT_BUILD_DIR=${PROJECT_BUILD_DIR} -DPROJECT_BUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS} -DPROJECT_CMAKE_BUILD_TYPE=${PROJECT_CMAKE_BUILD_TYPE} + -DPROJECT_COMPANY_NAME=${PROJECT_COMPANY_NAME} + -DPROJECT_COPYRIGHT=${PROJECT_COPYRIGHT} + -DPROJECT_DESCRIPTION=${PROJECT_DESCRIPTION} -DPROJECT_DIST_DIR=${PROJECT_DIST_DIR} -DPROJECT_ENABLE_BOOST=${PROJECT_ENABLE_BOOST} -DPROJECT_ENABLE_CLI11=${PROJECT_ENABLE_CLI11} diff --git a/config.sh b/config.sh index 4f3e9963..e27cb3be 100755 --- a/config.sh +++ b/config.sh @@ -2,6 +2,10 @@ PROJECT_NAME="repertory" +PROJECT_COPYRIGHT="Copyright <2018-2024> " +PROJECT_COMPANY_NAME=https://git.fifthgrid.com/blockstorage +PROJECT_DESCRIPTION="Mount utility for Sia and S3" + PROJECT_MAJOR_VERSION=2 PROJECT_MINOR_VERSION=0 PROJECT_REVISION_VERSION=2 diff --git a/project.cmake b/project.cmake index 07455241..c0adc36c 100644 --- a/project.cmake +++ b/project.cmake @@ -1,26 +1,8 @@ -set(REPERTORY_VER_FILEVERSION ${PROJECT_MAJOR_VERSION},${PROJECT_MINOR_VERSION},${PROJECT_REVISION_VERSION},${PROJECT_RELEASE_NUM}) -set(REPERTORY_VER_FILEVERSION_STR ${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_REVISION_VERSION}.${PROJECT_RELEASE_NUM}-${PROJECT_RELEASE_ITER}) -set(REPERTORY_VER_PRODUCTVERSION ${PROJECT_MAJOR_VERSION},${PROJECT_MINOR_VERSION},${PROJECT_REVISION_VERSION},${PROJECT_RELEASE_NUM}) -set(REPERTORY_VER_PRODUCTVERSION_STR ${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_REVISION_VERSION}.${PROJECT_RELEASE_NUM}-${PROJECT_RELEASE_ITER}) -set(REPERTORY_VER_PRERELEASE VS_FF_PRERELEASE) -set(REPERTORY_VER_COMPANYNAME_STR "https://git.fifthgrid.com/blockstorage") -set(REPERTORY_VER_LEGALCOPYRIGHT_STR "Copyright <2018-2024> ") -set(REPERTORY_VER_FILEDESCRIPTION_STR "Mount utility for Sia and S3") - option(REPERTORY_ENABLE_S3 "Enable S3 support" ON) if (REPERTORY_ENABLE_S3) add_definitions(-DREPERTORY_ENABLE_S3) endif() -if (PROJECT_IS_MINGW) - configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.rc.in - ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.rc - @ONLY - ) - set(PROJECT_WINDOWS_VERSION_RC ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.rc) -endif() - set(CMAKE_CXX_FLAGS "-include common.hpp ${CMAKE_CXX_FLAGS}") add_project_library(lib${PROJECT_NAME} "" "" "${PROJECT_ADDITIONAL_SOURCES}") diff --git a/repertory/version.rc.in b/repertory/version.rc.in index 1f1677e2..7b84744d 100644 --- a/repertory/version.rc.in +++ b/repertory/version.rc.in @@ -1,18 +1,18 @@ #include -#define VER_FILEVERSION @REPERTORY_VER_FILEVERSION@ -#define VER_FILEVERSION_STR "@REPERTORY_VER_FILEVERSION_STR@\0" +#define VER_FILEVERSION @PROJECT_MAJOR_VERSION@,@PROJECT_MINOR_VERSION@,@PROJECT_REVISION_VERSION@,@PROJECT_RELEASE_NUM@ +#define VER_FILEVERSION_STR "@PROJECT_VERSION@-@PROJECT_RELEASE_ITER@-@PROJECT_GIT_REV@\0" -#define VER_PRODUCTVERSION @REPERTORY_VER_PRODUCTVERSION@ -#define VER_PRODUCTVERSION_STR "@REPERTORY_VER_PRODUCTVERSION_STR@\0" +#define VER_PRODUCTVERSION @PROJECT_MAJOR_VERSION@,@PROJECT_MINOR_VERSION@,@PROJECT_REVISION_VERSION@,@PROJECT_RELEASE_NUM@ +#define VER_PRODUCTVERSION_STR "@PROJECT_VERSION@-@PROJECT_RELEASE_ITER@-@PROJECT_GIT_REV@\0" -#define VER_COMPANYNAME_STR "@REPERTORY_VER_COMPANYNAME_STR@\0" -#define VER_INTERNALNAME_STR "Repertory @PROJECT_VERSION@-@PROJECT_RELEAS_ITER@\0" -#define VER_LEGALCOPYRIGHT_STR "@REPERTORY_VER_LEGALCOPYRIGHT_STR@\0" -#define VER_ORIGINALFILENAME_STR "repertory.exe\0" +#define VER_COMPANYNAME_STR "@PROJECT_COMPANY_NAME@\0" +#define VER_INTERNALNAME_STR "@PROJECT_NAME@ @PROJECT_VERSION@-@PROJECT_RELEASE_ITER@-@PROJECT_GIT_REV@\0" +#define VER_LEGALCOPYRIGHT_STR "@PROJECT_COPYRIGHT@\0" +#define VER_ORIGINALFILENAME_STR "@PROJECT_NAME@.exe\0" #define VER_LEGALTRADEMARKS1_STR "\0" #define VER_LEGALTRADEMARKS2_STR "\0" -#define VER_FILEDESCRIPTION_STR "@REPERTORY_VER_FILEDESCRIPTION_STR@\0" -#define VER_PRODUCTNAME_STR "Repertory @PROJECT_VERSION@-@PROJECT_RELEAS_ITER@\0" +#define VER_FILEDESCRIPTION_STR "@PROJECT_DESCRIPTION@\0" +#define VER_PRODUCTNAME_STR "@PROJECT_NAME@ @PROJECT_VERSION@-@PROJECT_RELEASE_ITER@-@PROJECT_GIT_REV@\0" #ifdef DEBUG #define VER_DEBUG VS_FF_DEBUG @@ -20,7 +20,7 @@ #define VER_DEBUG 0 #endif -#define VER_PRERELEASE @REPERTORY_VER_PRERELEASE@ +#define VER_PRERELEASE @PROJECT_PRERELEASE@ VS_VERSION_INFO VERSIONINFO diff --git a/scripts/env.sh b/scripts/env.sh index 044eee0a..6b682040 100755 --- a/scripts/env.sh +++ b/scripts/env.sh @@ -209,6 +209,9 @@ PROJECT_CMAKE_OPTS="-DPROJECT_BUILD_ARCH=${PROJECT_BUILD_ARCH} ${PROJECT_CMAKE_O PROJECT_CMAKE_OPTS="-DPROJECT_BUILD_DIR=${PROJECT_BUILD_DIR} ${PROJECT_CMAKE_OPTS}" PROJECT_CMAKE_OPTS="-DPROJECT_BUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS} ${PROJECT_CMAKE_OPTS}" PROJECT_CMAKE_OPTS="-DPROJECT_CMAKE_BUILD_TYPE=${PROJECT_CMAKE_BUILD_TYPE} ${PROJECT_CMAKE_OPTS}" +PROJECT_CMAKE_OPTS="-DPROJECT_COMPANY_NAME=${PROJECT_COMPANY_NAME} ${PROJECT_CMAKE_OPTS}" +PROJECT_CMAKE_OPTS="-DPROJECT_COPYRIGHT=${PROJECT_COPYRIGHT} ${PROJECT_CMAKE_OPTS}" +PROJECT_CMAKE_OPTS="-DPROJECT_DESCRIPTION=${PROJECT_DESCRIPTION} ${PROJECT_CMAKE_OPTS}" PROJECT_CMAKE_OPTS="-DPROJECT_DIST_DIR=${PROJECT_DIST_DIR} ${PROJECT_CMAKE_OPTS}" PROJECT_CMAKE_OPTS="-DPROJECT_EXTERNAL_BUILD_ROOT=${PROJECT_EXTERNAL_BUILD_ROOT} ${PROJECT_CMAKE_OPTS}" PROJECT_CMAKE_OPTS="-DPROJECT_GIT_REV=${PROJECT_GIT_REV} ${PROJECT_CMAKE_OPTS}" @@ -263,6 +266,9 @@ export PROJECT_BUILD_SHARED_LIBS export PROJECT_CMAKE_BUILD_TYPE export PROJECT_CMAKE_BUILD_TYPE_LOWER export PROJECT_CMAKE_OPTS +export PROJECT_COMPANY_NAME +export PROJECT_COPYRIGHT +export PROJECT_DESCRIPTION export PROJECT_DIST_DIR export PROJECT_GIT_REV export PROJECT_IS_ALPINE @@ -305,6 +311,9 @@ echo " Build shared libraries: ${PROJECT_BUILD_SHARED_LIBS}" echo " CMake options: -G\"Unix Makefiles\" ${PROJECT_CMAKE_OPTS}" echo " CMake toolchain file: ${PROJECT_TOOLCHAIN_FILE_CMAKE}" echo " Cmake Build type: ${PROJECT_CMAKE_BUILD_TYPE}" +echo " Company name: ${PROJECT_COMPANY_NAME}" +echo " Copyright: ${PROJECT_COPYRIGHT}" +echo " Description: ${PROJECT_DESCRIPTION}" echo " Dist dir: ${PROJECT_DIST_DIR}" echo " External build root: ${PROJECT_EXTERNAL_BUILD_ROOT}" echo " Is ARM64: ${PROJECT_IS_ARM64}"