new_build_system (#18)
All checks were successful
BlockStorage/repertory/pipeline/head This commit looks good

Reviewed-on: #18
This commit is contained in:
2024-09-06 15:05:48 +00:00
parent 9d3e4b8767
commit a7239558bd
191 changed files with 10683 additions and 10598 deletions

View File

@ -18,82 +18,139 @@ if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_STATIC_LINK}" == "OFF" ]; th
/mingw64/bin/zlib1.dll
)
if [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; then
if [ "${PROJECT_ENABLE_BOOST}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libboost*.dll)
fi
if [ "${PROJECT_ENABLE_BOOST}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libboost*.dll)
fi
if [ "${PROJECT_ENABLE_CLI11}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libcli11*.dll)
fi
if [ "${PROJECT_ENABLE_FLAC}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libFLAC*.dll)
fi
if [ "${PROJECT_ENABLE_FONTCONFIG}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(
/mingw64/bin/libexpat*.dll
/mingw64/bin/libfontconfig*.dll
)
fi
if [ "${PROJECT_ENABLE_FREETYPE2}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libfreetype*.dll)
fi
if [ "${PROJECT_ENABLE_LIBDSM}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libdsm.dll)
fi
if [ "${PROJECT_ENABLE_LIBEVENT}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libevent*.dll)
fi
if [ "${PROJECT_ENABLE_LIBICONV}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libiconv.dll)
fi
if [ "${PROJECT_ENABLE_LIBJPEG_TURBO}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libjpeg*.dll)
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libturbo*.dll)
fi
if [ "${PROJECT_ENABLE_LIBPNG}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libpng*.dll)
fi
if [ "${PROJECT_ENABLE_LIBSODIUM}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libsodium*.dll)
fi
if [ "${PROJECT_ENABLE_NANA}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libnana*.dll)
fi
if [ "${PROJECT_ENABLE_NUSPELL}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libnuspell-*.dll)
fi
if [ "${PROJECT_ENABLE_OGG}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libogg*.dll)
fi
if [ "${PROJECT_ENABLE_OPENAL}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libopenal*.dll)
fi
if [ "${PROJECT_ENABLE_OPENSSL}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(
/mingw64/bin/libssl*.dll
/mingw64/bin/libcrypt*.dll
)
fi
if [ "${PROJECT_ENABLE_PUGIXML}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libpugi*.dll)
fi
if [ "${PROJECT_ENABLE_SDL}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/SDL2*.dll)
fi
if [ "${PROJECT_ENABLE_SFML}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libsfml*.dll)
fi
if [ "${PROJECT_ENABLE_SQLITE}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libsqlite3-*.dll)
fi
if [ "${PROJECT_ENABLE_TASN}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libtasn1.dll)
fi
if [ "${PROJECT_ENABLE_TESTING}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(
/mingw64/bin/libgtest*.dll
/mingw64/bin/libgmock*.dll
)
fi
if [ "${PROJECT_ENABLE_VORBIS}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libvorbis*.dll)
fi
if [ "${PROJECT_ENABLE_WXWIDGETS}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libwxm*.dll)
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/wxm*.dll)
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/lib/gcc_x64_dll/libwxm*.dll)
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/lib/gcc_x64_dll/wxm*.dll)
fi
if [ "${PROJECT_ENABLE_SDL}" == "ON" ] || [ "${PROJECT_ENABLE_SFML}" == "ON" ] ||
[ "${PROJECT_ENABLE_WXWIDGETS}" == "ON" ] || [ "${PROJECT_ENABLE_NANA}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(
/mingw64/bin/libOpenCL*.dll
/mingw64/bin/libopencl*.dll
/mingw64/bin/libva*.dll
/mingw64/bin/opengl*.dll
/mingw64/bin/vulkan*.dll
)
fi
if [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; then
if [ "${PROJECT_ENABLE_BACKWARD_CPP}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/msvcr90.dll)
fi
if [ "${PROJECT_ENABLE_CLI11}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libcli11*.dll)
fi
if [ "${PROJECT_ENABLE_FLAC}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libFLAC*.dll)
fi
if [ "${PROJECT_ENABLE_FMT}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libfmt*.dll)
fi
if [ "${PROJECT_ENABLE_FONTCONFIG}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(
/mingw64/bin/libexpat*.dll
/mingw64/bin/libfontconfig*.dll
)
fi
if [ "${PROJECT_ENABLE_FREETYPE2}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libfreetype*.dll)
fi
if [ "${PROJECT_ENABLE_CURL}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libcurl*.dll)
fi
if [ "${PROJECT_ENABLE_LIBJPEG_TURBO}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libjpeg*.dll)
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libturbo*.dll)
fi
if [ "${PROJECT_ENABLE_LIBSODIUM}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libsodium*.dll)
fi
if [ "${PROJECT_ENABLE_NUSPELL}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libnuspell*.dll)
fi
if [ "${PROJECT_ENABLE_OGG}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libogg*.dll)
fi
if [ "${PROJECT_ENABLE_OPENSSL}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(
/mingw64/bin/libssl*.dll
/mingw64/bin/libcrypt*.dll
)
fi
if [ "${PROJECT_ENABLE_OPENAL}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libopenal*.dll)
fi
if [ "${PROJECT_ENABLE_LIBPNG}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libpng*.dll)
fi
if [ "${PROJECT_ENABLE_NANA}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libnana*.dll)
fi
if [ "${PROJECT_ENABLE_PUGIXML}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libpugi*.dll)
fi
if [ "${PROJECT_ENABLE_ROCKSDB}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/librocksdb*.dll)
fi
@ -102,14 +159,6 @@ if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_STATIC_LINK}" == "OFF" ]; th
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libsecp256k1*.dll)
fi
if [ "${PROJECT_ENABLE_SDL}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/SDL*.dll)
fi
if [ "${PROJECT_ENABLE_SFML}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libsfml*.dll)
fi
if [ "${PROJECT_ENABLE_SPDLOG}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libspdlog*.dll)
fi
@ -117,21 +166,6 @@ if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_STATIC_LINK}" == "OFF" ]; th
if [ "${PROJECT_ENABLE_TPL}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libtiny-process*.dll)
fi
if [ "${PROJECT_ENABLE_VORBIS}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libvorbis*.dll)
fi
if [ "${PROJECT_ENABLE_WXWIDGETS}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libwxm*.dll)
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/wxm*.dll)
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/lib/gcc_x64_dll/libwxm*.dll)
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/lib/gcc_x64_dll/wxm*.dll)
fi
fi
if [ "${PROJECT_ENABLE_SFML}" == "ON" ] || [ "${PROJECT_ENABLE_WXWIDGETS}" == "ON" ]; then
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/opengl*.dll)
fi
rsync -av --progress ${PROJECT_EXTERNAL_BUILD_ROOT}/bin/*.dll "${PROJECT_DIST_DIR}/"
@ -151,6 +185,10 @@ if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_ENABLE_WINFSP}" == "ON" ]; t
fi
fi
if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_ENABLE_VLC}" == "ON" ]; then
rsync -av --progress ${PROJECT_3RD_PARTY_DIR}/vlc/ "${PROJECT_DIST_DIR}/vlc/"
fi
for PROJECT_DEPENDENCY in "${PROJECT_MINGW64_COPY_DEPENDENCIES[@]}"; do
rsync -av --progress ${PROJECT_DEPENDENCY} "${PROJECT_DIST_DIR}/"
done

View File

@ -25,6 +25,7 @@ pushd "${PROJECT_SOURCE_DIR}"
PROJECT_GIT_REV=$(git rev-parse --short HEAD)
. "${PROJECT_SCRIPTS_DIR}/versions.sh"
. "${PROJECT_SCRIPTS_DIR}/options.sh"
for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do
@ -40,6 +41,7 @@ done
PROJECT_APP_LIST=()
PROJECT_CMAKE_OPTS=""
PROJECT_ENABLE_WIN32_LONG_PATH_NAMES=OFF
PROJECT_IS_ALPINE=0
PROJECT_IS_ARM64=0
PROJECT_MINGW64_COPY_DEPENDENCIES=()
@ -73,6 +75,10 @@ fi
. "${PROJECT_SOURCE_DIR}/config.sh"
if [ "${PROJECT_IS_MINGW}" == "0" ]; then
PROJECT_ENABLE_WIN32_LONG_PATH_NAMES=OFF
fi
if [ "${PROJECT_ENABLE_SFML}" == "ON" ]; then
PROJECT_ENABLE_FLAC=ON
PROJECT_ENABLE_FONTCONFIG=ON
@ -123,7 +129,9 @@ if [ "${PROJECT_ENABLE_BOOST}" == "ON" ]; then
PROJECT_ENABLE_OPENSSL=ON
fi
if [ "${PROJECT_ENABLE_FONTCONFIG}" == "ON" ] || [ "${PROJECT_ENABLE_NANA}" == "ON" ] || [ "${PROJECT_ENABLE_WXWIDGETS}" == "ON" ]; then
if [ "${PROJECT_ENABLE_FONTCONFIG}" == "ON" ] || [ "${PROJECT_ENABLE_NANA}" == "ON" ] ||
[ "${PROJECT_ENABLE_SFML}" == "ON" ] || [ "${PROJECT_ENABLE_WXWIDGETS}" == "ON" ] ||
[ "${PROJECT_ENABLE_SDL}" == "ON" ]; then
PROJECT_ENABLE_LIBJPEG_TURBO=ON
PROJECT_ENABLE_LIBPNG=ON
fi
@ -132,8 +140,10 @@ if [ "${PROJECT_IS_MINGW}" == "1" ]; then
PROJECT_ENABLE_BACKWARD_CPP=OFF
fi
if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_IS_MINGW_UNIX}" != "1" ]; then
MSYS=winsymlinks:nativestrict
if [ "${PROJECT_ENABLE_LIBDSM}" == "ON" ]; then
PROJECT_ENABLE_LIBICONV=ON
PROJECT_ENABLE_LIBTASN=ON
PROJECT_ENABLE_OPENSSL=ON
fi
if [ "${PROJECT_CMAKE_BUILD_TYPE}" == "" ]; then
@ -147,30 +157,21 @@ elif [ "${PROJECT_CMAKE_BUILD_TYPE_LOWER}" == "debug" ]; then
PROJECT_CMAKE_BUILD_TYPE=Debug
fi
if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_IS_MINGW_UNIX}" != "1" ]; then
PROJECT_STATIC_LINK=OFF
fi
if [ "${PROJECT_STATIC_LINK}" == "ON" ]; then
PROJECT_BUILD_SHARED_LIBS=OFF
PROJECT_ENABLE_BACKWARD_CPP=OFF
PROJECT_LINK_TYPE=static
PROJECT_REQUIRE_ALPINE=ON
else
PROJECT_BUILD_SHARED_LIBS=ON
PROJECT_LINK_TYPE=shared
PROJECT_REQUIRE_ALPINE=OFF
fi
if [ -f "${PROJECT_SOURCE_DIR}/cmake/versions.cmake" ]; then
VERSIONS=($(sed -e s/\ /=/g -e s/set\(//g -e s/\)//g "${PROJECT_SOURCE_DIR}/cmake/versions.cmake"))
PROJECT_MINGW64_DOCKER_BUILD_ARGS=()
for VERSION in "${VERSIONS[@]}"; do
LOOKUP_NAME=$(echo ${VERSION} | sed s/_VERSION.*// | sed s/GTEST/TESTING/g)
ENABLE_NAME=PROJECT_ENABLE_${LOOKUP_NAME}
if [ "${!ENABLE_NAME}" != "OFF" ]; then
PROJECT_MINGW64_DOCKER_BUILD_ARGS+=("--build-arg ${VERSION}")
fi
done
PROJECT_MINGW64_DOCKER_BUILD_ARGS=${PROJECT_MINGW64_DOCKER_BUILD_ARGS[*]}
fi
PROJECT_BUILD_DIR=${PROJECT_SOURCE_DIR}/build/${PROJECT_CMAKE_BUILD_TYPE_LOWER}/${PROJECT_LINK_TYPE}
PROJECT_DIST_DIR=${PROJECT_SOURCE_DIR}/dist/${PROJECT_CMAKE_BUILD_TYPE_LOWER}/${PROJECT_LINK_TYPE}
@ -191,13 +192,13 @@ else
fi
PROJECT_DIST_DIR=${PROJECT_DIST_DIR}/${PROJECT_NAME}
PROJECT_EXTERNAL_BUILD_ROOT=${PROJECT_BUILD_DIR}/deps
PROJECT_SUPPORT_DIR=${PROJECT_SOURCE_DIR}/support
PROJECT_3RD_PARTY_DIR=${PROJECT_SUPPORT_DIR}/3rd_party
if [ "${PROJECT_ENABLE_OPENSSL}" == "ON" ]; then
if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; then
if [ "${PROJECT_IS_MINGW}" == "1" ]; then
OPENSSL_ROOT_DIR=/mingw64
else
OPENSSL_ROOT_DIR=${PROJECT_EXTERNAL_BUILD_ROOT}
@ -210,11 +211,20 @@ if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; th
PROJECT_CMAKE_OPTS="-DCMAKE_TOOLCHAIN_FILE=${PROJECT_TOOLCHAIN_FILE_CMAKE} ${PROJECT_CMAKE_OPTS}"
fi
if [ "${PROJECT_STATIC_LINK}" == "ON" ]; then
PROJECT_BUILD_SHARED_LIBS=OFF
PROJECT_ENABLE_BACKWARD_CPP=OFF
else
PROJECT_BUILD_SHARED_LIBS=ON
if [ -f "${PROJECT_SOURCE_DIR}/cmake/versions.cmake" ]; then
VERSIONS=($(sed -e s/\ /=/g -e s/set\(//g -e s/\)//g "${PROJECT_SOURCE_DIR}/cmake/versions.cmake"))
PROJECT_MINGW64_DOCKER_BUILD_ARGS=()
for VERSION in "${VERSIONS[@]}"; do
LOOKUP_NAME=$(echo ${VERSION} | sed s/_VERSION.*// | sed s/GTEST/TESTING/g)
ENABLE_NAME=PROJECT_ENABLE_${LOOKUP_NAME}
if [ "${!ENABLE_NAME}" != "OFF" ]; then
PROJECT_MINGW64_DOCKER_BUILD_ARGS+=("--build-arg ${VERSION}")
fi
done
PROJECT_MINGW64_DOCKER_BUILD_ARGS=${PROJECT_MINGW64_DOCKER_BUILD_ARGS[*]}
fi
PROJECT_CMAKE_OPTS="-DPROJECT_3RD_PARTY_DIR=${PROJECT_3RD_PARTY_DIR} ${PROJECT_CMAKE_OPTS}"
@ -223,6 +233,7 @@ PROJECT_CMAKE_OPTS="-DPROJECT_BUILD_DIR=${PROJECT_BUILD_DIR} ${PROJECT_CMAKE_OPT
PROJECT_CMAKE_OPTS="-DPROJECT_BUILD_SHARED_LIBS=${PROJECT_BUILD_SHARED_LIBS} ${PROJECT_CMAKE_OPTS}"
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_ENABLE_WIN32_LONG_PATH_NAMES=${PROJECT_ENABLE_WIN32_LONG_PATH_NAMES} ${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}"
@ -268,6 +279,10 @@ if [ "${PROJECT_IS_MINGW}" == "1" ]; then
PROJECT_APP_BINARY_EXT=.exe
fi
if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_IS_MINGW_UNIX}" != "1" ]; then
MSYS=winsymlinks:nativestrict
fi
export MSYS
export NUM_JOBS
export OPENSSL_ROOT_DIR
@ -288,6 +303,7 @@ export PROJECT_COMPANY_NAME
export PROJECT_COPYRIGHT
export PROJECT_DESC
export PROJECT_DIST_DIR
export PROJECT_ENABLE_WIN32_LONG_PATH_NAMES
export PROJECT_FILE_PART
export PROJECT_GIT_REV
export PROJECT_IS_ALPINE
@ -346,6 +362,9 @@ echo " Is MINGW on Unix: ${PROJECT_IS_MINGW_UNIX}"
echo " Is MINGW: ${PROJECT_IS_MINGW}"
echo " Job count: ${NUM_JOBS}"
echo " Link type: ${PROJECT_LINK_TYPE}"
if [ "${PROJECT_IS_MINGW}" == "1" ]; then
echo " Long path names: ${PROJECT_ENABLE_WIN32_LONG_PATH_NAMES}"
fi
echo " Meson toolchain file: ${PROJECT_TOOLCHAIN_FILE_MESON}"
if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; then
echo " MinGW docker build args: ${PROJECT_MINGW64_DOCKER_BUILD_ARGS}"

View File

@ -15,6 +15,8 @@ if [ -f "${PROJECT_SOURCE_DIR}/pre_build.sh" ]; then
"${PROJECT_SOURCE_DIR}/pre_build.sh"
fi
ln -sf "${PROJECT_BUILD_DIR}/build/compile_commands.json" "${PROJECT_SOURCE_DIR}/compile_commands.json"
pushd "${PROJECT_BUILD_DIR}"
cmake "${PROJECT_SOURCE_DIR}" \
-G"Unix Makefiles" \
@ -80,8 +82,6 @@ if [ "${PROJECT_IS_MINGW}" == "1" ]; then
. "${PROJECT_SCRIPTS_DIR}/copy_mingw64_deps.sh" "$1" "$2" "$3" "$4" "$5"
fi
ln -sf "${PROJECT_BUILD_DIR}/build/compile_commands.json" "${PROJECT_SOURCE_DIR}/compile_commands.json"
if [ -f "${PROJECT_SOURCE_DIR}/post_build.sh" ]; then
"${PROJECT_SOURCE_DIR}/post_build.sh"
fi

View File

@ -1,7 +1,6 @@
#!/bin/bash
PROJECT_LIBRARIES=(
BACKWARD_CPP
BOOST
CPP_HTTPLIB
CURL
@ -18,13 +17,12 @@ PROJECT_LIBRARIES=(
)
declare -A PROJECT_CLEANUP
PROJECT_CLEANUP[BACKWARD_CPP]="include/backward.hpp:src/backward.cpp"
PROJECT_CLEANUP[BOOST]="3rd_party/boost_*"
PROJECT_CLEANUP[CPP_HTTPLIB]="3rd_party/cpp-httplib-*"
PROJECT_CLEANUP[CURL]="3rd_party/curl-*"
PROJECT_CLEANUP[JSON]="3rd_party/json-*"
PROJECT_CLEANUP[LIBBITCOIN_SYSTEM_ON]="3rd_party/boost_1_85_*"
PROJECT_CLEANUP[LIBSODIUM]="3rd_party/libsodium*"
PROJECT_CLEANUP[LIBBITCOIN_SYSTEM_ON]="3rd_party/boost_${PROJECT_VERSIONS[BOOST_MAJOR]}_${PROJECT_VERSIONS[BOOST_MINOR]}_*"
PROJECT_CLEANUP[LIBSODIUM]="3rd_party/libsodium-*:3rd_party/libsodium*"
PROJECT_CLEANUP[OPENSSL]="3rd_party/openssl-*"
PROJECT_CLEANUP[PUGIXML]="3rd_party/pugixml-*"
PROJECT_CLEANUP[SPDLOG]="3rd_party/spdlog-*"

View File

@ -33,6 +33,154 @@ PROJECT_MSYS2_PACKAGE_LIST+=(
make
)
if [ "${PROJECT_ENABLE_BOOST}" == "ON" ]; then
if [ "${PROJECT_ENABLE_LIBBITCOIN_SYSTEM}" == "ON" ]; then
yes | pacman -Ry mingw64/mingw-w64-x86_64-boost
else
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-boost
)
fi
fi
if [ "${PROJECT_ENABLE_CLI11}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-cli11
)
fi
if [ "${PROJECT_ENABLE_FLAC}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-flac
)
fi
if [ "${PROJECT_ENABLE_FONTCONFIG}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-fontconfig
)
fi
if [ "${PROJECT_ENABLE_FREETYPE2}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-freetype
)
fi
if [ "${PROJECT_ENABLE_LIBDSM}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-libdsm
)
fi
if [ "${PROJECT_ENABLE_LIBEVENT}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-libevent
)
fi
if [ "${PROJECT_ENABLE_LIBICONV}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-libiconv
)
fi
if [ "${PROJECT_ENABLE_LIBJPEG_TURBO}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-libjpeg-turbo
)
fi
if [ "${PROJECT_ENABLE_LIBPNG}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-libpng
)
fi
if [ "${PROJECT_ENABLE_LIBSODIUM}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-libsodium
)
fi
if [ "${PROJECT_ENABLE_LIBTASN}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-libtasn1
)
fi
if [ "${PROJECT_ENABLE_NANA}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-nana
)
fi
if [ "${PROJECT_ENABLE_NUSPELL}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-nuspell
)
fi
if [ "${PROJECT_ENABLE_OGG}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-libogg
)
fi
if [ "${PROJECT_ENABLE_OPENAL}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-openal
)
fi
if [ "${PROJECT_ENABLE_OPENSSL}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-openssl
)
fi
if [ "${PROJECT_ENABLE_PUGIXML}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-pugixml
)
fi
if [ "${PROJECT_ENABLE_SDL}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-SDL2
)
fi
if [ "${PROJECT_ENABLE_SFML}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-sfml
)
fi
if [ "${PROJECT_ENABLE_SQLITE}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-sqlite3
)
fi
if [ "${PROJECT_ENABLE_TESTING}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-gtest
)
fi
if [ "${PROJECT_ENABLE_VORBIS}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-libvorbis
)
fi
if [ "${PROJECT_ENABLE_WXWIDGETS}" == "ON" ]; then
PROJECT_MSYS2_PACKAGE_LIST+=(
mingw64/mingw-w64-x86_64-wxwidgets3.2-msw
)
fi
pacman -Sqyuu --noconfirm &&
pacman -S --noconfirm --needed --disable-download-timeout msys2-keyring &&
pacman -S --noconfirm --needed --disable-download-timeout \

101
scripts/versions.sh Executable file
View File

@ -0,0 +1,101 @@
#!/bin/bash
declare -A PROJECT_VERSIONS
PROJECT_VERSIONS[BINUTILS]="2.41"
PROJECT_VERSIONS[BOOST2_MAJOR]="1"
PROJECT_VERSIONS[BOOST2_MINOR]="76"
PROJECT_VERSIONS[BOOST2_PATCH]="0"
PROJECT_VERSIONS[BOOST_MAJOR]="1"
PROJECT_VERSIONS[BOOST_MINOR]="85"
PROJECT_VERSIONS[BOOST_PATCH]="0"
PROJECT_VERSIONS[CLI11]="2.4.2"
PROJECT_VERSIONS[CPP_HTTPLIB]="0.16.3"
PROJECT_VERSIONS[CURL]="8.9.1"
PROJECT_VERSIONS[CURL2]="8_9_1"
PROJECT_VERSIONS[CXXOPTS]="3.2.1"
PROJECT_VERSIONS[DTL]="2.01"
PROJECT_VERSIONS[EXPAT]="2.6.2"
PROJECT_VERSIONS[EXPAT2]="2_6_2"
PROJECT_VERSIONS[FLAC]="1.4.3"
PROJECT_VERSIONS[FMT]="11.0.2"
PROJECT_VERSIONS[FONTCONFIG]="2.15.0"
PROJECT_VERSIONS[FREETYPE2]="2.13.3"
PROJECT_VERSIONS[GCC]="14.2.0"
PROJECT_VERSIONS[GTEST]="1.15.2"
PROJECT_VERSIONS[GTKMM]="3.0"
PROJECT_VERSIONS[ICU]="75-1"
PROJECT_VERSIONS[JSON]="3.11.3"
PROJECT_VERSIONS[LIBBITCOIN_SYSTEM]="3.8.0"
PROJECT_VERSIONS[LIBDSM]="0.4.3"
PROJECT_VERSIONS[LIBEVENT]="2.1.12"
PROJECT_VERSIONS[LIBICONV]="1.17"
PROJECT_VERSIONS[LIBJPEG_TURBO]="3.0.3"
PROJECT_VERSIONS[LIBPNG]="1.6.43"
PROJECT_VERSIONS[LIBSODIUM]="1.0.20"
PROJECT_VERSIONS[LIBTASN]="4.19.0"
PROJECT_VERSIONS[MESA]="23.3.3"
PROJECT_VERSIONS[MINGW]="11.0.1"
PROJECT_VERSIONS[NANA]="1.7.4"
PROJECT_VERSIONS[NUSPELL]="5.1.6"
PROJECT_VERSIONS[OGG]="1.3.5"
PROJECT_VERSIONS[OPENAL]="1.23.1"
PROJECT_VERSIONS[OPENSSL]="3.3.1"
PROJECT_VERSIONS[PKG_CONFIG]="0.29.2"
PROJECT_VERSIONS[PUGIXML]="1.14"
PROJECT_VERSIONS[ROCKSDB]="9.5.2"
PROJECT_VERSIONS[SDL]="2.30.6"
PROJECT_VERSIONS[SECP256K1]="0.1.0.20"
PROJECT_VERSIONS[SFML]="2.6.1"
PROJECT_VERSIONS[SPDLOG]="1.14.1"
PROJECT_VERSIONS[SQLITE]="3460100"
PROJECT_VERSIONS[SQLITE2]="3.46.1"
PROJECT_VERSIONS[STDUUID]="1.2.3"
PROJECT_VERSIONS[VLC]="3.0"
PROJECT_VERSIONS[VORBIS]="1.3.7"
PROJECT_VERSIONS[WXWIDGETS]="3.2.5"
PROJECT_VERSIONS[ZLIB]="1.3.1"
export PROJECT_VERSIONS
declare -A PROJECT_DOWNLOADS
PROJECT_DOWNLOADS[BINUTILS]="https://ftp.gnu.org/gnu/binutils/binutils-${PROJECT_VERSIONS[BINUTILS]}.tar.xz;binutils-${PROJECT_VERSIONS[BINUTILS]}.tar.xz;3rd_party/mingw64"
PROJECT_DOWNLOADS[BOOST2]="https://archives.boost.io/release/${PROJECT_VERSIONS[BOOST2_MAJOR]}.${PROJECT_VERSIONS[BOOST2_MINOR]}.${PROJECT_VERSIONS[BOOST2_PATCH]}/source/boost_${PROJECT_VERSIONS[BOOST2_MAJOR]}_${PROJECT_VERSIONS[BOOST2_MINOR]}_${PROJECT_VERSIONS[BOOST2_PATCH]}.tar.gz;boost_${PROJECT_VERSIONS[BOOST2_MAJOR]}_${PROJECT_VERSIONS[BOOST2_MINOR]}_${PROJECT_VERSIONS[BOOST2_PATCH]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[BOOST]="https://archives.boost.io/release/${PROJECT_VERSIONS[BOOST_MAJOR]}.${PROJECT_VERSIONS[BOOST_MINOR]}.${PROJECT_VERSIONS[BOOST_PATCH]}/source/boost_${PROJECT_VERSIONS[BOOST_MAJOR]}_${PROJECT_VERSIONS[BOOST_MINOR]}_${PROJECT_VERSIONS[BOOST_PATCH]}.tar.gz;boost_${PROJECT_VERSIONS[BOOST_MAJOR]}_${PROJECT_VERSIONS[BOOST_MINOR]}_${PROJECT_VERSIONS[BOOST_PATCH]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[CLI11]="https://github.com/CLIUtils/CLI11/archive/refs/tags/v${PROJECT_VERSIONS[CLI11]}.tar.gz;CLI11-${PROJECT_VERSIONS[CLI11]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[CPP_HTTPLIB]="https://github.com/yhirose/cpp-httplib/archive/refs/tags/v${PROJECT_VERSIONS[CPP_HTTPLIB]}.tar.gz;cpp-httplib-${PROJECT_VERSIONS[CPP_HTTPLIB]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[CURL]="https://github.com/curl/curl/archive/refs/tags/curl-${PROJECT_VERSIONS[CURL2]}.tar.gz;curl-${PROJECT_VERSIONS[CURL]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[CXXOPTS]="https://github.com/jarro2783/cxxopts/archive/refs/tags/v${PROJECT_VERSIONS[CXXOPTS]}.tar.gz;cxxopts-v${PROJECT_VERSIONS[CXXOPTS]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[EXPAT]="https://github.com/libexpat/libexpat/archive/refs/tags/R_${PROJECT_VERSIONS[EXPAT2]}.tar.gz;expat-${PROJECT_VERSIONS[EXPAT]}.tar.gz;3rd_party/mingw64"
PROJECT_DOWNLOADS[FLAC]="https://github.com/xiph/flac/archive/refs/tags/${PROJECT_VERSIONS[FLAC]}.tar.gz;flac-${PROJECT_VERSIONS[FLAC]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[FMT]="https://github.com/fmtlib/fmt/archive/refs/tags/${PROJECT_VERSIONS[FMT]}.tar.gz;fmt-${PROJECT_VERSIONS[FMT]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[FONTCONFIG]="https://www.freedesktop.org/software/fontconfig/release/fontconfig-${PROJECT_VERSIONS[FONTCONFIG]}.tar.gz;fontconfig-${PROJECT_VERSIONS[FONTCONFIG]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[FREETYPE2]="https://download.savannah.gnu.org/releases/freetype/freetype-${PROJECT_VERSIONS[FREETYPE2]}.tar.gz;freetype-${PROJECT_VERSIONS[FREETYPE2]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[GCC]="https://ftp.gnu.org/gnu/gcc/gcc-${PROJECT_VERSIONS[GCC]}/gcc-${PROJECT_VERSIONS[GCC]}.tar.gz;gcc-${PROJECT_VERSIONS[GCC]}.tar.gz;3rd_party/mingw64"
PROJECT_DOWNLOADS[GTEST]="https://github.com/google/googletest/archive/refs/tags/v${PROJECT_VERSIONS[GTEST]}.tar.gz;googletest-${PROJECT_VERSIONS[GTEST]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[ICU]="https://github.com/unicode-org/icu/archive/refs/tags/release-${PROJECT_VERSIONS[ICU]}.tar.gz;icu-release-${PROJECT_VERSIONS[ICU]}.tar.gz;3rd_party/mingw64"
PROJECT_DOWNLOADS[JSON]="https://github.com/nlohmann/json/archive/refs/tags/v${PROJECT_VERSIONS[JSON]}.tar.gz;json-${PROJECT_VERSIONS[JSON]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[LIBDSM]="https://github.com/videolabs/libdsm/archive/refs/tags/v${PROJECT_VERSIONS[LIBDSM]}.tar.gz;libdsm-${PROJECT_VERSIONS[LIBDSM]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[LIBEVENT]="https://github.com/libevent/libevent/archive/refs/tags/release-${PROJECT_VERSIONS[LIBEVENT]}-stable.tar.gz;libevent-${PROJECT_VERSIONS[LIBEVENT]}-stable.tar.gz;3rd_party"
PROJECT_DOWNLOADS[LIBICONV]="https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${PROJECT_VERSIONS[LIBICONV]}.tar.gz;libiconv-${PROJECT_VERSIONS[LIBICONV]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[LIBJPEG_TURBO]="https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/tags/${PROJECT_VERSIONS[LIBJPEG_TURBO]}.tar.gz;libjpeg_turbo-${PROJECT_VERSIONS[LIBJPEG_TURBO]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[LIBPNG]="https://github.com/pnggroup/libpng/archive/refs/tags/v${PROJECT_VERSIONS[LIBPNG]}.tar.gz;libpng-v${PROJECT_VERSIONS[LIBPNG]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[LIBSODIUM]="https://github.com/jedisct1/libsodium/archive/refs/tags/${PROJECT_VERSIONS[LIBSODIUM]}-RELEASE.tar.gz;libsodium-${PROJECT_VERSIONS[LIBSODIUM]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[LIBTASN]="https://ftp.gnu.org/gnu/libtasn1/libtasn1-${PROJECT_VERSIONS[LIBTASN]}.tar.gz;libtasn1-${PROJECT_VERSIONS[LIBTASN]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[MINGW]="https://phoenixnap.dl.sourceforge.net/project/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-v${PROJECT_VERSIONS[MINGW]}.tar.bz2;mingw-w64-v${PROJECT_VERSIONS[MINGW]}.tar.bz2;3rd_party/mingw64"
PROJECT_DOWNLOADS[NANA]="https://github.com/cnjinhao/nana/archive/refs/tags/v${PROJECT_VERSIONS[NANA]}.tar.gz;nana-v${PROJECT_VERSIONS[NANA]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[NUSPELL]="https://github.com/nuspell/nuspell/archive/refs/tags/v${PROJECT_VERSIONS[NUSPELL]}.tar.gz;nuspell-v${PROJECT_VERSIONS[NUSPELL]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[OGG]="https://github.com/xiph/ogg/releases/download/v${PROJECT_VERSIONS[OGG]}/libogg-${PROJECT_VERSIONS[OGG]}.tar.gz;ogg-v${PROJECT_VERSIONS[OGG]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[OPENAL]="https://github.com/kcat/openal-soft/archive/refs/tags/${PROJECT_VERSIONS[OPENAL]}.tar.gz;openal-${PROJECT_VERSIONS[OPENAL]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[OPENSSL]="https://github.com/openssl/openssl/releases/download/openssl-${PROJECT_VERSIONS[OPENSSL]}/openssl-${PROJECT_VERSIONS[OPENSSL]}.tar.gz;openssl-${PROJECT_VERSIONS[OPENSSL]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[PKG_CONFIG]="https://pkgconfig.freedesktop.org/releases/pkg-config-${PROJECT_VERSIONS[PKG_CONFIG]}.tar.gz;pkg-config-${PROJECT_VERSIONS[PKG_CONFIG]}.tar.gz;3rd_party/mingw64"
PROJECT_DOWNLOADS[PUGIXML]="https://github.com/zeux/pugixml/releases/download/v${PROJECT_VERSIONS[PUGIXML]}/pugixml-${PROJECT_VERSIONS[PUGIXML]}.tar.gz;pugixml-${PROJECT_VERSIONS[PUGIXML]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[ROCKSDB]="https://github.com/facebook/rocksdb/archive/refs/tags/v${PROJECT_VERSIONS[ROCKSDB]}.tar.gz;rocksdb-${PROJECT_VERSIONS[ROCKSDB]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[SDL]="https://github.com/libsdl-org/SDL/archive/refs/tags/release-${PROJECT_VERSIONS[SDL]}.tar.gz;sdl-${PROJECT_VERSIONS[SDL]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[SECP256K1]="https://github.com/libbitcoin/secp256k1/archive/refs/tags/v${PROJECT_VERSIONS[SECP256K1]}.tar.gz;secp256k1-${PROJECT_VERSIONS[SECP256K1]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[SFML]="https://github.com/SFML/SFML/archive/refs/tags/${PROJECT_VERSIONS[SFML]}.tar.gz;SFML-${PROJECT_VERSIONS[SFML]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[SPDLOG]="https://github.com/gabime/spdlog/archive/refs/tags/v${PROJECT_VERSIONS[SPDLOG]}.tar.gz;spdlog-${PROJECT_VERSIONS[SPDLOG]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[SQLITE]="https://www.sqlite.org/2024/sqlite-amalgamation-${PROJECT_VERSIONS[SQLITE]}.zip;sqlite-amalgamation-${PROJECT_VERSIONS[SQLITE]}.zip;3rd_party"
PROJECT_DOWNLOADS[STDUUID]="https://github.com/mariusbancila/stduuid/archive/refs/tags/v${PROJECT_VERSIONS[STDUUID]}.tar.gz;stduuid-${PROJECT_VERSIONS[STDUUID]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[VORBIS]="https://github.com/xiph/vorbis/archive/refs/tags/v${PROJECT_VERSIONS[VORBIS]}.tar.gz;vorbis-v${PROJECT_VERSIONS[VORBIS]}.tar.gz;3rd_party"
PROJECT_DOWNLOADS[WXWIDGETS]="https://github.com/wxWidgets/wxWidgets/releases/download/v${PROJECT_VERSIONS[WXWIDGETS]}/wxWidgets-${PROJECT_VERSIONS[WXWIDGETS]}.tar.bz2;wxWidgets-${PROJECT_VERSIONS[WXWIDGETS]}.tar.bz2;3rd_party"
PROJECT_DOWNLOADS[ZLIB]="https://github.com/madler/zlib/archive/refs/tags/v${PROJECT_VERSIONS[ZLIB]}.tar.gz;zlib-${PROJECT_VERSIONS[ZLIB]}.tar.gz;3rd_party/mingw64"
export PROJECT_DOWNLOADS