updated build system

This commit is contained in:
Scott E. Graves 2024-07-16 13:50:25 -05:00
parent b2aba8c447
commit 1d70309a16
5 changed files with 34 additions and 24 deletions

View File

@ -3,7 +3,9 @@ cmake_minimum_required(VERSION 3.24)
cmake_policy(SET CMP0135 NEW) cmake_policy(SET CMP0135 NEW)
cmake_policy(SET CMP0144 NEW) cmake_policy(SET CMP0144 NEW)
project(${PROJECT_NAME}) project(${PROJECT_NAME}
VERSION ${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_REVISION_VERSION}
)
include(CheckIncludeFileCXX) include(CheckIncludeFileCXX)
include(CheckIncludeFiles) include(CheckIncludeFiles)
@ -22,7 +24,6 @@ include(cmake/libraries.cmake)
if(PROJECT_BUILD) if(PROJECT_BUILD)
unset(PROJECT_GIT_REV CACHE) unset(PROJECT_GIT_REV CACHE)
unset(PROJECT_VERSION CACHE)
execute_process( execute_process(
COMMAND git rev-parse --short HEAD COMMAND git rev-parse --short HEAD
@ -52,7 +53,6 @@ if(PROJECT_BUILD)
@ONLY @ONLY
) )
file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/build/version.sh "export PROJECT_VERSION=${PROJECT_VERSION}")
file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/build/git_rev.sh "export PROJECT_GIT_REV=${PROJECT_GIT_REV}") file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/build/git_rev.sh "export PROJECT_GIT_REV=${PROJECT_GIT_REV}")
else() else()
message(STATUS "-=[CMake Settings]=-") message(STATUS "-=[CMake Settings]=-")
@ -117,10 +117,16 @@ endif()
-DPROJECT_IS_MINGW=${PROJECT_IS_MINGW} -DPROJECT_IS_MINGW=${PROJECT_IS_MINGW}
-DPROJECT_IS_MINGW_UNIX=${PROJECT_IS_MINGW_UNIX} -DPROJECT_IS_MINGW_UNIX=${PROJECT_IS_MINGW_UNIX}
-DPROJECT_LINK_TYPE=${PROJECT_LINK_TYPE} -DPROJECT_LINK_TYPE=${PROJECT_LINK_TYPE}
-DPROJECT_MAJOR_VERSION=${PROJECT_MAJOR_VERSION}
-DPROJECT_MINOR_VERSION=${PROJECT_MINOR_VERSION}
-DPROJECT_NAME=${PROJECT_NAME} -DPROJECT_NAME=${PROJECT_NAME}
-DPROJECT_RELEASE_ITER=${PROJECT_RELEASE_ITER}
-DPROJECT_RELEASE_NUM=${PROJECT_RELEASE_NUM}
-DPROJECT_REQUIRE_ALPINE=${PROJECT_REQUIRE_ALPINE} -DPROJECT_REQUIRE_ALPINE=${PROJECT_REQUIRE_ALPINE}
-DPROJECT_REVISION_VERSION=${PROJECT_REVISION_VERSION}
-DPROJECT_STATIC_LINK=${PROJECT_STATIC_LINK} -DPROJECT_STATIC_LINK=${PROJECT_STATIC_LINK}
-DPROJECT_TOOLCHAIN_FILE_CMAKE=${PROJECT_TOOLCHAIN_FILE_CMAKE} -DPROJECT_TOOLCHAIN_FILE_CMAKE=${PROJECT_TOOLCHAIN_FILE_CMAKE}
-DPROJECT_TOOLCHAIN_FILE_MESON=${PROJECT_TOOLCHAIN_FILE_MESON} -DPROJECT_TOOLCHAIN_FILE_MESON=${PROJECT_TOOLCHAIN_FILE_MESON}
-DPROJECT_VERSION=${PROJECT_VERSION}
) )
endif() endif()

View File

@ -1,6 +1,13 @@
#!/bin/bash #!/bin/bash
PROJECT_NAME="repertory" PROJECT_NAME="repertory"
PROJECT_MAJOR_VERSION=2
PROJECT_MINOR_VERSION=0
PROJECT_REVISION_VERSION=2
PROJECT_RELEASE_NUM=0
PROJECT_RELEASE_ITER=rc
PROJECT_APP_LIST=(${PROJECT_NAME}) PROJECT_APP_LIST=(${PROJECT_NAME})
PROJECT_PRIVATE_KEY=${DEVELOPER_PRIVATE_KEY} PROJECT_PRIVATE_KEY=${DEVELOPER_PRIVATE_KEY}

