diff --git a/.cspell/words.txt b/.cspell/words.txt index 790238d..7ccfa42 100644 --- a/.cspell/words.txt +++ b/.cspell/words.txt @@ -27,6 +27,7 @@ cstdint cxxflags cxxopts_project cxxstd +cygpath d_largefile64_source d_largefile_source d_ndebug @@ -160,6 +161,7 @@ msvc msvcr120 msvcr90 mswsock +msys2 mtune mwindows nana diff --git a/.gitignore b/.gitignore index 486ec65..d82196f 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,10 @@ scripts/cleanup.sh support/Dockerfile version.cpp version.rc +.DS_Store +*.gz +*.bz2 +*.xz +*.zip +*.msi +*.exe diff --git a/.jenkins_builds b/.jenkins_builds index 65a7d39..98521a0 100644 --- a/.jenkins_builds +++ b/.jenkins_builds @@ -37,6 +37,12 @@ pipeline { } } + stage('clean_packages') { + steps { script { retryWithBackoff(2, 5) { sh 'clean_packages.sh' } } } + } + stage('grab_packages') { + steps { script { retryWithBackoff(2, 5) { sh 'grab_packages.sh' } } } + } stage('win32_shared') { steps { script { retryWithBackoff(2, 5) { sh 'scripts/test_win32.sh shared' } } } } diff --git a/.jenkins_macos b/.jenkins_macos index cbf33a2..59adfe2 100644 --- a/.jenkins_macos +++ b/.jenkins_macos @@ -36,6 +36,12 @@ pipeline { } } + stage('clean_packages') { + steps { script { retryWithBackoff(2, 5) { sh 'clean_packages.sh' } } } + } + stage('grab_packages') { + steps { script { retryWithBackoff(2, 5) { sh 'grab_packages.sh' } } } + } stage('macos_aarch64_shared') { steps { script { retryWithBackoff(2, 5) { sh 'scripts/test_unix.sh shared' } } diff --git a/.jenkins_msys2 b/.jenkins_msys2 new file mode 100644 index 0000000..1979965 --- /dev/null +++ b/.jenkins_msys2 @@ -0,0 +1,103 @@ +#!groovy +pipeline { + agent none + + environment { + PROJECT_TEST_CONFIG_DIR = "C:\\.ci\\cpp_build_system\\test" + } + + options { + disableConcurrentBuilds() + skipDefaultCheckout() + timestamps() + } + + stages { + stage('msys2 x86_64') { + agent any + stages { + stage('Checkout') { + steps { + script { + int maxAttempts = 6 + int baseDelay = 10 + for (int attempt = 1; attempt <= maxAttempts; attempt++) { + try { + checkout scm + break + } catch (err) { + if (attempt == maxAttempts) { throw err } + int waitSec = baseDelay * (1 << (attempt - 1)) + echo "Checkout failed (attempt ${attempt}/${maxAttempts}). Waiting ${waitSec}s before retry..." + sleep time: waitSec, unit: 'SECONDS' + } + } + } + } + } + + stage('clean_packages') { + steps { script { retryWithBackoff(2, 5) { sh 'clean_packages.cmd' } } } + } + stage('grab_packages') { + steps { script { retryWithBackoff(2, 5) { sh 'grab_packages.cmd' } } } + } + stage('msys2_x86_64_shared') { + steps { + script { retryWithBackoff(2, 5) { bat 'scripts\\test_msys2.cmd shared "" x86_64' } } + } + } + stage('msys2_x86_64_shared_crypto') { + steps { + script { retryWithBackoff(2, 5) { bat 'scripts\\test_msys2.cmd shared 1 x86_64' } } + } + } + stage('msys2_x86_64_shared_crypto_no_boost') { + steps { + script { retryWithBackoff(2, 5) { bat 'scripts\\test_msys2.cmd shared 7 x86_64' } } + } + } + stage('msys2_x86_64_shared_dsm') { + steps { + script { retryWithBackoff(2, 5) { bat 'scripts\\test_msys2.cmd shared 2 x86_64' } } + } + } + stage('msys2_x86_64_shared_sqlite') { + steps { + script { retryWithBackoff(2, 5) { bat 'scripts\\test_msys2.cmd shared 3 x86_64' } } + } + } + stage('msys2_x86_64_shared_errors_v1') { + steps { + script { retryWithBackoff(2, 5) { bat 'scripts\\test_msys2.cmd shared 4 x86_64' } } + } + } + stage('msys2_x86_64_shared_fmt') { + steps { + script { retryWithBackoff(2, 5) { bat 'scripts\\test_msys2.cmd shared 5 x86_64' } } + } + } + stage('msys2_x86_64_shared_libevent') { + steps { + script { retryWithBackoff(2, 5) { bat 'scripts\\test_msys2.cmd shared 6 x86_64' } } + } + } + } + } + } +} + +def retryWithBackoff(int maxAttempts, int baseDelaySeconds, Closure body) { + for (int attempt = 1; attempt <= maxAttempts; attempt++) { + try { + body() + return + } catch (err) { + if (attempt == maxAttempts) { throw err } + int waitSec = baseDelaySeconds * (1 << (attempt - 1)) + echo "Step failed (attempt ${attempt}/${maxAttempts}). Waiting ${waitSec}s before retry..." + sleep time: waitSec, unit: 'SECONDS' + } + } +} + diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..c9a46c8 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,21 @@ +# Changelog + +## v1.0.1-release + +### Issues + +- \#1 Add Windows MSYS2 Jenkins build and testing support + +### Changes from v1.0.0-release + +- Remove stray "_libevent_" inserted mid-name on macOS x86_64 Jenkins test builds +- Properly handle `alpha.x`, `beta.x` and `rc.x` releases in `deliver.sh` +- Use `cygpath` to format Windows paths for use in MSYS2 + +--- + +## v1.0.0-release + +- Initial Release + +--- diff --git a/README.md b/README.md index aa442a3..4e7eccf 100644 --- a/README.md +++ b/README.md @@ -36,13 +36,26 @@ All builds are orchestrated through project scripts — **direct CMake invocatio ## 🚀 Getting Started -### 1️⃣ Clone the Build System +### 1️⃣ Clone the Build System and Grab Packages ```bash git clone https://git.fifthgrid.com/sgraves/cpp-build-system.git git clone https://github.com/sgraves76/cpp-build-system.git cd cpp-build-system ``` +Run the root-level `grab_packages.sh`/`grab_packages.cmd` + +Example: +```bash +./grab_packages.sh +``` + +```cmd +grab_packages.cmd +``` + +This will download and validate all packages currently supported by `cpp-build-system`. They will be placed within the `support/3rd_party/` folder. + --- ### 2️⃣ Create a New Project @@ -52,11 +65,11 @@ Run the root-level `create_project.sh` with: Example: ```bash -./create_project.sh MyApp ~/dev +./create_project.sh MyApp ~/src ``` This creates: ``` -~/dev/MyApp/ +~/src/MyApp/ ``` The new directory contains: @@ -70,7 +83,7 @@ The new directory contains: ### 3️⃣ Configure the Project -In your new project directory (`~/dev/MyApp/`), edit these two files before your first build: +In your new project directory (`~/src/MyApp/`), edit these two files before your first build: > ⚠️ **Important Notice:** > Do **not modify** the root `CMakeLists.txt` file in your project. @@ -155,7 +168,7 @@ Use the provided build wrappers — they take two arguments: If you later want to **add back packages** you previously turned off (and which `cleanup.sh` removed), run the **template’s** update script from the `cpp-build-system` repository root, pointing it at your project path: ```bash # from the cpp-build-system repo root - ./update_project.sh ~/dev/MyApp + ./update_project.sh ~/src/MyApp ``` This will **restore all template-managed packages and scripts** (including `cleanup.sh`) into your project so you can re-enable dependencies via `config.sh` and rebuild. diff --git a/clean_packages.cmd b/clean_packages.cmd new file mode 100644 index 0000000..adb16d6 --- /dev/null +++ b/clean_packages.cmd @@ -0,0 +1,11 @@ +@echo off + +setlocal + +pushd "%~dp0" +call src\scripts\setup_msys2.cmd + +call mingw64 -no-start ./clean_packages.sh +popd + +endlocal diff --git a/clean_packages.sh b/clean_packages.sh new file mode 100755 index 0000000..153f0b6 --- /dev/null +++ b/clean_packages.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +CURRENT_DIR=$(realpath "$0") +CURRENT_DIR=$(dirname "${CURRENT_DIR}") + +pushd "${CURRENT_DIR}" + +mapfile -t FILE_LIST < <(find support/3rd_party/ -type f \( -name '*.gz' -o -name '*.bz2' -o -name '*.xz' -o -name '*.msi' -o -name '*.zip' \)) + +for NAME in "${FILE_LIST[@]}"; do + echo "Removing ${NAME}" + rm -f "${NAME}" +done + +mapfile -t FILE_LIST < <(find support/3rd_party/mingw64/ -type f \( -name '*.exe' \)) +for NAME in "${FILE_LIST[@]}"; do + echo "Removing ${NAME}" + rm -f "${NAME}" +done + +popd diff --git a/create_project.cmd b/create_project.cmd index 1ba4267..279ecd4 100644 --- a/create_project.cmd +++ b/create_project.cmd @@ -2,7 +2,11 @@ setlocal -pushd "%~dp0%" +pushd "%~dp0" call src\scripts\setup_msys2.cmd -call mingw64 -no-start ./create_project.sh "%1" "%2" + +for /f "usebackq tokens=*" %%i in (`cygpath "%~2"`) do set ARG1=%%i +call mingw64 -no-start ./create_project.sh "%~1" "%ARG1%" popd + +endlocal diff --git a/create_project.sh b/create_project.sh index 848101a..b6c88c8 100755 --- a/create_project.sh +++ b/create_project.sh @@ -18,6 +18,7 @@ create_versions_cmake process_file .jenkins_builds process_file .jenkins_macos +process_file .jenkins_msys2 process_file .nvimrc process_file CMakeLists.txt process_file config.sh diff --git a/grab_packages.cmd b/grab_packages.cmd new file mode 100644 index 0000000..585c745 --- /dev/null +++ b/grab_packages.cmd @@ -0,0 +1,11 @@ +@echo off + +setlocal + +pushd "%~dp0" +call src\scripts\setup_msys2.cmd + +call mingw64 -no-start ./grab_packages.sh +popd + +endlocal diff --git a/grab_packages.sh b/grab_packages.sh index f0afa07..39e1ea3 100755 --- a/grab_packages.sh +++ b/grab_packages.sh @@ -6,66 +6,34 @@ CURRENT_DIR=$(dirname "${CURRENT_DIR}") . "${CURRENT_DIR}/src/scripts/versions.sh" . "${CURRENT_DIR}/src/scripts/libraries.sh" -function check_should_update() { +function download_package() { local NAME=$1 local ITEM_LIST=(${PROJECT_DOWNLOADS[${NAME}]//;/ }) - if [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" ] || - [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256" ]; then - return 0 - fi - - return 1 -} - -function download_and_update_hash() { - local NAME=$1 - local ITEM_LIST=(${PROJECT_DOWNLOADS[${NAME}]//;/ }) - if [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" ] || - [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256" ]; then - local CLEANUP_LIST=(${PROJECT_CLEANUP[${NAME}]//:/ }) - if [ "${NAME}" == "GTEST" ]; then - CLEANUP_LIST=(${PROJECT_CLEANUP["TESTING"]//:/ }) - fi - - if [ "${NAME}" != "BOOST" ] && [ "${NAME}" != "BOOST2" ] && [ "${CLEANUP_LIST[0]}" != "" ]; then - rm -r ${CURRENT_DIR}/support/${CLEANUP_LIST[0]} - fi - + if [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" ]; then rm -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" - rm -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256" if ! wget ${ITEM_LIST[0]} -O "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}"; then echo "failed $NAME" rm -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" exit 1 fi - pushd "${CURRENT_DIR}/support/${ITEM_LIST[2]}" - sha256sum ${ITEM_LIST[1]} >${ITEM_LIST[1]}.sha256 + + pushd "${CURRENT_DIR}/support/${ITEM_LIST[2]}/" + if ! sha256sum -c "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256"; then + rm -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" + echo "failed sha256 validation: $NAME" + exit 1 + fi popd fi - - local HASH=$(cat support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256 | awk '{print $1}') - HASH_LIST+=("set(${NAME}_HASH ${HASH})") } -function create_hashes_cmake() { +function download_packages() { for NAME in "${!PROJECT_DOWNLOADS[@]}"; do - if [ "${NAME}" != "BOOST" ] && [ "${NAME}" != "BOOST2" ]; then - download_and_update_hash $NAME - fi + download_package $NAME done } pushd "${CURRENT_DIR}" -HASH_LIST=() -create_hashes_cmake - -if check_should_update BOOST || check_should_update BOOST2; then - rm -f support/3rd_party/boost_* -fi - -download_and_update_hash BOOST -download_and_update_hash BOOST2 - -(printf "%s\n" "${HASH_LIST[@]}" | sort) >${CURRENT_DIR}/cmake/hashes.cmake +download_packages popd diff --git a/scripts/common.sh b/scripts/common.sh index e773ae6..d0ca400 100755 --- a/scripts/common.sh +++ b/scripts/common.sh @@ -52,7 +52,7 @@ elif [ "${WITH_TYPE}" == "7" ]; then fi if [ "${BUILD_ARCH}" != "" ]; then - NAME=${NAME}_libevent_${BUILD_ARCH} + NAME=${NAME}_${BUILD_ARCH} fi rm -rf "${TEST_DIR}/${NAME}" diff --git a/scripts/create_packages.sh b/scripts/create_packages.sh new file mode 100755 index 0000000..62b4159 --- /dev/null +++ b/scripts/create_packages.sh @@ -0,0 +1,74 @@ +#!/usr/bin/env bash + +SCRIPTS_DIR=$(dirname "$0") +SCRIPTS_DIR=$(realpath ${SCRIPTS_DIR}) + +CURRENT_DIR=${SCRIPTS_DIR}/.. +CURRENT_DIR=$(realpath "${CURRENT_DIR}") + +. "${CURRENT_DIR}/src/scripts/versions.sh" +. "${CURRENT_DIR}/src/scripts/libraries.sh" + +function check_should_update() { + local NAME=$1 + local ITEM_LIST=(${PROJECT_DOWNLOADS[${NAME}]//;/ }) + if [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" ] || + [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256" ]; then + return 0 + fi + + return 1 +} + +function download_and_update_hash() { + local NAME=$1 + local ITEM_LIST=(${PROJECT_DOWNLOADS[${NAME}]//;/ }) + if [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" ] || + [ ! -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256" ]; then + local CLEANUP_LIST=(${PROJECT_CLEANUP[${NAME}]//:/ }) + if [ "${NAME}" == "GTEST" ]; then + CLEANUP_LIST=(${PROJECT_CLEANUP["TESTING"]//:/ }) + fi + + if [ "${NAME}" != "BOOST" ] && [ "${NAME}" != "BOOST2" ] && [ "${CLEANUP_LIST[0]}" != "" ]; then + rm -r ${CURRENT_DIR}/support/${CLEANUP_LIST[0]} + fi + + rm -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" + rm -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256" + + if ! wget ${ITEM_LIST[0]} -O "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}"; then + echo "failed $NAME" + rm -f "${CURRENT_DIR}/support/${ITEM_LIST[2]}/${ITEM_LIST[1]}" + exit 1 + fi + pushd "${CURRENT_DIR}/support/${ITEM_LIST[2]}" + sha256sum ${ITEM_LIST[1]} >${ITEM_LIST[1]}.sha256 + popd + fi + + local HASH=$(cat support/${ITEM_LIST[2]}/${ITEM_LIST[1]}.sha256 | awk '{print $1}') + HASH_LIST+=("set(${NAME}_HASH ${HASH})") +} + +function create_hashes_cmake() { + for NAME in "${!PROJECT_DOWNLOADS[@]}"; do + if [ "${NAME}" != "BOOST" ] && [ "${NAME}" != "BOOST2" ]; then + download_and_update_hash $NAME + fi + done +} + +pushd "${CURRENT_DIR}" +HASH_LIST=() +create_hashes_cmake + +if check_should_update BOOST || check_should_update BOOST2; then + rm -f support/3rd_party/boost_* +fi + +download_and_update_hash BOOST +download_and_update_hash BOOST2 + +(printf "%s\n" "${HASH_LIST[@]}" | sort) >${CURRENT_DIR}/cmake/hashes.cmake +popd diff --git a/scripts/test_msys2.cmd b/scripts/test_msys2.cmd new file mode 100755 index 0000000..c462660 --- /dev/null +++ b/scripts/test_msys2.cmd @@ -0,0 +1,82 @@ +@echo off + +setlocal EnableExtensions + +set "SED=sed" + +set "SCRIPTS_DIR=%~dp0" +pushd "%SCRIPTS_DIR%" +set "SCRIPTS_DIR=%CD%" +popd + +set "SOURCE_DIR=%~dp0.." +pushd "%SOURCE_DIR%" +set "SOURCE_DIR=%CD%" +popd + +set "TEST_DIR=%SOURCE_DIR%\build" + +set "PLATFORM=msys2" +set "BUILD_TYPE=%1" +set "WITH_TYPE=%2" + +if /I not "%BUILD_TYPE%"=="shared" if /I not "%BUILD_TYPE%"=="static" ( + call :ERROR_EXIT "Must specify 'shared' or 'static'." 1 +) + +if not defined TEST_DIR ( + call :ERROR_EXIT "TEST_DIR is not set." 1 +) + +if not exist "%TEST_DIR%" mkdir "%TEST_DIR%" + +set "NAME=%BUILD_TYPE%" +if "%WITH_TYPE%"=="1" set "NAME=%NAME%_crypto" +if "%WITH_TYPE%"=="2" set "NAME=%NAME%_dsm" +if "%WITH_TYPE%"=="3" set "NAME=%NAME%_sqlite" +if "%WITH_TYPE%"=="4" set "NAME=%NAME%_errors_v1" +if "%WITH_TYPE%"=="5" set "NAME=%NAME%_fmt" +if "%WITH_TYPE%"=="6" set "NAME=%NAME%_libevent" +if "%WITH_TYPE%"=="7" set "NAME=%NAME%_crypto_no_boost" + +if exist "%TEST_DIR%\%NAME%\" rd /s /q "%TEST_DIR%\%NAME%" + +pushd "%SOURCE_DIR%" +call ".\create_project.cmd" "%NAME%" "%TEST_DIR%" || ( + call :ERROR_EXIT "Failed to create %PLATFORM% project." 2 +) +popd + +pushd "%TEST_DIR%\%NAME%" +if "%WITH_TYPE%"=="1" ( + %SED% -i "s/PROJECT_ENABLE_LIBSODIUM=OFF/PROJECT_ENABLE_LIBSODIUM=ON/g" ".\config.sh" + %SED% -i "s/PROJECT_ENABLE_BOOST=OFF/PROJECT_ENABLE_BOOST=ON/g" ".\config.sh" + %SED% -i "s/PROJECT_ENABLE_JSON=OFF/PROJECT_ENABLE_JSON=ON/g" ".\config.sh" +) +if "%WITH_TYPE%"=="2" %SED% -i "s/PROJECT_ENABLE_LIBDSM=OFF/PROJECT_ENABLE_LIBDSM=ON/g" ".\config.sh" +if "%WITH_TYPE%"=="3" %SED% -i "s/PROJECT_ENABLE_SQLITE=OFF/PROJECT_ENABLE_SQLITE=ON/g" ".\config.sh" +if "%WITH_TYPE%"=="4" %SED% -i "s/PROJECT_ENABLE_V2_ERRORS=ON/PROJECT_ENABLE_V2_ERRORS=OFF/g" ".\config.sh" +if "%WITH_TYPE%"=="5" %SED% -i "s/PROJECT_ENABLE_FMT=OFF/PROJECT_ENABLE_FMT=ON/g" ".\config.sh" +if "%WITH_TYPE%"=="6" %SED% -i "s/PROJECT_ENABLE_LIBEVENT=OFF/PROJECT_ENABLE_LIBEVENT=ON/g" ".\config.sh" +if "%WITH_TYPE%"=="7" %SED% -i "s/PROJECT_ENABLE_LIBSODIUM=OFF/PROJECT_ENABLE_LIBSODIUM=ON/g" ".\config.sh" + +if /I "%BUILD_TYPE%"=="shared" ( + %SED% -i "s/PROJECT_STATIC_LINK=ON/PROJECT_STATIC_LINK=OFF/g" ".\config.sh" +) + +call .\scripts\make_win32.cmd || ( + call :ERROR_EXIT "build %PLATFORM% failed." 3 +) + +call .\scripts\run_tests.cmd || ( + call :ERROR_EXIT "testing %PLATFORM% failed." 3 +) +popd + +if exist "%TEST_DIR%\%NAME%\" rd /s /q "%TEST_DIR%\%NAME%" + +exit 0 + +:ERROR_EXIT +echo %1 +exit %2 diff --git a/src/.jenkins_msys2 b/src/.jenkins_msys2 new file mode 100644 index 0000000..87d6546 --- /dev/null +++ b/src/.jenkins_msys2 @@ -0,0 +1,77 @@ +#!groovy + +pipeline { + agent none + + environment { + PROJECT_TEST_CONFIG_DIR = "c:\\.ci\\%PROJECT_NAME%\\test" + } + + options { + disableConcurrentBuilds() + skipDefaultCheckout() + timestamps() + } + + stages { + // stage('Build • Test • Deliver') + stage('Build • Test') { + agent any + stages { + stage('Checkout') { + steps { + script { + int maxAttempts = 6 + int baseDelay = 10 + for (int attempt = 1; attempt <= maxAttempts; attempt++) { + try { + checkout scm + break + } catch (err) { + if (attempt == maxAttempts) { throw err } + int waitSec = baseDelay * (1 << (attempt - 1)) + echo "Checkout failed (attempt ${attempt}/${maxAttempts}). Waiting ${waitSec}s before retry..." + sleep time: waitSec, unit: 'SECONDS' + } + } + } + } + } + + stage('msys2_x86_64') { + steps { script { retryWithBackoff(2, 5) { bat 'scripts\\make_win32.cmd x86_64' } } } + } + + stage('test') { + steps { + script { + retryWithBackoff(2, 5) { bat 'scripts\\run_tests.cmd x86_64' } + } + } + } + + // stage('deliver') { + // steps { + // script { + // retryWithBackoff(3, 10) { bat 'scripts\\deliver.cmd C:\\deliver\\%PROJECT_NAME% "" x86_64' } + // } + // } + // } + } + } + } +} + +def retryWithBackoff(int maxAttempts, int baseDelaySeconds, Closure body) { + for (int attempt = 1; attempt <= maxAttempts; attempt++) { + try { + body() + return + } catch (err) { + if (attempt == maxAttempts) { throw err } + int waitSec = baseDelaySeconds * (1 << (attempt - 1)) + echo "Step failed (attempt ${attempt}/${maxAttempts}). Waiting ${waitSec}s before retry..." + sleep time: waitSec, unit: 'SECONDS' + } + } +} diff --git a/src/scripts/cleanup.cmd b/src/scripts/cleanup.cmd index 71111cb..fa6f784 100644 --- a/src/scripts/cleanup.cmd +++ b/src/scripts/cleanup.cmd @@ -6,6 +6,6 @@ set ARG1=%~1 set ARG2=%~2 set ARG3=%~3 -pushd "%~dp0%" +pushd "%~dp0" call mingw64 -no-start ./cleanup.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0 popd diff --git a/src/scripts/deliver.cmd b/src/scripts/deliver.cmd index 9fe7bf0..c7dda96 100644 --- a/src/scripts/deliver.cmd +++ b/src/scripts/deliver.cmd @@ -8,6 +8,6 @@ set ARG1=%~3 set ARG2=%~4 set ARG3=%~5 -pushd "%~dp0%" +pushd "%~dp0" call mingw64 -no-start ./deliver.sh "%DEST%" "%DIST%" "%ARG1%" "%ARG2%" "%ARG3%" 1 0 || exit 1 popd diff --git a/src/scripts/deliver.sh b/src/scripts/deliver.sh index 4d54f61..c72f5f2 100755 --- a/src/scripts/deliver.sh +++ b/src/scripts/deliver.sh @@ -7,6 +7,11 @@ PROJECT_SCRIPTS_DIR=$(realpath "$0") PROJECT_SCRIPTS_DIR=$(dirname "${PROJECT_SCRIPTS_DIR}") . "${PROJECT_SCRIPTS_DIR}/env.sh" "$3" "$4" "$5" "$6" "$7" +COPY_OPS=-f +if [ "${PROJECT_IS_DARWIN}" == "1" ]; then + COPY_OPS="${COPY_OPS} -X" +fi + function error_exit() { echo $1 exit $2 @@ -38,13 +43,16 @@ BRANCH=$(git branch --show-current) RELEASE=$(grep PROJECT_RELEASE_ITER= ./config.sh | ${SED} s/PROJECT_RELEASE_ITER=//g) popd -if [ "${BRANCH}" == "master" ] || [ "${BRANCH}" == "alpha" ] || - [ "${BRANCH}" == "main" ] || [ "${BRANCH}" == "release" ] || - [ "${BRANCH}" == "beta" ] || [ "${BRANCH}" == "rc" ]; then - DEST_DIR=${DEST_DIR}/${RELEASE} -elif [[ ${BRANCH} = *'-alpha-'* ]] || [[ ${BRANCH} = *'-beta-'* ]] || - [[ ${BRANCH} = *'-rc-'* ]] || [[ ${BRANCH} = *'-release-'* ]]; then - DEST_DIR=${DEST_DIR}/nightly +if [[ "${BRANCH}" =~ ^(master|main|release)$ ]] || + [[ "${BRANCH}" =~ ^(alpha|beta|rc)(\.[0-9]+)?$ ]]; then + DEST_DIR="${DEST_DIR}/$([[ "${BRANCH}" =~ ^(master|main|release)$ ]] && + printf '%s' "${RELEASE}" || + printf '%s' "${BRANCH%%.*}")" +elif [[ "${BRANCH}" == *"-alpha-"* ]] || [[ "${BRANCH}" == *"-beta-"* ]] || + [[ "${BRANCH}" == *"-rc-"* ]] || [[ "${BRANCH}" == *"-release-"* ]] || + [[ "${BRANCH}" == *"-alpha."* ]] || [[ "${BRANCH}" == *"-beta."* ]] || + [[ "${BRANCH}" == *"-rc."* ]]; then + DEST_DIR="${DEST_DIR}/nightly" else error_exit "skipping ${PROJECT_FILE_PART}" 0 fi @@ -62,39 +70,39 @@ if [ "${PROJECT_PRIVATE_KEY}" != "" ] && [ ! -f "./${PROJECT_OUT_FILE}.sig" ]; t error_exit "failed to find file: ${PROJECT_OUT_FILE}.sig" 1 fi -cp -f ./${PROJECT_OUT_FILE} ${DEST_DIR} || +cp ${COPY_OPS} ./${PROJECT_OUT_FILE} ${DEST_DIR} || error_exit "failed to deliver file: ${PROJECT_OUT_FILE}" 1 -cp -f ./${PROJECT_OUT_FILE}.sha256 ${DEST_DIR} || +cp ${COPY_OPS} ./${PROJECT_OUT_FILE}.sha256 ${DEST_DIR} || error_exit "failed to deliver file: ${PROJECT_OUT_FILE}.sha256" 1 if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then - cp -f ./${PROJECT_OUT_FILE}.sig ${DEST_DIR} || + cp ${COPY_OPS} ./${PROJECT_OUT_FILE}.sig ${DEST_DIR} || error_exit "failed to deliver file: ${PROJECT_OUT_FILE}.sig" 1 fi if [ "${PROJECT_IS_MINGW}" == "1" ] && [ -f "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe" ]; then - cp -f "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe" ${DEST_DIR} || + cp ${COPY_OPS} "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe" ${DEST_DIR} || error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}" 1 - cp -f "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe.sha256" ${DEST_DIR} || + cp ${COPY_OPS} "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe.sha256" ${DEST_DIR} || error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe.sha256" 1 if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then - cp -f "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe.sig" ${DEST_DIR} || + cp ${COPY_OPS} "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe.sig" ${DEST_DIR} || error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}_setup.exe.sig" 1 fi fi if [ "${PROJECT_IS_DARWIN}" == "1" ] && [ -f "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg" ]; then - cp -f -X "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg" ${DEST_DIR} || + cp ${COPY_OPS} "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg" ${DEST_DIR} || error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg" 1 - cp -f -X "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg.sha256" ${DEST_DIR} || + cp ${COPY_OPS} "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg.sha256" ${DEST_DIR} || error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg.sha256" 1 if [ "${PROJECT_PRIVATE_KEY}" != "" ]; then - cp -f -X "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg.sig" ${DEST_DIR} || + cp ${COPY_OPS} "${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg.sig" ${DEST_DIR} || error_exit "failed to deliver file: ${PROJECT_DIST_DIR}/${PROJECT_FILE_PART}.dmg.sig" 1 fi fi diff --git a/src/scripts/info.cmd b/src/scripts/info.cmd index a560b9d..4510008 100644 --- a/src/scripts/info.cmd +++ b/src/scripts/info.cmd @@ -6,7 +6,7 @@ set ARG1=%~1 set ARG2=%~2 set ARG3=%~3 -pushd "%~dp0%" +pushd "%~dp0" call mingw64 -no-start ./info.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0 popd diff --git a/src/scripts/make_package.cmd b/src/scripts/make_package.cmd index 1037ea3..6f215fe 100644 --- a/src/scripts/make_package.cmd +++ b/src/scripts/make_package.cmd @@ -6,6 +6,6 @@ set ARG1=%~1 set ARG2=%~2 set ARG3=%~3 -pushd "%~dp0%" +pushd "%~dp0" call mingw64 -no-start ./make_package.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0 || exit 1 popd diff --git a/src/scripts/make_win32.cmd b/src/scripts/make_win32.cmd index 038141f..2a7ef7e 100644 --- a/src/scripts/make_win32.cmd +++ b/src/scripts/make_win32.cmd @@ -6,7 +6,7 @@ set ARG1=%~1 set ARG2=%~2 set ARG3=%~3 -pushd "%~dp0%" +pushd "%~dp0" call setup_msys2.cmd "%ARG1%" "%ARG2%" "%ARG3%" if exist "cleanup.cmd" ( call cleanup.cmd "%ARG1%" "%ARG2%" "%ARG3%" 1 0 diff --git a/src/scripts/run_tests.cmd b/src/scripts/run_tests.cmd index 53e9f54..fd809a0 100644 --- a/src/scripts/run_tests.cmd +++ b/src/scripts/run_tests.cmd @@ -6,7 +6,7 @@ set ARG1=%~1 set ARG2=%~2 set ARG3=%~3 -pushd "%~dp0%" +pushd "%~dp0" call mingw64 -no-start ./run_tests.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0 popd diff --git a/src/scripts/setup_msys2.cmd b/src/scripts/setup_msys2.cmd index ce3c466..b13165b 100644 --- a/src/scripts/setup_msys2.cmd +++ b/src/scripts/setup_msys2.cmd @@ -6,7 +6,7 @@ set ARG1=%~1 set ARG2=%~2 set ARG3=%~3 -pushd "%~dp0%" +pushd "%~dp0" call mingw64 -no-start ./setup_msys2.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0 call mingw64 -no-start ./setup_msys2.sh "%ARG1%" "%ARG2%" "%ARG3%" 1 0 popd diff --git a/src/scripts/setup_msys2.sh b/src/scripts/setup_msys2.sh index bc1fab0..499bf96 100755 --- a/src/scripts/setup_msys2.sh +++ b/src/scripts/setup_msys2.sh @@ -14,6 +14,7 @@ PROJECT_MSYS2_PACKAGE_LIST+=( mingw64/mingw-w64-x86_64-diffutils mingw64/mingw-w64-x86_64-gcc mingw64/mingw-w64-x86_64-gdb + mingw64/mingw-w64-x86_64-git-lfs mingw64/mingw-w64-x86_64-icu mingw64/mingw-w64-x86_64-make mingw64/mingw-w64-x86_64-mesa diff --git a/support/3rd_party/CLI11-2.5.0.tar.gz b/support/3rd_party/CLI11-2.5.0.tar.gz deleted file mode 100644 index d7979c1..0000000 --- a/support/3rd_party/CLI11-2.5.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:17e02b4cddc2fa348e5dbdbb582c59a3486fa2b2433e70a0c3bacb871334fd55 -size 361527 diff --git a/support/3rd_party/SFML-2.6.2.tar.gz b/support/3rd_party/SFML-2.6.2.tar.gz deleted file mode 100644 index 42af888..0000000 --- a/support/3rd_party/SFML-2.6.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:15ff4d608a018f287c6a885db0a2da86ea389e516d2323629e4d4407a7ce047f -size 28624288 diff --git a/support/3rd_party/boost_1_76_0.tar.gz b/support/3rd_party/boost_1_76_0.tar.gz deleted file mode 100644 index d288c0f..0000000 --- a/support/3rd_party/boost_1_76_0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7bd7ddceec1a1dfdcbdb3e609b60d01739c38390a5f956385a12f3122049f0ca -size 130274594 diff --git a/support/3rd_party/boost_1_89_0.tar.gz b/support/3rd_party/boost_1_89_0.tar.gz deleted file mode 100644 index 79022d4..0000000 --- a/support/3rd_party/boost_1_89_0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9de758db755e8330a01d995b0a24d09798048400ac25c03fc5ea9be364b13c93 -size 190099283 diff --git a/support/3rd_party/cpp-httplib-0.26.0.tar.gz b/support/3rd_party/cpp-httplib-0.26.0.tar.gz deleted file mode 100644 index 43aca51..0000000 --- a/support/3rd_party/cpp-httplib-0.26.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a66f908f50ccb119769adce44fe1eac75f81b6ffab7c4ac0211bb663ffeb2688 -size 1305573 diff --git a/support/3rd_party/curl-8.16.0.tar.gz b/support/3rd_party/curl-8.16.0.tar.gz deleted file mode 100644 index ab8a07d..0000000 --- a/support/3rd_party/curl-8.16.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d4d9a5001b491f5726efe9b50bc4aad03029506e73c9261272e809c64b05e814 -size 3476261 diff --git a/support/3rd_party/cxxopts-v3.3.1.tar.gz b/support/3rd_party/cxxopts-v3.3.1.tar.gz deleted file mode 100644 index f8f7202..0000000 --- a/support/3rd_party/cxxopts-v3.3.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3bfc70542c521d4b55a46429d808178916a579b28d048bd8c727ee76c39e2072 -size 161557 diff --git a/support/3rd_party/dtl-v2.01.tar.gz b/support/3rd_party/dtl-v2.01.tar.gz deleted file mode 100644 index 27179d4..0000000 --- a/support/3rd_party/dtl-v2.01.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d6dcc7834b4117b5c14456ea73b907d0e2bafa5058e3a06b2c504d53517438c5 -size 28091 diff --git a/support/3rd_party/flac-1.5.0.tar.gz b/support/3rd_party/flac-1.5.0.tar.gz deleted file mode 100644 index 3a8aa6d..0000000 --- a/support/3rd_party/flac-1.5.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aea54ed186ad07a34750399cb27fc216a2b62d0ffcd6dc2e3064a3518c3146f8 -size 974901 diff --git a/support/3rd_party/fmt-12.0.0.tar.gz b/support/3rd_party/fmt-12.0.0.tar.gz deleted file mode 100644 index 5f13b64..0000000 --- a/support/3rd_party/fmt-12.0.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aa3e8fbb6a0066c03454434add1f1fc23299e85758ceec0d7d2d974431481e40 -size 709036 diff --git a/support/3rd_party/fontconfig-2.16.0.tar.xz b/support/3rd_party/fontconfig-2.16.0.tar.xz deleted file mode 100644 index 36d5b73..0000000 --- a/support/3rd_party/fontconfig-2.16.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6a33dc555cc9ba8b10caf7695878ef134eeb36d0af366041f639b1da9b6ed220 -size 1294156 diff --git a/support/3rd_party/freetype-2.14.1.tar.gz b/support/3rd_party/freetype-2.14.1.tar.gz deleted file mode 100644 index da7b5da..0000000 --- a/support/3rd_party/freetype-2.14.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:174d9e53402e1bf9ec7277e22ec199ba3e55a6be2c0740cb18c0ee9850fc8c34 -size 4135293 diff --git a/support/3rd_party/googletest-1.17.0.tar.gz b/support/3rd_party/googletest-1.17.0.tar.gz deleted file mode 100644 index 4b82832..0000000 --- a/support/3rd_party/googletest-1.17.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:65fab701d9829d38cb77c14acdc431d2108bfdbf8979e40eb8ae567edf10b27c -size 885595 diff --git a/support/3rd_party/json-3.12.0.tar.gz b/support/3rd_party/json-3.12.0.tar.gz deleted file mode 100644 index a45946b..0000000 --- a/support/3rd_party/json-3.12.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4b92eb0c06d10683f7447ce9406cb97cd4b453be18d7279320f7b2f025c10187 -size 9678593 diff --git a/support/3rd_party/libbitcoin-system-3.8.0.tar.gz b/support/3rd_party/libbitcoin-system-3.8.0.tar.gz deleted file mode 100644 index 865defd..0000000 --- a/support/3rd_party/libbitcoin-system-3.8.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0d10d79472e914620223f1ddb9396b0fa92ae5eb0b31acc14b9aa634a01d78b6 -size 826544 diff --git a/support/3rd_party/libdsm-0.4.3.tar.gz b/support/3rd_party/libdsm-0.4.3.tar.gz deleted file mode 100644 index 057bcab..0000000 --- a/support/3rd_party/libdsm-0.4.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:747c4563d6291303d9b085c9e7dc96ac44f91871dcac3e20480fdcc066eee88a -size 151777 diff --git a/support/3rd_party/libevent-2.1.12-stable.tar.gz b/support/3rd_party/libevent-2.1.12-stable.tar.gz deleted file mode 100644 index 002a25a..0000000 --- a/support/3rd_party/libevent-2.1.12-stable.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7180a979aaa7000e1264da484f712d403fcf7679b1e9212c4e3d09f5c93efc24 -size 743522 diff --git a/support/3rd_party/libiconv-1.18.tar.gz b/support/3rd_party/libiconv-1.18.tar.gz deleted file mode 100644 index 2cc28ed..0000000 --- a/support/3rd_party/libiconv-1.18.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3b08f5f4f9b4eb82f151a7040bfd6fe6c6fb922efe4b1659c66ea933276965e8 -size 5822590 diff --git a/support/3rd_party/libjpeg_turbo-3.1.2.tar.gz b/support/3rd_party/libjpeg_turbo-3.1.2.tar.gz deleted file mode 100644 index 56bbed3..0000000 --- a/support/3rd_party/libjpeg_turbo-3.1.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:560f6338b547544c4f9721b18d8b87685d433ec78b3c644c70d77adad22c55e6 -size 2512033 diff --git a/support/3rd_party/libpng-v1.6.50.tar.gz b/support/3rd_party/libpng-v1.6.50.tar.gz deleted file mode 100644 index 00411c9..0000000 --- a/support/3rd_party/libpng-v1.6.50.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:71158e53cfdf2877bc99bcab33641d78df3f48e6e0daad030afe9cb8c031aa46 -size 1582079 diff --git a/support/3rd_party/libsodium-1.0.20.tar.gz b/support/3rd_party/libsodium-1.0.20.tar.gz deleted file mode 100644 index 609a212..0000000 --- a/support/3rd_party/libsodium-1.0.20.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8e5aeca07a723a27bbecc3beef14b0068d37e7fc0e97f51b3f1c82d2a58005c1 -size 2151843 diff --git a/support/3rd_party/libtasn1-4.19.0.tar.gz b/support/3rd_party/libtasn1-4.19.0.tar.gz deleted file mode 100644 index b5520f2..0000000 --- a/support/3rd_party/libtasn1-4.19.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1613f0ac1cf484d6ec0ce3b8c06d56263cc7242f1c23b30d82d23de345a63f7a -size 1786576 diff --git a/support/3rd_party/mingw64/binutils-2.44.tar.xz b/support/3rd_party/mingw64/binutils-2.44.tar.xz deleted file mode 100644 index d94da78..0000000 --- a/support/3rd_party/mingw64/binutils-2.44.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ce2017e059d63e67ddb9240e9d4ec49c2893605035cd60e92ad53177f4377237 -size 27285788 diff --git a/support/3rd_party/mingw64/expat-2.7.1.tar.gz b/support/3rd_party/mingw64/expat-2.7.1.tar.gz deleted file mode 100644 index f3d1951..0000000 --- a/support/3rd_party/mingw64/expat-2.7.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:85372797ff0673a8fc4a6be16466bb5a0ca28c0dcf3c6f7ac1686b4a3ba2aabb -size 8433717 diff --git a/support/3rd_party/mingw64/gcc-15.2.0.tar.gz b/support/3rd_party/mingw64/gcc-15.2.0.tar.gz deleted file mode 100644 index 2cab2cd..0000000 --- a/support/3rd_party/mingw64/gcc-15.2.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7294d65cc1a0558cb815af0ca8c7763d86f7a31199794ede3f630c0d1b0a5723 -size 178138393 diff --git a/support/3rd_party/mingw64/icu-release-76-1.tar.gz b/support/3rd_party/mingw64/icu-release-76-1.tar.gz deleted file mode 100644 index 5a1dcea..0000000 --- a/support/3rd_party/mingw64/icu-release-76-1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a2c443404f00098e9e90acf29dc318e049d2dc78d9ae5f46efb261934a730ce2 -size 67524828 diff --git a/support/3rd_party/mingw64/innosetup-6.5.4.exe b/support/3rd_party/mingw64/innosetup-6.5.4.exe deleted file mode 100644 index bbd9eb0..0000000 --- a/support/3rd_party/mingw64/innosetup-6.5.4.exe +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fa73bf47a4da250d185d07561c2bfda387e5e20db77e4570004cf6a133cc10b1 -size 7770392 diff --git a/support/3rd_party/mingw64/mingw-w64-v13.0.0.tar.bz2 b/support/3rd_party/mingw64/mingw-w64-v13.0.0.tar.bz2 deleted file mode 100644 index bddf085..0000000 Binary files a/support/3rd_party/mingw64/mingw-w64-v13.0.0.tar.bz2 and /dev/null differ diff --git a/support/3rd_party/mingw64/pkg-config-0.29.2.tar.gz b/support/3rd_party/mingw64/pkg-config-0.29.2.tar.gz deleted file mode 100644 index 83cf6bb..0000000 --- a/support/3rd_party/mingw64/pkg-config-0.29.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591 -size 2016830 diff --git a/support/3rd_party/mingw64/zlib-1.3.1.tar.gz b/support/3rd_party/mingw64/zlib-1.3.1.tar.gz deleted file mode 100644 index fb9239b..0000000 --- a/support/3rd_party/mingw64/zlib-1.3.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:17e88863f3600672ab49182f217281b6fc4d3c762bde361935e436a95214d05c -size 1572744 diff --git a/support/3rd_party/nana-v1.7.4.tar.gz b/support/3rd_party/nana-v1.7.4.tar.gz deleted file mode 100644 index 3882491..0000000 --- a/support/3rd_party/nana-v1.7.4.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:56f7b1ed006c750fccf8ef15ab1e83f96751f2dfdcb68d93e5f712a6c9b58bcb -size 581976 diff --git a/support/3rd_party/nuspell-v5.1.6.tar.gz b/support/3rd_party/nuspell-v5.1.6.tar.gz deleted file mode 100644 index d2c9a26..0000000 --- a/support/3rd_party/nuspell-v5.1.6.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5d4baa1daf833a18dc06ae0af0571d9574cc849d47daff6b9ce11dac0a5ded6a -size 373260 diff --git a/support/3rd_party/ogg-v1.3.6.tar.gz b/support/3rd_party/ogg-v1.3.6.tar.gz deleted file mode 100644 index ff27d79..0000000 --- a/support/3rd_party/ogg-v1.3.6.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:83e6704730683d004d20e21b8f7f55dcb3383cdf84c0daedf30bde175f774638 -size 604469 diff --git a/support/3rd_party/openal-1.24.3.tar.gz b/support/3rd_party/openal-1.24.3.tar.gz deleted file mode 100644 index e607a99..0000000 --- a/support/3rd_party/openal-1.24.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7e1fecdeb45e7f78722b776c5cf30bd33934b961d7fd2a11e0494e064cc631ce -size 1251714 diff --git a/support/3rd_party/openssl-3.6.0.tar.gz b/support/3rd_party/openssl-3.6.0.tar.gz deleted file mode 100644 index 415a4a8..0000000 --- a/support/3rd_party/openssl-3.6.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9 -size 54974351 diff --git a/support/3rd_party/pugixml-1.15.tar.gz b/support/3rd_party/pugixml-1.15.tar.gz deleted file mode 100644 index 62e6532..0000000 --- a/support/3rd_party/pugixml-1.15.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:655ade57fa703fb421c2eb9a0113b5064bddb145d415dd1f88c79353d90d511a -size 395045 diff --git a/support/3rd_party/rocksdb-10.5.1.tar.gz b/support/3rd_party/rocksdb-10.5.1.tar.gz deleted file mode 100644 index 16ec937..0000000 --- a/support/3rd_party/rocksdb-10.5.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ec942baab802b2845188d02bc5d4e42c29236e61bcbc08f5b3a6bdd92290c22 -size 13864326 diff --git a/support/3rd_party/sdl-2.32.6.tar.gz b/support/3rd_party/sdl-2.32.6.tar.gz deleted file mode 100644 index f67b5cf..0000000 --- a/support/3rd_party/sdl-2.32.6.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f50e59da0d383b2c84d43db625c6e23aae58f8f90eabd2944e2138ccc253744b -size 7883811 diff --git a/support/3rd_party/secp256k1-0.1.0.20.tar.gz b/support/3rd_party/secp256k1-0.1.0.20.tar.gz deleted file mode 100644 index bf6bd75..0000000 --- a/support/3rd_party/secp256k1-0.1.0.20.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:61583939f1f25b92e6401e5b819e399da02562de663873df3056993b40148701 -size 2460408 diff --git a/support/3rd_party/spdlog-1.15.3.tar.gz b/support/3rd_party/spdlog-1.15.3.tar.gz deleted file mode 100644 index ffde4cf..0000000 --- a/support/3rd_party/spdlog-1.15.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:15a04e69c222eb6c01094b5c7ff8a249b36bb22788d72519646fb85feb267e67 -size 277691 diff --git a/support/3rd_party/sqlite-amalgamation-3500400.zip b/support/3rd_party/sqlite-amalgamation-3500400.zip deleted file mode 100644 index dac01aa..0000000 --- a/support/3rd_party/sqlite-amalgamation-3500400.zip +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1d3049dd0f830a025a53105fc79fd2ab9431aea99e137809d064d8ee8356b032 -size 2845716 diff --git a/support/3rd_party/stduuid-1.2.3.tar.gz b/support/3rd_party/stduuid-1.2.3.tar.gz deleted file mode 100644 index 43de61f..0000000 --- a/support/3rd_party/stduuid-1.2.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b1176597e789531c38481acbbed2a6894ad419aab0979c10410d59eb0ebf40d3 -size 184170 diff --git a/support/3rd_party/tiny-process-library.tar.gz b/support/3rd_party/tiny-process-library.tar.gz deleted file mode 100644 index 526f490..0000000 --- a/support/3rd_party/tiny-process-library.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:82e46657e697aff5bf980387c86ef3aa05bb184622abbd75663a4df549c68f73 -size 14307 diff --git a/support/3rd_party/vorbis-v1.3.7.tar.gz b/support/3rd_party/vorbis-v1.3.7.tar.gz deleted file mode 100644 index 3777a81..0000000 --- a/support/3rd_party/vorbis-v1.3.7.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:270c76933d0934e42c5ee0a54a36280e2d87af1de3cc3e584806357e237afd13 -size 1234573 diff --git a/support/3rd_party/winfsp-2.1.25156.msi b/support/3rd_party/winfsp-2.1.25156.msi deleted file mode 100644 index 73c499c..0000000 --- a/support/3rd_party/winfsp-2.1.25156.msi +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:073a70e00f77423e34bed98b86e600def93393ba5822204fac57a29324db9f7a -size 2191360 diff --git a/support/3rd_party/wxWidgets-3.3.1.tar.bz2 b/support/3rd_party/wxWidgets-3.3.1.tar.bz2 deleted file mode 100644 index 5b322a8..0000000 Binary files a/support/3rd_party/wxWidgets-3.3.1.tar.bz2 and /dev/null differ diff --git a/update_project.cmd b/update_project.cmd index 10b6e4b..410d3b4 100644 --- a/update_project.cmd +++ b/update_project.cmd @@ -2,6 +2,9 @@ setlocal -pushd "%~dp0%" -call mingw64 -no-start ./update_project.sh "%1" "%2" +pushd "%~dp0" +for /f "usebackq tokens=*" %%i in (`cygpath "%~2"`) do set ARG1=%%i +call mingw64 -no-start ./update_project.sh "%~1" "%ARG1%" popd + +endlocal