updated build system

This commit is contained in:
Scott E. Graves 2024-07-16 13:04:21 -05:00
parent b1a7632536
commit 8757b47b35
16 changed files with 21 additions and 22 deletions

View File

@ -3,8 +3,7 @@ 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)
include(project_name.cmake) project(%PROJECT_NAME%)
project(${PROJECT_NAME})
include(CheckIncludeFileCXX) include(CheckIncludeFileCXX)
include(CheckIncludeFiles) include(CheckIncludeFiles)

View File

@ -3,7 +3,7 @@ if(NOT PROJECT_BUILD AND PROJECT_ENABLE_TESTING)
ExternalProject_Add(gtest_project ExternalProject_Add(gtest_project
PREFIX external PREFIX external
URL ${PROJECT_3RD_PARTY_DIR}/googletest-${GTEST_VERSION}.tar.gz URL ${PROJECT_3RD_PARTY_DIR}/googletest-${GTEST_VERSION}.tar.gz
URL_HASH SHA256=8ad598c73ad796e0d8280b082cebd82a630d73e73cd3c70057938a6501bba5d7 URL_HASH SHA256=7315acb6bf10e99f332c8a43f00d5fbb1ee6ca48c52f6b936991b216c586aaad
LIST_SEPARATOR | LIST_SEPARATOR |
CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS} CMAKE_ARGS ${PROJECT_EXTERNAL_CMAKE_FLAGS}
-DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS} -DBUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS}

View File

@ -15,7 +15,7 @@ set(FMT_VERSION 10.2.1)
set(FONTCONFIG_VERSION 2.15.0) set(FONTCONFIG_VERSION 2.15.0)
set(FREETYPE2_VERSION 2.13.2) set(FREETYPE2_VERSION 2.13.2)
set(GCC_VERSION 13.2.0) set(GCC_VERSION 13.2.0)
set(GTEST_VERSION 1.14.0) set(GTEST_VERSION 1.15.0)
set(GTKMM_VERSION 3.0) set(GTKMM_VERSION 3.0)
set(ICU_VERSION 75-1) set(ICU_VERSION 75-1)
set(JSON_VERSION 3.11.3) set(JSON_VERSION 3.11.3)

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
PROJECT_APP_NAME="repertory" PROJECT_NAME="repertory"
PROJECT_APP_LIST=(${PROJECT_APP_NAME}) PROJECT_APP_LIST=(${PROJECT_NAME})
PROJECT_PRIVATE_KEY=${DEVELOPER_PRIVATE_KEY} PROJECT_PRIVATE_KEY=${DEVELOPER_PRIVATE_KEY}
PROJECT_PUBLIC_KEY=${DEVELOPER_PUBLIC_KEY} PROJECT_PUBLIC_KEY=${DEVELOPER_PUBLIC_KEY}
@ -25,5 +25,5 @@ PROJECT_MINGW64_COPY_DEPENDENCIES+=()
PROJECT_MSYS2_PACKAGE_LIST+=() PROJECT_MSYS2_PACKAGE_LIST+=()
if [ "${PROJECT_ENABLE_TESTING}" == "ON" ]; then if [ "${PROJECT_ENABLE_TESTING}" == "ON" ]; then
PROJECT_APP_LIST+=(${PROJECT_APP_NAME}_test) PROJECT_APP_LIST+=(${PROJECT_NAME}_test)
fi fi

View File

@ -3,5 +3,5 @@
CURRENT_DIR=$(dirname "$0") CURRENT_DIR=$(dirname "$0")
CURRENT_DIR=$(realpath ${CURRENT_DIR}) CURRENT_DIR=$(realpath ${CURRENT_DIR})
rsync -av --progress ${CURRENT_DIR}/${PROJECT_APP_NAME}/${PROJECT_APP_NAME}_test/test_data/ ${PROJECT_BUILD_DIR}/build/test_data/ rsync -av --progress ${CURRENT_DIR}/${PROJECT_NAME}/${PROJECT_NAME}_test/test_data/ ${PROJECT_BUILD_DIR}/build/test_data/
rsync -av --progress ${CURRENT_DIR}/${PROJECT_APP_NAME}/${PROJECT_APP_NAME}_test/test_data/ ${PROJECT_DIST_DIR}/test_data/ rsync -av --progress ${CURRENT_DIR}/${PROJECT_NAME}/${PROJECT_NAME}_test/test_data/ ${PROJECT_DIST_DIR}/test_data/

