From 03ac54777802e6ac2f5412014fa2e33af6a89e94 Mon Sep 17 00:00:00 2001 From: Stephen G Tuggy Date: Sun, 23 Jan 2022 16:37:22 -0800 Subject: [PATCH 1/6] CMakeLists.txt: Sync version-related stuff with engine --- CMakeLists.txt | 46 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 567fb349..85c3d114 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,7 @@ #==================================== # Copyright (C) 2020-2021 Evert Vorster, Stephen G. Tuggy, # and other vsUTCS contributors. +# Copyright (C) 2022 Stephen G. Tuggy # # This file is part of Vega Strike: Upon the Coldest Sea ("vsUTCS"). # @@ -26,9 +27,10 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.5 FATAL_ERROR) SET(vsUTCS_VERSION_MAJOR "0") SET(vsUTCS_VERSION_MINOR "8") SET(vsUTCS_VERSION_PATCH "0") + # Auto-populate with the git hash of the build -IF (DEFINED ENV{GITHUB_SHA} AND NOT "$ENV{GITHUB_SHA}" STREQUAL "") - SET (vsUTCS_VERSION_TWEAK "$ENV{GITHUB_SHA}") +IF (DEFINED ENV{SHORT_SHA} AND NOT "$ENV{SHORT_SHA}" STREQUAL "") + SET (vsUTCS_VERSION_TWEAK "$ENV{SHORT_SHA}") ELSE () EXECUTE_PROCESS( COMMAND git rev-parse --short HEAD @@ -38,11 +40,39 @@ ELSE () ) ENDIF () +SET(vsUTCS_VERSION_LONG_STR "${vsUTCS_VERSION_MAJOR}.${vsUTCS_VERSION_MINOR}.${vsUTCS_VERSION_PATCH}-${vsUTCS_VERSION_TWEAK}") +SET(vsUTCS_VERSION_SHORT_STR "${vsUTCS_VERSION_MAJOR}.${vsUTCS_VERSION_MINOR}.${vsUTCS_VERSION_PATCH}") +SET(vsUTCS_PKG_VERSION_STR "${vsUTCS_VERSION_MAJOR}.${vsUTCS_VERSION_MINOR}.${vsUTCS_VERSION_PATCH}") + +IF (DEFINED ENV{TAG_NAME} AND NOT "$ENV{TAG_NAME}" STREQUAL "") + STRING(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" TAG_VERSION_MAJOR "$ENV{TAG_NAME}") + STRING(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" TAG_VERSION_MINOR "$ENV{TAG_NAME}") + STRING(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" TAG_VERSION_PATCH "$ENV{TAG_NAME}") + STRING(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+(.*)" "\\1" TAG_VERSION_TWEAK "$ENV{TAG_NAME}") + + SET(TAG_VERSION_SHORT_STR "${TAG_VERSION_MAJOR}.${TAG_VERSION_MINOR}.${TAG_VERSION_PATCH}") + + IF (NOT "${vsUTCS_VERSION_SHORT_STR}" VERSION_EQUAL "${TAG_VERSION_SHORT_STR}") + MESSAGE(FATAL_ERROR "!! Project version spelled out in CMake file does not match project version from TAG_NAME environment variable") + ENDIF () + IF (NOT "${TAG_VERSION_TWEAK}" STREQUAL "") + SET(vsUTCS_VERSION_LONG_STR "${vsUTCS_VERSION_MAJOR}.${vsUTCS_VERSION_MINOR}.${vsUTCS_VERSION_PATCH}${TAG_VERSION_TWEAK}-${vsUTCS_VERSION_TWEAK}") + SET(vsUTCS_PKG_VERSION_STR "${vsUTCS_VERSION_MAJOR}.${vsUTCS_VERSION_MINOR}.${vsUTCS_VERSION_PATCH}${TAG_VERSION_TWEAK}") + ENDIF () +ENDIF () + +# VERSION Policy +IF (POLICY CMP0048) + CMAKE_POLICY (SET CMP0048 NEW) +ENDIF (POLICY CMP0048) + PROJECT(vsUTCS VERSION "${vsUTCS_VERSION_MAJOR}.${vsUTCS_VERSION_MINOR}.${vsUTCS_VERSION_PATCH}" #.${vsUTCS_VERSION_TWEAK} # CMake only allows numeric version components, unfortunately. ) +MESSAGE("== vsUTCS Version: ${vsUTCS_VERSION_LONG_STR}") + # Let cmake find our in-tree modules SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${vsUTCS_SOURCE_DIR}) @@ -169,13 +199,7 @@ SET(CPACK_PACKAGE_VERSION_PATCH "${vsUTCS_VERSION_PATCH}") SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vsUTCS-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}") SET(CPACK_CONTACT "maintainers@vega-strike.org") -# Source package filename -IF (DEFINED ENV{TAG_NAME}) - SET(vsUTCS_PACKAGE_VERSION_STR "$ENV{TAG_NAME}") -ELSE (DEFINED ENV{TAG_NAME}) - SET(vsUTCS_PACKAGE_VERSION_STR "${vsUTCS_VERSION_MAJOR}.${vsUTCS_VERSION_MINOR}.${vsUTCS_VERSION_PATCH}-0.${vsUTCS_VERSION_TWEAK}") -ENDIF (DEFINED ENV{TAG_NAME}) -SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${vsUTCS_PACKAGE_VERSION_STR}-Source") +SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_v${vsUTCS_PACKAGE_VERSION_STR}-Source") SET(CPACK_SOURCE_GENERATOR "TXZ") IF (WIN32 AND NOT UNIX) @@ -211,10 +235,11 @@ ELSEIF (CMAKE_SYSTEM_NAME STREQUAL Linux) # See https://cmake.org/cmake/help/v3.3/module/CPackDeb.html SET(CPACK_DEBIAN_PACKAGE_NAME "vsUTCS") SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "maintainers@vega-strike.org") + SET(CPACK_DEBIAN_PACKAGE_VERSION "${vsUTCS_PKG_VERSION_STR}") SET(CPACK_DEBIAN_COMPRESSION_TYPE "bzip2") SET(CPACK_DEBIAN_PACKAGE_DEPENDS "vega-strike") - SET(CPACK_PACKAGE_FILE_NAME "${CPACK_DEBIAN_PACKAGE_NAME}_${vsUTCS_PACKAGE_VERSION_STR}") + SET(CPACK_PACKAGE_FILE_NAME "${CPACK_DEBIAN_PACKAGE_NAME}_v${vsUTCS_PKG_VERSION_STR}") SET(CPACK_DEBIAN_PACKAGE_SECTION "Amusements/Games") SET(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://www.vega-strike.org") @@ -228,6 +253,7 @@ ELSEIF (CMAKE_SYSTEM_NAME STREQUAL Linux) SET(CPACK_RPM_PACKAGE_LICENSE "GPLv3") # See ../LICENSE SET(CPACK_RPM_PACKAGE_URL "https://www.vega-strike.org") SET(CPACK_RPM_PACKAGE_NAME "vsUTCS") + SET(CPACK_RPM_PACKAGE_VERSION "${vsUTCS_PKG_VERSION_STR}") SET(CPACK_RPM_PACKAGE_REQUIRES "Vega-Strike") # Figure out the filename From a224689552f2c55281c4c7a578853da8d05e0515 Mon Sep 17 00:00:00 2001 From: Stephen G Tuggy Date: Sun, 23 Jan 2022 16:40:14 -0800 Subject: [PATCH 2/6] script/cibuild: Pass SHORT_SHA thru --- script/cibuild | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script/cibuild b/script/cibuild index 7b4dbf73..26aada1f 100755 --- a/script/cibuild +++ b/script/cibuild @@ -5,7 +5,7 @@ # @usage : script/cibuild # @param : none #==================================== -# Copyright (C) 2020-2021 Stephen G Tuggy and other vsUTCS contributors +# Copyright (C) 2020-2022 Stephen G Tuggy and other vsUTCS contributors # # This file is part of Vega Strike: Upon the Coldest Sea ("vsUTCS"). # @@ -31,7 +31,7 @@ then DST_DOCKER_IMG_NAME="building-vsutcs:$(echo $FROM | sed 's/:/_/' | sed 's/\//_/')" DOCKER_CONTAINER_NAME="building-vsutcs_$(echo $FROM | sed 's/:/_/' | sed 's/\//_/')" docker build --build-arg from=$SRC_DOCKER_IMG_NAME -t $DST_DOCKER_IMG_NAME . - docker run --env IS_RELEASE=$IS_RELEASE --env TAG_NAME=$TAG_NAME --env GITHUB_SHA=$GITHUB_SHA --env FLAGS=$FLAGS --name $DOCKER_CONTAINER_NAME $DST_DOCKER_IMG_NAME $FLAGS + docker run --env IS_RELEASE=$IS_RELEASE --env TAG_NAME=$TAG_NAME --env GITHUB_SHA=$GITHUB_SHA --env SHORT_SHA=$SHORT_SHA --env FLAGS=$FLAGS --name $DOCKER_CONTAINER_NAME $DST_DOCKER_IMG_NAME $FLAGS if [ $IS_RELEASE -eq 1 ] then docker cp $DOCKER_CONTAINER_NAME:/usr/src/vsUTCS/packages . From 9e51a157b089199bea4ed57dc72c09a0d52a1415 Mon Sep 17 00:00:00 2001 From: Stephen G Tuggy Date: Sun, 23 Jan 2022 16:46:36 -0800 Subject: [PATCH 3/6] script/build: Use quotes `""` and braces `${}` around directory names --- script/build | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/script/build b/script/build index 375799a8..8d47503e 100755 --- a/script/build +++ b/script/build @@ -11,7 +11,7 @@ # https://github.com/Taose/Vegastrike-taose/wiki/How-to-Build #==================================== -# Copyright (C) 2020 Stephen G. Tuggy and other vsUTCS contributors +# Copyright (C) 2020-2022 Stephen G. Tuggy and other vsUTCS contributors # # This file is part of Vega Strike: Upon the Coldest Sea ("vsUTCS"). # @@ -32,7 +32,7 @@ set -e echo "--------------------------" -echo "--- build | 2020-08-23 ---" +echo "--- build | 2022-01-23 ---" echo "--------------------------" #---------------------------------- @@ -40,20 +40,31 @@ echo "--------------------------" #---------------------------------- ROOT_DIR=$(pwd) -BUILD_DIR=$ROOT_DIR/build -SRC_DIR=$ROOT_DIR +BUILD_DIR="${ROOT_DIR}/build" +BIN_DIR="${ROOT_DIR}/bin" +SRC_DIR="${ROOT_DIR}/engine" COMMAND="" +echo "ROOT_DIR: ${ROOT_DIR}" +echo "BUILD_DIR: ${BUILD_DIR}" + # -p creates if the target doesn't exist, noop otherwise -mkdir -pv $BUILD_DIR && cd $BUILD_DIR +mkdir -pv "${BUILD_DIR}" && cd "${BUILD_DIR}" -cmake $@ $SRC_DIR +cmake $@ "${SRC_DIR}" # for a clean build only # mut we can do it manually #make clean # compile now using all cpus and show compilation commands -make -j $(nproc) VERBOSE=1 +# MAX_THREADS_TO_BUILD_WITH=8 +NUM_THREADS_TO_BUILD_WITH=$(getconf _NPROCESSORS_ONLN) +# if [ ${NUM_THREADS_TO_BUILD_WITH} -gt ${MAX_THREADS_TO_BUILD_WITH} ] +# then +# NUM_THREADS_TO_BUILD_WITH=${MAX_THREADS_TO_BUILD_WITH} +# fi + +VERBOSE=1 cmake --build "${BUILD_DIR}" -j $NUM_THREADS_TO_BUILD_WITH -cd $ROOT_DIR +cd "${ROOT_DIR}" From fee71ac425e0c40a4c253a7280904058362ae38a Mon Sep 17 00:00:00 2001 From: Stephen G Tuggy Date: Sun, 23 Jan 2022 16:55:50 -0800 Subject: [PATCH 4/6] script/build, script/cibuild: More fine-tuning --- script/build | 4 ++-- script/cibuild | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/script/build b/script/build index 8d47503e..1a57c664 100755 --- a/script/build +++ b/script/build @@ -42,7 +42,7 @@ echo "--------------------------" ROOT_DIR=$(pwd) BUILD_DIR="${ROOT_DIR}/build" BIN_DIR="${ROOT_DIR}/bin" -SRC_DIR="${ROOT_DIR}/engine" +SRC_DIR="${ROOT_DIR}" COMMAND="" echo "ROOT_DIR: ${ROOT_DIR}" @@ -65,6 +65,6 @@ NUM_THREADS_TO_BUILD_WITH=$(getconf _NPROCESSORS_ONLN) # NUM_THREADS_TO_BUILD_WITH=${MAX_THREADS_TO_BUILD_WITH} # fi -VERBOSE=1 cmake --build "${BUILD_DIR}" -j $NUM_THREADS_TO_BUILD_WITH +VERBOSE=1 cmake --build "${BUILD_DIR}" -j ${NUM_THREADS_TO_BUILD_WITH} cd "${ROOT_DIR}" diff --git a/script/cibuild b/script/cibuild index 26aada1f..ce695c48 100755 --- a/script/cibuild +++ b/script/cibuild @@ -31,7 +31,7 @@ then DST_DOCKER_IMG_NAME="building-vsutcs:$(echo $FROM | sed 's/:/_/' | sed 's/\//_/')" DOCKER_CONTAINER_NAME="building-vsutcs_$(echo $FROM | sed 's/:/_/' | sed 's/\//_/')" docker build --build-arg from=$SRC_DOCKER_IMG_NAME -t $DST_DOCKER_IMG_NAME . - docker run --env IS_RELEASE=$IS_RELEASE --env TAG_NAME=$TAG_NAME --env GITHUB_SHA=$GITHUB_SHA --env SHORT_SHA=$SHORT_SHA --env FLAGS=$FLAGS --name $DOCKER_CONTAINER_NAME $DST_DOCKER_IMG_NAME $FLAGS + docker run --env IS_RELEASE=$IS_RELEASE --env TAG_NAME=$TAG_NAME --env GITHUB_SHA=$GITHUB_SHA --env SHORT_SHA=$SHORT_SHA --env FLAGS="${FLAGS}" --name $DOCKER_CONTAINER_NAME $DST_DOCKER_IMG_NAME if [ $IS_RELEASE -eq 1 ] then docker cp $DOCKER_CONTAINER_NAME:/usr/src/vsUTCS/packages . From 412033f5472726310a6ce2aeead36729304c6b32 Mon Sep 17 00:00:00 2001 From: Stephen G Tuggy Date: Sun, 23 Jan 2022 17:06:00 -0800 Subject: [PATCH 5/6] CPack: Missed a line --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 85c3d114..47405b2b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -263,7 +263,7 @@ ELSEIF (CMAKE_SYSTEM_NAME STREQUAL Linux) SET(vsUTCS_LINUX_VERSION_STR "${LINUX_VERSION_ID}") ENDIF (LINUX_CODENAME) - SET(CPACK_PACKAGE_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}_${vsUTCS_PACKAGE_VERSION_STR}-${LINUX_ID}-${vsUTCS_LINUX_VERSION_STR}") + SET(CPACK_PACKAGE_FILE_NAME "${CPACK_RPM_PACKAGE_NAME}_v${vsUTCS_PKG_VERSION_STR}-${LINUX_ID}-${vsUTCS_LINUX_VERSION_STR}") SET(CPACK_GENERATOR "RPM") ENDIF () ELSE (WIN32 AND NOT UNIX) From 1303685a7e7aae57a15f0926f7c41768e7069de0 Mon Sep 17 00:00:00 2001 From: Stephen G Tuggy Date: Sun, 23 Jan 2022 17:11:24 -0800 Subject: [PATCH 6/6] CPack: And one more spot --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 47405b2b..2d06f26b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -199,7 +199,7 @@ SET(CPACK_PACKAGE_VERSION_PATCH "${vsUTCS_VERSION_PATCH}") SET(CPACK_PACKAGE_INSTALL_DIRECTORY "vsUTCS-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}") SET(CPACK_CONTACT "maintainers@vega-strike.org") -SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_v${vsUTCS_PACKAGE_VERSION_STR}-Source") +SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_v${vsUTCS_PKG_VERSION_STR}-Source") SET(CPACK_SOURCE_GENERATOR "TXZ") IF (WIN32 AND NOT UNIX)