updated build system

This commit is contained in:
Scott E. Graves 2024-07-17 07:54:51 -05:00
parent c99c4988ff
commit d356d04bf5
5 changed files with 46 additions and 29 deletions

View File

@ -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}

View File

@ -2,6 +2,10 @@
PROJECT_NAME="repertory"
PROJECT_COPYRIGHT="Copyright <2018-2024> <MIT License> <https://git.fifthgrid.com/blockstorage/repertory>"
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

View File

@ -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> <MIT License> <https://git.fifthgrid.com/blockstorage/repertory>")
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}")

View File

@ -1,18 +1,18 @@
#include <windows.h>
#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

View File

@ -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}"