diff --git a/scripts/cleanup.sh b/scripts/cleanup.sh index f1aa7412..2ed8e9ff 100755 --- a/scripts/cleanup.sh +++ b/scripts/cleanup.sh @@ -8,141 +8,13 @@ SOURCE_DIR=$(realpath ${SOURCE_DIR}) . "${CURRENT_DIR}/env.sh" "$1" "$2" "$3" "$4" "$5" 1 1>/dev/null 2>&1 -if [ "${PROJECT_ENABLE_BOOST}" == "OFF" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/boost_* -fi - -if [ "${PROJECT_ENABLE_CLI11}" == "OFF" ] && [ "${PROJECT_KEEP_CLI11}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/CLI11-* -fi - -if [ "${PROJECT_ENABLE_CPP_HTTPLIB}" == "OFF" ] && [ "${PROJECT_KEEP_HTTPLIB}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/cpp-httplib-* -fi - -if [ "${PROJECT_ENABLE_CURL}" == "OFF" ] && [ "${PROJECT_KEEP_CURL}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/curl-* -fi - -if [ "${PROJECT_ENABLE_DTL}" == "OFF" ] && [ "${PROJECT_KEEP_DTL}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/dtl-* -fi - -if [ "${PROJECT_ENABLE_FLAC}" == "OFF" ] && [ "${PROJECT_KEEP_FLAC}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/flac-* -fi - -if [ "${PROJECT_ENABLE_FMT}" == "OFF" ] && [ "${PROJECT_KEEP_FMT}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/fmt-* -fi - -if [ "${PROJECT_ENABLE_FONTCONFIG}" == "OFF" ] && [ "${PROJECT_KEEP_FONTCONFIG}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/fontconfig-* -fi - -if [ "${PROJECT_ENABLE_FREETYPE2}" == "OFF" ] && [ "${PROJECT_KEEP_FREETYPE2}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/freetype-* -fi - -if [ "${PROJECT_ENABLE_FZF}" == "OFF" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/include/fzf.h - rm -f ${PROJECT_3RD_PARTY_DIR}/src/fzf.c -fi - -if [ "${PROJECT_ENABLE_JSON}" == "OFF" ] && [ "${PROJECT_KEEP_JSON}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/json-* -fi - -if [ "${PROJECT_ENABLE_LIBBITCOIN_SYSTEM}" == "OFF" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/boost_1_76_* - rm -f ${PROJECT_3RD_PARTY_DIR}/libbitcoin-system-* -fi - -if [ "${PROJECT_ENABLE_LIBBITCOIN_SYSTEM}" == "ON" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/boost_1_85_* -fi - -if [ "${PROJECT_ENABLE_LIBEVENT}" == "OFF" ] && [ "${PROJECT_KEEP_LIBEVENT}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/libevent-* -fi - -if [ "${PROJECT_ENABLE_LIBSODIUM}" == "OFF" ] && [ "${PROJECT_KEEP_LIBSODIUM}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/libsodium-* - rm -f ${PROJECT_3RD_PARTY_DIR}/libsodium_configure.sh -fi - -if [ "${PROJECT_ENABLE_NUSPELL}" == "OFF" ] && [ "${PROJECT_KEEP_NUSPELL}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/nuspell-* -fi - -if [ "${PROJECT_ENABLE_OGG}" == "OFF" ] && [ "${PROJECT_KEEP_OGG}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/ogg-* -fi - -if [ "${PROJECT_ENABLE_OPENAL}" == "OFF" ] && [ "${PROJECT_KEEP_OPENAL}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/openal-* -fi - -if [ "${PROJECT_ENABLE_OPENSSL}" == "OFF" ] && [ "${PROJECT_KEEP_OPENSSL}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/openssl-* -fi - -if [ "${PROJECT_ENABLE_PUGIXML}" == "OFF" ] && [ "${PROJECT_KEEP_PUGIXML}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/pugixml-* -fi - -if [ "${PROJECT_ENABLE_ROCKSDB}" == "OFF" ] && [ "${PROJECT_KEEP_ROCKSDB}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/rocksdb-* -fi - -if [ "${PROJECT_ENABLE_SAGO_PLATFORM_FOLDERS}" == "OFF" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/include/platform_folders.hpp - rm -f ${PROJECT_3RD_PARTY_DIR}/src/platform_folders.cpp -fi - -if [ "${PROJECT_ENABLE_SECP256K1}" == "OFF" ] && [ "${PROJECT_KEEP_SECP256K1}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/secp256k1-* -fi - -if [ "${PROJECT_ENABLE_SFML}" == "OFF" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/SFML-* - rm -f ${PROJECT_3RD_PARTY_DIR}/include/RoundedRectangleShape.hpp - rm -f ${PROJECT_3RD_PARTY_DIR}/include/Text2.hpp - rm -f ${PROJECT_3RD_PARTY_DIR}/src/RoundedRectangleShape.cpp - rm -f ${PROJECT_3RD_PARTY_DIR}/src/Text2.cpp - rm -f ${PROJECT_3RD_PARTY_DIR}/SFML_patch.sh -fi - -if [ "${PROJECT_ENABLE_SPDLOG}" == "OFF" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/spdlog-* -fi - -if [ "${PROJECT_ENABLE_SQLITE}" == "OFF" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/sqlite-* -fi - -if [ "${PROJECT_ENABLE_STDUUID}" == "OFF" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/stduuid-* -fi - -if [ "${PROJECT_ENABLE_TESTING}" == "OFF" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/googletest-* -fi - -if [ "${PROJECT_ENABLE_TPL}" == "OFF" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/tiny-process-library* -fi - -if [ "${PROJECT_ENABLE_VORBIS}" == "OFF" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/vorbis-* - rm -f ${PROJECT_3RD_PARTY_DIR}/vorbis_cmakelists_txt.patch - rm -f ${PROJECT_3RD_PARTY_DIR}/vorbis_patch.sh -fi - -if [ "${PROJECT_ENABLE_WINFSP}" == "OFF" ]; then - rm -rf ${PROJECT_3RD_PARTY_DIR}/winfsp-* -fi - -if [ "${PROJECT_ENABLE_WXWIDGETS}" == "OFF" ] && [ "${PROJECT_KEEP_WXWIDGETS}" != "1" ]; then - rm -f ${PROJECT_3RD_PARTY_DIR}/wxWidgets-* -fi +for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do + ENABLE_NAME=PROJECT_ENABLE_${PROJECT_LIBRARY} + KEEP_NAME=PROJECT_KEEP_${PROJECT_LIBRARY} + if [ ${!ENABLE_NAME} == "OFF" ] && [ ${!KEEP_NAME} != "1" ]; then + CLEANUP_LIST=(${PROJECT_CLEANUP[${PROJECT_LIBRARY}]//:/ }) + for CLEANUP_ITEM in "${CLEANUP_LIST[@]}"; do + rm -r support/3rd_party/${CLEANUP_ITEM} + done + fi +done diff --git a/scripts/env.sh b/scripts/env.sh index 5910f22f..2f67b940 100755 --- a/scripts/env.sh +++ b/scripts/env.sh @@ -24,39 +24,18 @@ if [[ -z "${NUM_JOBS}" ]]; then fi fi -PROJECT_ENABLE_BOOST=OFF -PROJECT_ENABLE_CLI11=OFF -PROJECT_ENABLE_CPP_HTTPLIB=OFF -PROJECT_ENABLE_CURL=OFF -PROJECT_ENABLE_DTL=OFF -PROJECT_ENABLE_FLAC=OFF -PROJECT_ENABLE_FMT=OFF -PROJECT_ENABLE_FONTCONFIG=OFF -PROJECT_ENABLE_FREETYPE2=OFF -PROJECT_ENABLE_FUSE=OFF -PROJECT_ENABLE_FZF=OFF -PROJECT_ENABLE_GTKMM=OFF -PROJECT_ENABLE_JSON=OFF -PROJECT_ENABLE_LIBBITCOIN_SYSTEM=OFF -PROJECT_ENABLE_LIBEVENT=OFF -PROJECT_ENABLE_LIBSODIUM=OFF -PROJECT_ENABLE_NUSPELL=OFF -PROJECT_ENABLE_OGG=OFF -PROJECT_ENABLE_OPENAL=OFF -PROJECT_ENABLE_OPENSSL=OFF -PROJECT_ENABLE_PUGIXML=OFF -PROJECT_ENABLE_ROCKSDB=OFF -PROJECT_ENABLE_SAGO_PLATFORM_FOLDERS=OFF -PROJECT_ENABLE_SECP256K1=OFF -PROJECT_ENABLE_SFML=OFF -PROJECT_ENABLE_SPDLOG=OFF -PROJECT_ENABLE_SQLITE=OFF -PROJECT_ENABLE_STDUUID=OFF -PROJECT_ENABLE_TESTING=OFF -PROJECT_ENABLE_TPL=OFF -PROJECT_ENABLE_VORBIS=OFF -PROJECT_ENABLE_WINFSP=OFF -PROJECT_ENABLE_WXWIDGETS=OFF +. "${CURRENT_DIR}/options.sh" + +for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do + ENABLE_NAME=PROJECT_ENABLE_${PROJECT_LIBRARY} + KEEP_NAME=PROJECT_KEEP_${PROJECT_LIBRARY} + if [ "${PROJECT_LIBRARY}" == "TESTING" ]; then + export ${ENABLE_NAME}=ON + else + export ${ENABLE_NAME}=OFF + fi + export ${KEEP_NAME}=0 +done PROJECT_APP_LIST=() PROJECT_CMAKE_OPTS="" @@ -223,39 +202,6 @@ PROJECT_CMAKE_OPTS="-DPROJECT_BUILD_ARCH=${PROJECT_BUILD_ARCH} ${PROJECT_CMAKE_O PROJECT_CMAKE_OPTS="-DPROJECT_BUILD_DIR=${PROJECT_BUILD_DIR} ${PROJECT_CMAKE_OPTS}" 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_ENABLE_BOOST=${PROJECT_ENABLE_BOOST} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_CLI11=${PROJECT_ENABLE_CLI11} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_CPP_HTTPLIB=${PROJECT_ENABLE_CPP_HTTPLIB} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_CURL=${PROJECT_ENABLE_CURL} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_DTL=${PROJECT_ENABLE_DTL} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_FLAC=${PROJECT_ENABLE_FLAC} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_FMT=${PROJECT_ENABLE_FMT} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_FONTCONFIG=${PROJECT_ENABLE_FONTCONFIG} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_FREETYPE2=${PROJECT_ENABLE_FREETYPE2} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_FUSE=${PROJECT_ENABLE_FUSE} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_FZF=${PROJECT_ENABLE_FZF} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_GTKMM=${PROJECT_ENABLE_GTKMM} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_JSON=${PROJECT_ENABLE_JSON} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_LIBBITCOIN_SYSTEM=${PROJECT_ENABLE_LIBBITCOIN_SYSTEM} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_LIBEVENT=${PROJECT_ENABLE_LIBEVENT} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_LIBSODIUM=${PROJECT_ENABLE_LIBSODIUM} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_NUSPELL=${PROJECT_ENABLE_NUSPELL} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_OGG=${PROJECT_ENABLE_OGG} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_OPENAL=${PROJECT_ENABLE_OPENAL} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_OPENSSL=${PROJECT_ENABLE_OPENSSL} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_PUGIXML=${PROJECT_ENABLE_PUGIXML} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_ROCKSDB=${PROJECT_ENABLE_ROCKSDB} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_SAGO_PLATFORM_FOLDERS=${PROJECT_ENABLE_SAGO_PLATFORM_FOLDERS} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_SECP256K1=${PROJECT_ENABLE_SECP256K1} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_SFML=${PROJECT_ENABLE_SFML} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_SPDLOG=${PROJECT_ENABLE_SPDLOG} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_SQLITE=${PROJECT_ENABLE_SQLITE} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_STDUUID=${PROJECT_ENABLE_STDUUID} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_TESTING=${PROJECT_ENABLE_TESTING} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_TPL=${PROJECT_ENABLE_TPL} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_VORBIS=${PROJECT_ENABLE_VORBIS} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_WINFSP=${PROJECT_ENABLE_WINFSP} ${PROJECT_CMAKE_OPTS}" -PROJECT_CMAKE_OPTS="-DPROJECT_ENABLE_WXWIDGETS=${PROJECT_ENABLE_WXWIDGETS} ${PROJECT_CMAKE_OPTS}" PROJECT_CMAKE_OPTS="-DPROJECT_EXTERNAL_BUILD_ROOT=${PROJECT_EXTERNAL_BUILD_ROOT} ${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}" @@ -267,6 +213,11 @@ PROJECT_CMAKE_OPTS="-DPROJECT_STATIC_LINK=${PROJECT_STATIC_LINK} ${PROJECT_CMAKE 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}" +for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do + ENABLE_NAME=PROJECT_ENABLE_${PROJECT_LIBRARY} + PROJECT_CMAKE_OPTS="${PROJECT_CMAKE_OPTS} -D${ENABLE_NAME}=${!ENABLE_NAME}" +done + PKG_CONFIG_PATH="${PROJECT_EXTERNAL_BUILD_ROOT}/lib/pkgconfig:${PROJECT_EXTERNAL_BUILD_ROOT}/lib64/pkgconfig:${PROJECT_EXTERNAL_BUILD_ROOT}/shared/pkgconfig:${PKG_CONFIG_PATH}" if [ "${DISABLE_CREATE_DIRS}" != "1" ]; then @@ -292,41 +243,6 @@ export PROJECT_CMAKE_BUILD_TYPE export PROJECT_CMAKE_BUILD_TYPE_LOWER export PROJECT_CMAKE_OPTS export PROJECT_DIST_DIR -export PROJECT_ENABLE_BOOST -export PROJECT_ENABLE_CLI11 -export PROJECT_ENABLE_CPP_HTTPLIB -export PROJECT_ENABLE_CURL -export PROJECT_ENABLE_DTL -export PROJECT_ENABLE_FLAC -export PROJECT_ENABLE_FMT -export PROJECT_ENABLE_FONTCONFIG -export PROJECT_ENABLE_FREETYPE2 -export PROJECT_ENABLE_FUSE -export PROJECT_ENABLE_FUSEOFF -export PROJECT_ENABLE_FZF -export PROJECT_ENABLE_GTKMM -export PROJECT_ENABLE_JSON -export PROJECT_ENABLE_LIBBITCOIN_SYSTEM -export PROJECT_ENABLE_LIBEVENT -export PROJECT_ENABLE_LIBSODIUM -export PROJECT_ENABLE_NUSPELL -export PROJECT_ENABLE_OGG -export PROJECT_ENABLE_OPENAL -export PROJECT_ENABLE_OPENSSL -export PROJECT_ENABLE_PUGIXML -export PROJECT_ENABLE_ROCKSDB -export PROJECT_ENABLE_SAGO_PLATFORM_FOLDERS -export PROJECT_ENABLE_SECP256K1 -export PROJECT_ENABLE_SFML -export PROJECT_ENABLE_SPDLOG -export PROJECT_ENABLE_SQLITE -export PROJECT_ENABLE_STDUUID -export PROJECT_ENABLE_TESTING -export PROJECT_ENABLE_TPL -export PROJECT_ENABLE_VORBIS -export PROJECT_ENABLE_WINFSP -export PROJECT_ENABLE_WXWIDGETS -export PROJECT_EXTERNAL_BUILD_ROOT export PROJECT_IS_ALPINE export PROJECT_IS_ARM64 export PROJECT_IS_MINGW @@ -341,64 +257,44 @@ export PROJECT_TOOLCHAIN_FILE_CMAKE export PROJECT_TOOLCHAIN_FILE_MESON export SOURCE_DIR +for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do + ENABLE_NAME=PROJECT_ENABLE_${PROJECT_LIBRARY} + KEEP_NAME=PROJECT_KEEP_${PROJECT_LIBRARY} + export ${ENABLE_NAME} + export ${KEEP_NAME} +done + echo "-=[Settings]=-" -echo " App list: ${PROJECT_APP_LIST[*]}" -echo " Build arch: ${PROJECT_BUILD_ARCH}" -echo " Build clean: ${PROJECT_BUILD_CLEAN}" -echo " Build dir: ${PROJECT_BUILD_DIR}" -echo " Cmake Build type: ${PROJECT_CMAKE_BUILD_TYPE}" -echo " CMake options: -G\"Unix Makefiles\" ${PROJECT_CMAKE_OPTS}" -echo " CMake toolchain file: ${PROJECT_TOOLCHAIN_FILE_CMAKE}" -echo " Dist dir: ${PROJECT_DIST_DIR}" -echo " External build root: ${PROJECT_EXTERNAL_BUILD_ROOT}" -echo " Is Alpine: ${PROJECT_IS_ALPINE}" -echo " Is ARM64: ${PROJECT_IS_ARM64}" -echo " Is MINGW: ${PROJECT_IS_MINGW}" -echo " Is MINGW on Unix: ${PROJECT_IS_MINGW_UNIX}" -echo " Job count: ${NUM_JOBS}" -echo " Link type: ${PROJECT_LINK_TYPE}" -echo " Meson toolchain file: ${PROJECT_TOOLCHAIN_FILE_MESON}" +echo " App list: ${PROJECT_APP_LIST[*]}" +echo " Build arch: ${PROJECT_BUILD_ARCH}" +echo " Build clean: ${PROJECT_BUILD_CLEAN}" +echo " Build dir: ${PROJECT_BUILD_DIR}" +echo " Build shared libraries: ${PROJECT_BUILD_SHARED_LIBS}" +echo " CMake options: -G\"Unix Makefiles\" ${PROJECT_CMAKE_OPTS}" +echo " CMake toolchain file: ${PROJECT_TOOLCHAIN_FILE_CMAKE}" +echo " Cmake Build type: ${PROJECT_CMAKE_BUILD_TYPE}" +echo " Dist dir: ${PROJECT_DIST_DIR}" +echo " External build root: ${PROJECT_EXTERNAL_BUILD_ROOT}" +echo " Is ARM64: ${PROJECT_IS_ARM64}" +echo " Is Alpine: ${PROJECT_IS_ALPINE}" +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}" +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}" + echo " MinGW docker build args: ${PROJECT_MINGW64_DOCKER_BUILD_ARGS}" fi -echo " OPENSSL_ROOT_DIR: ${OPENSSL_ROOT_DIR}" -echo " PATH: ${PATH}" -echo " PKG_CONFIG_PATH: ${PKG_CONFIG_PATH}" -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 " OPENSSL_ROOT_DIR: ${OPENSSL_ROOT_DIR}" +echo " PATH: ${PATH}" +echo " PKG_CONFIG_PATH: ${PKG_CONFIG_PATH}" +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 "-=[Libraries]=-" -echo " Build shared libraries: ${PROJECT_BUILD_SHARED_LIBS}" -echo " Enable boost: ${PROJECT_ENABLE_BOOST}" -echo " Enable CL11: ${PROJECT_ENABLE_CLI11}" -echo " Enable cpp-httplib: ${PROJECT_ENABLE_CPP_HTTPLIB}" -echo " Enable curl: ${PROJECT_ENABLE_CURL}" -echo " Enable DTL: ${PROJECT_ENABLE_DTL}" -echo " Enable FLAC: ${PROJECT_ENABLE_FLAC}" -echo " Enable fmt: ${PROJECT_ENABLE_FMT}" -echo " Enable fontconfig: ${PROJECT_ENABLE_FONTCONFIG}" -echo " Enable freetype2: ${PROJECT_ENABLE_FREETYPE2}" -echo " Enable FUSE: ${PROJECT_ENABLE_FUSE}" -echo " Enable fzf: ${PROJECT_ENABLE_FZF}" -echo " Enable gtkmm: ${PROJECT_ENABLE_GTKMM}" -echo " Enable JSON for Modern C++: ${PROJECT_ENABLE_JSON}" -echo " Enable libbitcoin-system: ${PROJECT_ENABLE_LIBBITCOIN_SYSTEM}" -echo " Enable libevent: ${PROJECT_ENABLE_LIBEVENT}" -echo " Enable libsodium: ${PROJECT_ENABLE_LIBSODIUM}" -echo " Enable nuspell: ${PROJECT_ENABLE_NUSPELL}" -echo " Enable OGG: ${PROJECT_ENABLE_OGG}" -echo " Enable OpenAL: ${PROJECT_ENABLE_OPENAL}" -echo " Enable OpenSSL: ${PROJECT_ENABLE_OPENSSL}" -echo "Enable Sago Platform Folders: ${PROJECT_ENABLE_SAGO_PLATFORM_FOLDERS}" -echo " Enable PugiXML: ${PROJECT_ENABLE_PUGIXML}" -echo " Enable RocksDB: ${PROJECT_ENABLE_ROCKSDB}" -echo " Enable secp256k1: ${PROJECT_ENABLE_SECP256K1}" -echo " Enable SFML: ${PROJECT_ENABLE_SFML}" -echo " Enable spdlog: ${PROJECT_ENABLE_SPDLOG}" -echo " Enable SQLite: ${PROJECT_ENABLE_SQLITE}" -echo " Enable stduuid: ${PROJECT_ENABLE_STDUUID}" -echo " Enable tiny process library: ${PROJECT_ENABLE_TPL}" -echo " Enable Vorbis: ${PROJECT_ENABLE_VORBIS}" -echo " Enable WinFSP: ${PROJECT_ENABLE_WINFSP}" -echo " Enable wxWidgets: ${PROJECT_ENABLE_WXWIDGETS}" +for PROJECT_LIBRARY in "${PROJECT_LIBRARIES[@]}"; do + ENABLE_NAME=PROJECT_ENABLE_${PROJECT_LIBRARY} + KEEP_NAME=PROJECT_KEEP_${PROJECT_LIBRARY} + echo " ${ENABLE_NAME}=${!ENABLE_NAME},${!KEEP_NAME}" +done diff --git a/scripts/options.sh b/scripts/options.sh new file mode 100755 index 00000000..20a8979d --- /dev/null +++ b/scripts/options.sh @@ -0,0 +1,71 @@ +#!/bin/bash + +PROJECT_LIBRARIES=( + BOOST + CLI11 + CPP_HTTPLIB + CURL + DTL + FLAC + FMT + FONTCONFIG + FREETYPE2 + FUSE + FZF + GTKMM + JSON + LIBBITCOIN_SYSTEM + LIBEVENT + LIBSODIUM + NUSPELL + OGG + OPENAL + OPENSSL + PUGIXML + ROCKSDB + SAGO_PLATFORM_FOLDERS + SECP256K1 + SFML + SPDLOG + SQLITE + STDUUID + TESTING + TPL + VORBIS + WINFSP + WXWIDGETS +) + +declare -A PROJECT_CLEANUP +PROJECT_CLEANUP[BOOST]="boost_*" +PROJECT_CLEANUP[CLI11]="CLI11-*" +PROJECT_CLEANUP[CPP_HTTPLIB]="cpp-httplib-*" +PROJECT_CLEANUP[CURL]="curl-*" +PROJECT_CLEANUP[DTL]="dtl-*" +PROJECT_CLEANUP[FLAC]="flac-*" +PROJECT_CLEANUP[FMT]="fmt-*" +PROJECT_CLEANUP[FONTCONFIG]="fontconfig-*" +PROJECT_CLEANUP[FREETYPE2]="freetype-*" +PROJECT_CLEANUP[FZF]="include/fzf.h:src/fzf.c" +PROJECT_CLEANUP[JSON]="json-*" +PROJECT_CLEANUP[LIBBITCOIN_SYSTEM]="boost_1_76_*:libbitcoin-system-*" +PROJECT_CLEANUP[LIBBITCOIN_SYSTEM_ON]="boost_1_85_*" +PROJECT_CLEANUP[LIBEVENT]="libevent-*" +PROJECT_CLEANUP[LIBSODIUM]="libsodium*" +PROJECT_CLEANUP[NUSPELL]="nuspell-*" +PROJECT_CLEANUP[OGG]="ogg-*" +PROJECT_CLEANUP[OPENAL]="openal-*" +PROJECT_CLEANUP[OPENSSL]="openssl-*" +PROJECT_CLEANUP[PUGIXML]="pugixml-*" +PROJECT_CLEANUP[ROCKSDB]="rocksdb-*" +PROJECT_CLEANUP[SAGO_PLATFORM_FOLDERS]="include/platform_folders.hpp:src/platform_folders.cpp" +PROJECT_CLEANUP[SECP256K1]="secp256k1-*" +PROJECT_CLEANUP[SFML]="SFML*:include/RoundedRectangleShape.hpp:include/Text2.hpp:src/RoundedRectangleShape.cpp:src/Text2.cpp" +PROJECT_CLEANUP[SPDLOG]="spdlog-*" +PROJECT_CLEANUP[SQLITE]="sqlite-*" +PROJECT_CLEANUP[STDUUID]="stduuid-*" +PROJECT_CLEANUP[TESTING]="googletest-*" +PROJECT_CLEANUP[TPL]="tiny-process-library*" +PROJECT_CLEANUP[VORBIS]="vorbis*" +PROJECT_CLEANUP[WINFSP]="winfsp-*" +PROJECT_CLEANUP[WXWIDGETS]="wxWidgets-*"