updated build system
This commit is contained in:
		| @@ -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() | ||||||
|   | |||||||
| @@ -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} | ||||||
|   | |||||||
| @@ -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>") | ||||||
|   | |||||||
| @@ -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} | ||||||
|   | |||||||
| @@ -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 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user