View File

@ -1,15 +1,7 @@
set(REPERTORY_MAJOR 2) set(REPERTORY_VER_FILEVERSION ${PROJECT_MAJOR_VERSION},${PROJECT_MINOR_VERSION},${PROJECT_REVISION_VERSION},${PROJECT_RELEASE_NUM})
set(REPERTORY_MINOR 0) set(REPERTORY_VER_FILEVERSION_STR ${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_REVISION_VERSION}.${PROJECT_RELEASE_NUM})
set(REPERTORY_REV 2) set(REPERTORY_VER_PRODUCTVERSION ${PROJECT_MAJOR_VERSION},${PROJECT_MINOR_VERSION},${PROJECT_REVISION_VERSION},${PROJECT_RELEASE_NUM})
set(REPERTORY_RELEASE_NUM 0) set(REPERTORY_VER_PRODUCTVERSION_STR ${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_REVISION_VERSION}.${PROJECT_RELEASE_NUM})
set(REPERTORY_RELEASE_ITER rc)
set(PROJECT_VERSION ${REPERTORY_MAJOR}.${REPERTORY_MINOR}.${REPERTORY_REV}-${REPERTORY_RELEASE_ITER})
set(REPERTORY_VER_FILEVERSION ${REPERTORY_MAJOR},${REPERTORY_MINOR},${REPERTORY_REV},${REPERTORY_RELEASE_NUM})
set(REPERTORY_VER_FILEVERSION_STR ${REPERTORY_MAJOR}.${REPERTORY_MINOR}.${REPERTORY_REV}.${REPERTORY_RELEASE_NUM})
set(REPERTORY_VER_PRODUCTVERSION ${REPERTORY_MAJOR},${REPERTORY_MINOR},${REPERTORY_REV},${REPERTORY_RELEASE_NUM})
set(REPERTORY_VER_PRODUCTVERSION_STR ${REPERTORY_MAJOR}.${REPERTORY_MINOR}.${REPERTORY_REV}.${REPERTORY_RELEASE_NUM})
set(REPERTORY_VER_PRERELEASE VS_FF_PRERELEASE) set(REPERTORY_VER_PRERELEASE VS_FF_PRERELEASE)
set(REPERTORY_VER_COMPANYNAME_STR "https://git.fifthgrid.com/blockstorage") 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_LEGALCOPYRIGHT_STR "Copyright <2018-2024> <MIT License> <https://git.fifthgrid.com/blockstorage/repertory>")

View File

