From 786d8634cf96684d7d14081d7aa53e19175965e5 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Tue, 16 Jul 2024 14:17:00 -0500 Subject: [PATCH] updated build system --- CMakeLists.txt | 12 +----------- scripts/env.sh | 19 +++++++++++++------ scripts/make_package.sh | 9 --------- 3 files changed, 14 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 87cb5580..435c2256 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,15 +3,6 @@ cmake_minimum_required(VERSION 3.24) cmake_policy(SET CMP0135 NEW) cmake_policy(SET CMP0144 NEW) -unset(PROJECT_GIT_REV CACHE) -execute_process( - COMMAND git rev-parse --short HEAD - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - OUTPUT_VARIABLE PROJECT_GIT_REV - ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE -) - project(${PROJECT_NAME} VERSION ${PROJECT_MAJOR_VERSION}.${PROJECT_MINOR_VERSION}.${PROJECT_REVISION_VERSION} ) @@ -51,8 +42,6 @@ if(PROJECT_BUILD) ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/version.cpp @ONLY ) - - file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/build/git_rev.sh "export PROJECT_GIT_REV=${PROJECT_GIT_REV}") else() message(STATUS "-=[CMake Settings]=-") message(STATUS " C standard: ${CMAKE_C_STANDARD}") @@ -111,6 +100,7 @@ endif() -DPROJECT_EXTERNAL_BUILD_ROOT=${PROJECT_EXTERNAL_BUILD_ROOT} -DPROJECT_FUSE=${PROJECT_FUSE} -DPROJECT_FUSE_INCLUDE_DIRS=${PROJECT_FUSE_INCLUDE_DIRS} + -DPROJECT_GIT_REV=${PROJECT_GIT_REV} -DPROJECT_IS_ALPINE=${PROJECT_IS_ALPINE} -DPROJECT_IS_ARM64=${PROJECT_IS_ARM64} -DPROJECT_IS_MINGW=${PROJECT_IS_MINGW} diff --git a/scripts/env.sh b/scripts/env.sh index 5f661934..044eee0a 100755 --- a/scripts/env.sh +++ b/scripts/env.sh @@ -24,6 +24,10 @@ if [[ -z "${NUM_JOBS}" ]]; then fi fi +pushd "${SOURCE_DIR}" + +PROJECT_GIT_REV=$(git rev-parse --short HEAD) + . "${CURRENT_DIR}/options.sh" for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do @@ -207,21 +211,22 @@ PROJECT_CMAKE_OPTS="-DPROJECT_BUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS} ${P PROJECT_CMAKE_OPTS="-DPROJECT_CMAKE_BUILD_TYPE=${PROJECT_CMAKE_BUILD_TYPE} ${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}" PROJECT_CMAKE_OPTS="-DPROJECT_IS_ALPINE=${PROJECT_IS_ALPINE} ${PROJECT_CMAKE_OPTS}" PROJECT_CMAKE_OPTS="-DPROJECT_IS_ARM64=${PROJECT_IS_ARM64} ${PROJECT_CMAKE_OPTS}" PROJECT_CMAKE_OPTS="-DPROJECT_IS_MINGW=${PROJECT_IS_MINGW} ${PROJECT_CMAKE_OPTS}" PROJECT_CMAKE_OPTS="-DPROJECT_IS_MINGW_UNIX=${PROJECT_IS_MINGW_UNIX} ${PROJECT_CMAKE_OPTS}" PROJECT_CMAKE_OPTS="-DPROJECT_LINK_TYPE=${PROJECT_LINK_TYPE} ${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_NAME=${PROJECT_NAME} ${PROJECT_CMAKE_OPTS}" +PROJECT_CMAKE_OPTS="-DPROJECT_RELEASE_ITER=${PROJECT_RELEASE_ITER} ${PROJECT_CMAKE_OPTS}" +PROJECT_CMAKE_OPTS="-DPROJECT_RELEASE_NUM=${PROJECT_RELEASE_NUM} ${PROJECT_CMAKE_OPTS}" PROJECT_CMAKE_OPTS="-DPROJECT_REQUIRE_ALPINE=${PROJECT_REQUIRE_ALPINE} ${PROJECT_CMAKE_OPTS}" +PROJECT_CMAKE_OPTS="-DPROJECT_REVISION_VERSION=${PROJECT_REVISION_VERSION} ${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_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 @@ -259,6 +264,7 @@ export PROJECT_CMAKE_BUILD_TYPE export PROJECT_CMAKE_BUILD_TYPE_LOWER export PROJECT_CMAKE_OPTS export PROJECT_DIST_DIR +export PROJECT_GIT_REV export PROJECT_IS_ALPINE export PROJECT_IS_ARM64 export PROJECT_IS_MINGW @@ -318,7 +324,7 @@ echo " Require Alpine: ${PROJECT_REQUIRE_ALPINE}" echo " Static link: ${PROJECT_STATIC_LINK}" echo " Third-party dir: ${PROJECT_3RD_PARTY_DIR}" echo " Unit testing enabled: ${PROJECT_ENABLE_TESTING}" -echo " Version: ${PROJECT_VERSION}" +echo " Version: ${PROJECT_VERSION}-${PROJECT_GIT_REV}" echo "-=[Libraries]=-" for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do ENABLE_NAME=PROJECT_ENABLE_${PROJECT_LIBRARY} @@ -327,3 +333,4 @@ for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do echo " ${ENABLE_NAME}: Enable[${!ENABLE_NAME}] Keep[${!KEEP_NAME}]" fi done +popd diff --git a/scripts/make_package.sh b/scripts/make_package.sh index 4242a3ff..8e76e951 100755 --- a/scripts/make_package.sh +++ b/scripts/make_package.sh @@ -8,21 +8,12 @@ CURRENT_DIR=$(realpath ${CURRENT_DIR}) . "${CURRENT_DIR}/env.sh" "$2" "$3" "$4" "$5" "$6" -if [ -f "${CURRENT_DIR}/../build/git_rev.sh" ]; then - source ${CURRENT_DIR}/../build/git_rev.sh -fi - function exit_and_clean() { echo $1 rm -rf ${TEMP_DIR} exit $2 } -if [ "${PROJECT_GIT_REV}" == "" ]; then - echo "Project git revision not set" - exit 1 -fi - if [ ! -d "${PROJECT_DIST_DIR}" ]; then echo "Dist directory not found: ${PROJECT_DIST_DIR}" exit 1