View File

@ -1 +0,0 @@
set(PROJECT_NAME repertory)

View File

@ -16,7 +16,7 @@ function create_containers() {
for FILE in "${SOURCE_DIR}/docker/${BUILD_TYPE}/*"; do for FILE in "${SOURCE_DIR}/docker/${BUILD_TYPE}/*"; do
DOCKER_CREATE_ONLY=1 DOCKER_CREATE_ONLY=1
DOCKER_NAME=$(basename ${FILE}) DOCKER_NAME=$(basename ${FILE})
DOCKER_TAG=${PROJECT_APP_NAME}:${DOCKER_NAME} DOCKER_TAG=${PROJECT_NAME}:${DOCKER_NAME}
. "${CURRENT_DIR}/docker_common.sh" . "${CURRENT_DIR}/docker_common.sh"
done done

View File

@ -174,7 +174,7 @@ else
PROJECT_BUILD_DIR=${PROJECT_BUILD_DIR}/x86_64 PROJECT_BUILD_DIR=${PROJECT_BUILD_DIR}/x86_64
fi fi
PROJECT_DIST_DIR=${PROJECT_DIST_DIR}/${PROJECT_APP_NAME} PROJECT_DIST_DIR=${PROJECT_DIST_DIR}/${PROJECT_NAME}
PROJECT_EXTERNAL_BUILD_ROOT=${PROJECT_BUILD_DIR}/deps PROJECT_EXTERNAL_BUILD_ROOT=${PROJECT_BUILD_DIR}/deps
PROJECT_3RD_PARTY_DIR=${SOURCE_DIR}/support/3rd_party PROJECT_3RD_PARTY_DIR=${SOURCE_DIR}/support/3rd_party
@ -211,6 +211,7 @@ 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=${PROJECT_IS_MINGW} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_IS_MINGW_UNIX=${PROJECT_IS_MINGW_UNIX} ${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_LINK_TYPE=${PROJECT_LINK_TYPE} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_NAME=${PROJECT_NAME} ${PROJECT_CMAKE_OPTS}"
PROJECT_CMAKE_OPTS="-DPROJECT_REQUIRE_ALPINE=${PROJECT_REQUIRE_ALPINE} ${PROJECT_CMAKE_OPTS}" PROJECT_CMAKE_OPTS="-DPROJECT_REQUIRE_ALPINE=${PROJECT_REQUIRE_ALPINE} ${PROJECT_CMAKE_OPTS}"
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}"
@ -243,7 +244,6 @@ export PATH
export PKG_CONFIG_PATH export PKG_CONFIG_PATH
export PROJECT_3RD_PARTY_DIR export PROJECT_3RD_PARTY_DIR
export PROJECT_APP_LIST export PROJECT_APP_LIST
export PROJECT_APP_NAME
export PROJECT_BUILD_ARCH export PROJECT_BUILD_ARCH
export PROJECT_BUILD_CLEAN export PROJECT_BUILD_CLEAN
export PROJECT_BUILD_DIR export PROJECT_BUILD_DIR
@ -260,6 +260,7 @@ export PROJECT_LINK_TYPE
export PROJECT_MINGW64_COPY_DEPENDENCIES export PROJECT_MINGW64_COPY_DEPENDENCIES
export PROJECT_MINGW64_DOCKER_BUILD_ARGS export PROJECT_MINGW64_DOCKER_BUILD_ARGS
export PROJECT_MSYS2_PACKAGE_LIST export PROJECT_MSYS2_PACKAGE_LIST
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

View File

@ -50,10 +50,10 @@ fi
PACKAGE_ROOT="${PROJECT_DIST_DIR}/.." PACKAGE_ROOT="${PROJECT_DIST_DIR}/.."
PACKAGE_ROOT=$(realpath "${PACKAGE_ROOT}") PACKAGE_ROOT=$(realpath "${PACKAGE_ROOT}")
rsync -av --progress ${PROJECT_DIST_DIR}/ ${TEMP_DIR}/${PROJECT_APP_NAME}/ || exit_and_clean "Failed to rsync" 1 rsync -av --progress ${PROJECT_DIST_DIR}/ ${TEMP_DIR}/${PROJECT_NAME}/ || exit_and_clean "Failed to rsync" 1
pushd "${DEST_DIR}" pushd "${DEST_DIR}"
OUT_FILE=${PROJECT_APP_NAME}_${PROJECT_VERSION}_${PROJECT_GIT_REV}_${PROJECT_BUILD_ARCH}_${PROJECT_OS}.tar.gz OUT_FILE=${PROJECT_NAME}_${PROJECT_VERSION}_${PROJECT_GIT_REV}_${PROJECT_BUILD_ARCH}_${PROJECT_OS}.tar.gz
tar cvzf "${OUT_FILE}" -C ${TEMP_DIR} . || exit_and_clean "Failed to create archive" 1 tar cvzf "${OUT_FILE}" -C ${TEMP_DIR} . || exit_and_clean "Failed to create archive" 1
sha256sum "${OUT_FILE}" >"${OUT_FILE}.sha256" || exit_and_clean "Failed to create sha256 file" 1 sha256sum "${OUT_FILE}" >"${OUT_FILE}.sha256" || exit_and_clean "Failed to create sha256 file" 1
if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then

View File

@ -12,8 +12,8 @@ fi
if [ "${PROJECT_REQUIRE_ALPINE}" == "ON" ]; then if [ "${PROJECT_REQUIRE_ALPINE}" == "ON" ]; then
DOCKER_NAME=alpine DOCKER_NAME=alpine
DOCKER_CONTAINER=${PROJECT_APP_NAME}_${DOCKER_NAME}_${PROJECT_BUILD_ARCH} DOCKER_CONTAINER=${PROJECT_NAME}_${DOCKER_NAME}_${PROJECT_BUILD_ARCH}
DOCKER_TAG=${PROJECT_APP_NAME}:${DOCKER_NAME} DOCKER_TAG=${PROJECT_NAME}:${DOCKER_NAME}
. "${CURRENT_DIR}/docker_common.sh" || exit 1 . "${CURRENT_DIR}/docker_common.sh" || exit 1
else else

View File

@ -11,7 +11,7 @@ if [ -f "${CURRENT_DIR}/cleanup.sh" ]; then
fi fi
DOCKER_NAME=mingw64 DOCKER_NAME=mingw64
DOCKER_CONTAINER=${PROJECT_APP_NAME}_${DOCKER_NAME} DOCKER_CONTAINER=${PROJECT_NAME}_${DOCKER_NAME}
DOCKER_TAG=${PROJECT_APP_NAME}:${DOCKER_NAME} DOCKER_TAG=${PROJECT_NAME}:${DOCKER_NAME}
. "${CURRENT_DIR}/docker_common.sh" || exit 1 . "${CURRENT_DIR}/docker_common.sh" || exit 1

View File

@ -8,8 +8,8 @@ shift
. "${CURRENT_DIR}/env.sh" "$1" "$2" "$3" "$4" "$5" 1 1>/dev/null 2>&1 . "${CURRENT_DIR}/env.sh" "$1" "$2" "$3" "$4" "$5" 1 1>/dev/null 2>&1
DOCKER_CONTAINER=${PROJECT_APP_NAME}_${DOCKER_NAME}_${PROJECT_BUILD_ARCH}_shell DOCKER_CONTAINER=${PROJECT_NAME}_${DOCKER_NAME}_${PROJECT_BUILD_ARCH}_shell
DOCKER_TAG=${PROJECT_APP_NAME}:${DOCKER_NAME} DOCKER_TAG=${PROJECT_NAME}:${DOCKER_NAME}
DOCKER_SHELL=1 DOCKER_SHELL=1
. "${CURRENT_DIR}/docker_common.sh" || exit 1 . "${CURRENT_DIR}/docker_common.sh" || exit 1

Binary file not shown.

View File

@ -1 +0,0 @@
8ad598c73ad796e0d8280b082cebd82a630d73e73cd3c70057938a6501bba5d7 ./googletest-1.14.0.tar.gz

Binary file not shown.

View File

@ -0,0 +1 @@
7315acb6bf10e99f332c8a43f00d5fbb1ee6ca48c52f6b936991b216c586aaad *googletest-1.15.0.tar.gz