@ -58,6 +58,7 @@ if [ "${PROJECT_IS_MINGW_UNIX}" == "" ]; then
fi fi
. "${SOURCE_DIR}/config.sh" . "${SOURCE_DIR}/config.sh"
PROJECT_VERSION=${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_REVISION_VERSION}-${PROJECT_RELEASE_ITER}
if [ "${PROJECT_ENABLE_SFML}" == "ON" ]; then if [ "${PROJECT_ENABLE_SFML}" == "ON" ]; then
PROJECT_ENABLE_FLAC=ON PROJECT_ENABLE_FLAC=ON
@ -216,6 +217,12 @@ PROJECT_CMAKE_OPTS="-DPROJECT_REQUIRE_ALPINE=${PROJECT_REQUIRE_ALPINE} ${PROJECT
PROJECT_CMAKE_OPTS="-DPROJECT_STATIC_LINK=${PROJECT_STATIC_LINK} ${PROJECT_CMAKE_OPTS}" PROJECT_CMAKE_OPTS="-DPROJECT_STATIC_LINK=${PROJECT_STATIC_LINK} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_TOOLCHAIN_FILE_CMAKE=${PROJECT_TOOLCHAIN_FILE_CMAKE} ${PROJECT_CMAKE_OPTS}" PROJECT_CMAKE_OPTS="-DPROJECT_TOOLCHAIN_FILE_CMAKE=${PROJECT_TOOLCHAIN_FILE_CMAKE} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_TOOLCHAIN_FILE_MESON=${PROJECT_TOOLCHAIN_FILE_MESON} ${PROJECT_CMAKE_OPTS}" PROJECT_CMAKE_OPTS="-DPROJECT_TOOLCHAIN_FILE_MESON=${PROJECT_TOOLCHAIN_FILE_MESON} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_MAJOR_VERSION=${PROJECT_MAJOR_VERSION} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_MINOR_VERSION=${PROJECT_MINOR_VERSION} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_REVISION_VERSION=${PROJECT_REVISION_VERSION} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_RELEASE_NUM=${PROJECT_RELEASE_NUM} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_RELEASE_ITER=${PROJECT_RELEASE_ITER} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_VERSION=${PROJECT_VERSION} ${PROJECT_CMAKE_OPTS}"
for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do
ENABLE_NAME=PROJECT_ENABLE_${PROJECT_LIBRARY} ENABLE_NAME=PROJECT_ENABLE_${PROJECT_LIBRARY}
@ -257,17 +264,23 @@ export PROJECT_IS_ARM64
export PROJECT_IS_MINGW export PROJECT_IS_MINGW
export PROJECT_IS_MINGW_UNIX export PROJECT_IS_MINGW_UNIX
export PROJECT_LINK_TYPE export PROJECT_LINK_TYPE
export PROJECT_MAJOR_VERSION
export PROJECT_MINGW64_COPY_DEPENDENCIES export PROJECT_MINGW64_COPY_DEPENDENCIES
export PROJECT_MINGW64_DOCKER_BUILD_ARGS export PROJECT_MINGW64_DOCKER_BUILD_ARGS
export PROJECT_MINOR_VERSION
export PROJECT_MSYS2_PACKAGE_LIST export PROJECT_MSYS2_PACKAGE_LIST
export PROJECT_NAME export PROJECT_NAME
export PROJECT_OS export PROJECT_OS
export PROJECT_PRIVATE_KEY export PROJECT_PRIVATE_KEY
export PROJECT_PUBLIC_KEY export PROJECT_PUBLIC_KEY
export PROJECT_RELEASE_ITER
export PROJECT_RELEASE_NUM
export PROJECT_REQUIRE_ALPINE export PROJECT_REQUIRE_ALPINE
export PROJECT_REVISION_VERSION
export PROJECT_STATIC_LINK export PROJECT_STATIC_LINK
export PROJECT_TOOLCHAIN_FILE_CMAKE export PROJECT_TOOLCHAIN_FILE_CMAKE
export PROJECT_TOOLCHAIN_FILE_MESON export PROJECT_TOOLCHAIN_FILE_MESON
export PROJECT_VERSION
export SOURCE_DIR export SOURCE_DIR
for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do
@ -305,6 +318,7 @@ echo " Require Alpine: ${PROJECT_REQUIRE_ALPINE}"
echo " Static link: ${PROJECT_STATIC_LINK}" echo " Static link: ${PROJECT_STATIC_LINK}"
echo " Third-party dir: ${PROJECT_3RD_PARTY_DIR}" echo " Third-party dir: ${PROJECT_3RD_PARTY_DIR}"
echo " Unit testing enabled: ${PROJECT_ENABLE_TESTING}" echo " Unit testing enabled: ${PROJECT_ENABLE_TESTING}"
echo " Version: ${PROJECT_VERSION}"
echo "-=[Libraries]=-" echo "-=[Libraries]=-"
for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do
ENABLE_NAME=PROJECT_ENABLE_${PROJECT_LIBRARY} ENABLE_NAME=PROJECT_ENABLE_${PROJECT_LIBRARY}

View File

@ -8,10 +8,6 @@ CURRENT_DIR=$(realpath ${CURRENT_DIR})
. "${CURRENT_DIR}/env.sh" "$2" "$3" "$4" "$5" "$6" . "${CURRENT_DIR}/env.sh" "$2" "$3" "$4" "$5" "$6"
if [ -f "${CURRENT_DIR}/../build/version.sh" ]; then
source ${CURRENT_DIR}/../build/version.sh
fi
if [ -f "${CURRENT_DIR}/../build/git_rev.sh" ]; then if [ -f "${CURRENT_DIR}/../build/git_rev.sh" ]; then
source ${CURRENT_DIR}/../build/git_rev.sh source ${CURRENT_DIR}/../build/git_rev.sh
fi fi
@ -22,11 +18,6 @@ function exit_and_clean() {
exit $2 exit $2
} }
if [ "${PROJECT_VERSION}" == "" ]; then
echo "Project version not set"
exit 1
fi
if [ "${PROJECT_GIT_REV}" == "" ]; then if [ "${PROJECT_GIT_REV}" == "" ]; then
echo "Project git revision not set" echo "Project git revision not set"
exit 1 exit 1