move to new build system
This commit is contained in:
8
scripts/cleanup.cmd
Normal file
8
scripts/cleanup.cmd
Normal file
@ -0,0 +1,8 @@
|
||||
@echo off
|
||||
|
||||
set ARG1=%~1
|
||||
set ARG2=%~2
|
||||
|
||||
pushd "%~dp0%"
|
||||
call mingw64 -no-start ./cleanup.sh "%ARG1%" "x86_64" "%ARG2%" 1 0
|
||||
popd
|
148
scripts/cleanup.sh
Executable file
148
scripts/cleanup.sh
Executable file
@ -0,0 +1,148 @@
|
||||
#!/bin/bash
|
||||
|
||||
CURRENT_DIR=$(dirname "$0")
|
||||
CURRENT_DIR=$(realpath ${CURRENT_DIR})
|
||||
|
||||
SOURCE_DIR=${CURRENT_DIR}/..
|
||||
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
|
133
scripts/copy_mingw64_deps.sh
Executable file
133
scripts/copy_mingw64_deps.sh
Executable file
@ -0,0 +1,133 @@
|
||||
#!/bin/bash
|
||||
|
||||
CURRENT_DIR=$(dirname "$0")
|
||||
CURRENT_DIR=$(realpath ${CURRENT_DIR})
|
||||
|
||||
PROJECT_MINGW64_COPY_DEPENDENCIES=()
|
||||
|
||||
. "${CURRENT_DIR}/env.sh" "$1" "$2" "$3" "$4" "$5" 1>/dev/null 2>&1
|
||||
|
||||
if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_STATIC_LINK}" == "OFF" ]; then
|
||||
mkdir -p "${PROJECT_DIST_DIR}"
|
||||
rm -f ${PROJECT_DIST_DIR}/*.dll
|
||||
|
||||
PROJECT_MINGW64_COPY_DEPENDENCIES+=(
|
||||
/mingw64/bin/libgcc_s_seh-1.dll
|
||||
/mingw64/bin/libstdc++-6.dll
|
||||
/mingw64/bin/libwinpthread-1.dll
|
||||
/mingw64/bin/libzlib1.dll
|
||||
/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_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
|
||||
/mingw64/bin/libpng*.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_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_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
|
||||
|
||||
if [ "${PROJECT_ENABLE_SECP256K1}" == "ON" ]; then
|
||||
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libsecp256k1*.dll)
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_ENABLE_SFML}" == "ON" ]; then
|
||||
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libsfml*.dll)
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_ENABLE_SFML}" == "ON" ]; then
|
||||
PROJECT_MINGW64_COPY_DEPENDENCIES+=(/mingw64/bin/libspdlog*.dll)
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
if [ "${PROJECT_ENABLE_WINFSP}" == "ON" ]; then
|
||||
if [ "${PROJECT_BUILD_ARCH}" == "x86_64" ]; then
|
||||
WINFSP_DLL_PART=x64
|
||||
fi
|
||||
|
||||
if [ "${WINFSP_DLL_PART}" != "" ]; then
|
||||
PROJECT_MINGW64_COPY_DEPENDENCIES+=(${PROJECT_3RD_PARTY_DIR}/winfsp-2.0/bin/winfsp-${WINFSP_DLL_PART}.dll)
|
||||
fi
|
||||
fi
|
||||
|
||||
for PROJECT_DEPENDENCY in "${PROJECT_MINGW64_COPY_DEPENDENCIES[@]}"; do
|
||||
rsync -av --progress ${PROJECT_DEPENDENCY} "${PROJECT_DIST_DIR}/"
|
||||
done
|
||||
|
||||
rsync -av --progress ${PROJECT_EXTERNAL_BUILD_ROOT}/bin/*.dll "${PROJECT_DIST_DIR}/"
|
||||
rsync -av --progress ${PROJECT_EXTERNAL_BUILD_ROOT}/lib/*.dll "${PROJECT_DIST_DIR}/"
|
||||
if [ "${PROJECT_ENABLE_WXWIDGETS}" == "ON" ]; then
|
||||
rsync -av --progress ${PROJECT_EXTERNAL_BUILD_ROOT}/lib/gcc_x64_dll/*.dll "${PROJECT_DIST_DIR}/"
|
||||
fi
|
||||
fi
|
@ -1,30 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
pushd "$(dirname "$0")"
|
||||
CURRENT_DIR=$(pwd)
|
||||
CURRENT_DIR=$(dirname "$0")
|
||||
CURRENT_DIR=$(realpath ${CURRENT_DIR})
|
||||
|
||||
pushd "${CURRENT_DIR}/.."
|
||||
. "${CURRENT_DIR}/env.sh" "$1" "$2" "$3" "$4" "$5" 1 1> /dev/null 2>&1
|
||||
|
||||
function create_containers() {
|
||||
TYPE=$1
|
||||
BUILD_TYPE=$1
|
||||
|
||||
for FILE in ./docker/${TYPE}/*; do
|
||||
DISTRONAME=$(basename ${FILE})
|
||||
CONTAINER_NAME=repertory_${DISTRONAME}
|
||||
TAG_NAME=repertory:${DISTRONAME}
|
||||
echo Creating Container [${CONTAINER_NAME}]
|
||||
for FILE in "${SOURCE_DIR}/docker/${BUILD_TYPE}/*"; do
|
||||
DOCKER_CREATE_ONLY=1
|
||||
DOCKER_NAME=$(basename ${FILE})
|
||||
DOCKER_TAG=${PROJECT_APP_NAME}:${DOCKER_NAME}
|
||||
|
||||
docker stop ${CONTAINER_NAME}
|
||||
docker rm ${CONTAINER_NAME}
|
||||
docker build -t ${TAG_NAME} - < docker/${TYPE}/${DISTRONAME}
|
||||
docker stop ${CONTAINER_NAME}
|
||||
docker rm ${CONTAINER_NAME}
|
||||
. "${CURRENT_DIR}/docker_common.sh"
|
||||
done
|
||||
}
|
||||
|
||||
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||
create_containers aarch64
|
||||
create_containers 64_bit
|
||||
|
||||
popd
|
||||
popd
|
||||
create_containers x86_64
|
||||
|
49
scripts/docker_common.sh
Executable file
49
scripts/docker_common.sh
Executable file
@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "${PROJECT_BUILD_ARCH}" == "aarch64" ]; then
|
||||
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||
fi
|
||||
|
||||
if [ "${DOCKER_NAME}" == "mingw64" ]; then
|
||||
APP_VERSION_BUILD_ARGS=${PROJECT_MINGW64_DOCKER_BUILD_ARGS}
|
||||
IS_MINGW=1
|
||||
IS_UNIX=1
|
||||
else
|
||||
IS_MINGW=0
|
||||
IS_UNIX=0
|
||||
fi
|
||||
|
||||
if [ "${DOCKER_CREATE_ONLY}" != "1" ]; then
|
||||
docker stop ${DOCKER_CONTAINER}
|
||||
docker rm ${DOCKER_CONTAINER}
|
||||
fi
|
||||
|
||||
pushd "${SOURCE_DIR}/support"
|
||||
cp -f ${SOURCE_DIR}/docker/${PROJECT_BUILD_ARCH}/${DOCKER_NAME} Dockerfile
|
||||
docker build ${APP_VERSION_BUILD_ARGS} \
|
||||
--build-arg NUM_JOBS=${NUM_JOBS} \
|
||||
-t ${DOCKER_TAG} . || exit 1
|
||||
rm Dockerfile
|
||||
popd
|
||||
|
||||
if [ "${DOCKER_CREATE_ONLY}" != "1" ]; then
|
||||
docker run -td \
|
||||
--env MY_NUM_JOBS=${NUM_JOBS} \
|
||||
--name ${DOCKER_CONTAINER} \
|
||||
-u $(id -u):$(id -g) \
|
||||
-v ${SOURCE_DIR}:${SOURCE_DIR}:rw,z \
|
||||
-w ${SOURCE_DIR} \
|
||||
${DOCKER_TAG} || exit 1
|
||||
|
||||
if [ "${DOCKER_SHELL}" == "1" ]; then
|
||||
docker exec -it ${DOCKER_CONTAINER} /bin/bash
|
||||
else
|
||||
docker exec \
|
||||
${DOCKER_CONTAINER} \
|
||||
/bin/bash -c \
|
||||
"${SOURCE_DIR}/scripts/make_common.sh \"${PROJECT_CMAKE_BUILD_TYPE}\" \"${PROJECT_BUILD_ARCH}\" \"${PROJECT_BUILD_CLEAN}\" ${IS_MINGW} ${IS_UNIX}" || exit 1
|
||||
fi
|
||||
|
||||
docker stop ${DOCKER_CONTAINER}
|
||||
docker rm ${DOCKER_CONTAINER}
|
||||
fi
|
404
scripts/env.sh
Executable file
404
scripts/env.sh
Executable file
@ -0,0 +1,404 @@
|
||||
#!/bin/bash
|
||||
|
||||
PROJECT_BUILD_ARCH=$1
|
||||
PROJECT_CMAKE_BUILD_TYPE=$2
|
||||
PROJECT_BUILD_CLEAN=$3
|
||||
PROJECT_IS_MINGW=$4
|
||||
PROJECT_IS_MINGW_UNIX=$5
|
||||
DISABLE_CREATE_DIRS=$6
|
||||
|
||||
CURRENT_DIR=$(dirname "$0")
|
||||
CURRENT_DIR=$(realpath ${CURRENT_DIR})
|
||||
|
||||
SOURCE_DIR=${CURRENT_DIR}/..
|
||||
SOURCE_DIR=$(realpath ${SOURCE_DIR})
|
||||
|
||||
NUM_JOBS=${MY_NUM_JOBS}
|
||||
if [[ -z "${NUM_JOBS}" ]]; then
|
||||
NUM_JOBS=$(getconf _NPROCESSORS_ONLN 2>/dev/null ||
|
||||
getconf NPROCESSORS_ONLN 2>/dev/null || echo 1)
|
||||
if [ "${NUM_JOBS}" -gt "4" ]; then
|
||||
NUM_JOBS=$(expr ${NUM_JOBS} - 2)
|
||||
elif [ "${NUM_JOBS}" -gt "1" ]; then
|
||||
NUM_JOBS=$(expr ${NUM_JOBS} - 1)
|
||||
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
|
||||
|
||||
PROJECT_APP_LIST=()
|
||||
PROJECT_CMAKE_OPTS=""
|
||||
PROJECT_IS_ALPINE=0
|
||||
PROJECT_MINGW64_COPY_DEPENDENCIES=()
|
||||
PROJECT_MSYS2_PACKAGE_LIST=()
|
||||
PROJECT_REQUIRE_ALPINE=OFF
|
||||
PROJECT_STATIC_LINK=OFF
|
||||
|
||||
if [ -f /etc/alpine-release ]; then
|
||||
PROJECT_IS_ALPINE=1
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_IS_MINGW}" == "" ]; then
|
||||
PROJECT_IS_MINGW=0
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_IS_MINGW_UNIX}" == "" ]; then
|
||||
PROJECT_IS_MINGW_UNIX=0
|
||||
fi
|
||||
|
||||
. "${SOURCE_DIR}/config.sh"
|
||||
|
||||
if [ "${PROJECT_ENABLE_SFML}" == "ON" ]; then
|
||||
PROJECT_ENABLE_FLAC=ON
|
||||
PROJECT_ENABLE_FONTCONFIG=ON
|
||||
PROJECT_ENABLE_FREETYPE2=ON
|
||||
PROJECT_ENABLE_OGG=ON
|
||||
PROJECT_ENABLE_OPENAL=ON
|
||||
PROJECT_ENABLE_VORBIS=ON
|
||||
PROJECT_STATIC_LINK=OFF
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_ENABLE_CPP_HTTPLIB}" == "ON" ]; then
|
||||
PROJECT_ENABLE_CURL=ON
|
||||
PROJECT_ENABLE_OPENSSL=ON
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_ENABLE_CURL}" == "ON" ]; then
|
||||
PROJECT_ENABLE_OPENSSL=ON
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_ENABLE_LIBBITCOIN_SYSTEM}" == "ON" ]; then
|
||||
PROJECT_ENABLE_BOOST=ON
|
||||
PROJECT_ENABLE_SECP256K1=ON
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_ENABLE_FONTCONFIG}" == "ON" ]; then
|
||||
PROJECT_ENABLE_FREETYPE2=ON
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_ENABLE_WXWIDGETS}" == "ON" ]; then
|
||||
PROJECT_ENABLE_CURL=ON
|
||||
PROJECT_STATIC_LINK=OFF
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_ENABLE_SPDLOG}" == "ON" ]; then
|
||||
PROJECT_ENABLE_FMT=OFF
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_ENABLE_VORBIS}" == "ON" ]; then
|
||||
PROJECT_ENABLE_OGG=ON
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_ENABLE_FLAC}" == "ON" ]; then
|
||||
PROJECT_ENABLE_OGG=ON
|
||||
PROJECT_ENABLE_VORBIS=ON
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_ENABLE_BOOST}" == "ON" ]; then
|
||||
PROJECT_ENABLE_OPENSSL=ON
|
||||
fi
|
||||
|
||||
PROJECT_IS_ARM64=0
|
||||
if [ "${PROJECT_BUILD_ARCH}" == "" ]; then
|
||||
PROJECT_BUILD_ARCH=x86_64
|
||||
elif [ "${PROJECT_BUILD_ARCH}" == "aarch64" ]; then
|
||||
PROJECT_IS_ARM64=1
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_IS_MINGW_UNIX}" != "1" ]; then
|
||||
MSYS=winsymlinks:nativestrict
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_CMAKE_BUILD_TYPE}" == "" ]; then
|
||||
PROJECT_CMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
fi
|
||||
|
||||
PROJECT_CMAKE_BUILD_TYPE_LOWER=$(echo "${PROJECT_CMAKE_BUILD_TYPE}" | tr '[:upper:]' '[:lower:]')
|
||||
if [ "${PROJECT_CMAKE_BUILD_TYPE_LOWER}" == "release" ]; then
|
||||
PROJECT_CMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
elif [ "${PROJECT_CMAKE_BUILD_TYPE_LOWER}" == "debug" ]; then
|
||||
PROJECT_CMAKE_BUILD_TYPE=Debug
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_STATIC_LINK}" == "ON" ]; then
|
||||
PROJECT_LINK_TYPE=static
|
||||
PROJECT_REQUIRE_ALPINE=ON
|
||||
else
|
||||
PROJECT_LINK_TYPE=shared
|
||||
PROJECT_REQUIRE_ALPINE=OFF
|
||||
fi
|
||||
|
||||
if [ -f "${SOURCE_DIR}/cmake/versions.cmake" ]; then
|
||||
VERSIONS=($(sed -e s/\ /=/g -e s/set\(//g -e s/\)//g "${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=${SOURCE_DIR}/build/${PROJECT_CMAKE_BUILD_TYPE_LOWER}/${PROJECT_LINK_TYPE}
|
||||
PROJECT_DIST_DIR=${SOURCE_DIR}/dist/${PROJECT_CMAKE_BUILD_TYPE_LOWER}/${PROJECT_LINK_TYPE}
|
||||
|
||||
if [ "${PROJECT_IS_MINGW}" == "1" ]; then
|
||||
PROJECT_DIST_DIR=${PROJECT_DIST_DIR}/win32
|
||||
PROJECT_BUILD_DIR=${PROJECT_BUILD_DIR}/win32
|
||||
else
|
||||
PROJECT_DIST_DIR=${PROJECT_DIST_DIR}/linux
|
||||
PROJECT_BUILD_DIR=${PROJECT_BUILD_DIR}/linux
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_IS_ARM64}" == "1" ]; then
|
||||
PROJECT_DIST_DIR=${PROJECT_DIST_DIR}/aarch64
|
||||
PROJECT_BUILD_DIR=${PROJECT_BUILD_DIR}/aarch64
|
||||
else
|
||||
PROJECT_DIST_DIR=${PROJECT_DIST_DIR}/x86_64
|
||||
PROJECT_BUILD_DIR=${PROJECT_BUILD_DIR}/x86_64
|
||||
fi
|
||||
|
||||
PROJECT_EXTERNAL_BUILD_ROOT=${PROJECT_BUILD_DIR}/deps
|
||||
PROJECT_3RD_PARTY_DIR=${SOURCE_DIR}/support/3rd_party
|
||||
|
||||
if [ "${PROJECT_ENABLE_OPENSSL}" == "ON" ]; then
|
||||
if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; then
|
||||
OPENSSL_ROOT_DIR=/mingw64
|
||||
else
|
||||
OPENSSL_ROOT_DIR=${PROJECT_EXTERNAL_BUILD_ROOT}
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; then
|
||||
PROJECT_TOOLCHAIN_FILE_CMAKE=/cmake_toolchain.cmake
|
||||
PROJECT_TOOLCHAIN_FILE_MESON=/meson_cross_file.txt
|
||||
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
|
||||
else
|
||||
PROJECT_BUILD_SHARED_LIBS=ON
|
||||
fi
|
||||
|
||||
PROJECT_CMAKE_OPTS="-DPROJECT_3RD_PARTY_DIR=${PROJECT_3RD_PARTY_DIR} ${PROJECT_CMAKE_OPTS}"
|
||||
PROJECT_CMAKE_OPTS="-DPROJECT_BUILD_ARCH=${PROJECT_BUILD_ARCH} ${PROJECT_CMAKE_OPTS}"
|
||||
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}"
|
||||
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_LINK_TYPE=${PROJECT_LINK_TYPE} ${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_TOOLCHAIN_FILE_CMAKE=${PROJECT_TOOLCHAIN_FILE_CMAKE} ${PROJECT_CMAKE_OPTS}"
|
||||
PROJECT_CMAKE_OPTS="-DPROJECT_TOOLCHAIN_FILE_MESON=${PROJECT_TOOLCHAIN_FILE_MESON} ${PROJECT_CMAKE_OPTS}"
|
||||
|
||||
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
|
||||
mkdir -p "${PROJECT_BUILD_DIR}"
|
||||
mkdir -p "${PROJECT_DIST_DIR}"
|
||||
fi
|
||||
|
||||
PATH="${PROJECT_EXTERNAL_BUILD_ROOT}/bin:${PATH}"
|
||||
|
||||
export MSYS
|
||||
export NUM_JOBS
|
||||
export OPENSSL_ROOT_DIR
|
||||
export PATH
|
||||
export PKG_CONFIG_PATH
|
||||
export PROJECT_3RD_PARTY_DIR
|
||||
export PROJECT_APP_LIST
|
||||
export PROJECT_APP_NAME
|
||||
export PROJECT_BUILD_ARCH
|
||||
export PROJECT_BUILD_CLEAN
|
||||
export PROJECT_BUILD_DIR
|
||||
export PROJECT_BUILD_SHARED_LIBS
|
||||
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
|
||||
export PROJECT_IS_MINGW_UNIX
|
||||
export PROJECT_LINK_TYPE
|
||||
export PROJECT_MINGW64_COPY_DEPENDENCIES
|
||||
export PROJECT_MINGW64_DOCKER_BUILD_ARGS
|
||||
export PROJECT_MSYS2_PACKAGE_LIST
|
||||
export PROJECT_REQUIRE_ALPINE
|
||||
export PROJECT_STATIC_LINK
|
||||
export PROJECT_TOOLCHAIN_FILE_CMAKE
|
||||
export PROJECT_TOOLCHAIN_FILE_MESON
|
||||
export SOURCE_DIR
|
||||
|
||||
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}"
|
||||
if [ "${PROJECT_IS_MINGW}" == "1" ] && [ "${PROJECT_IS_MINGW_UNIX}" == "1" ]; then
|
||||
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 "-=[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}"
|
9
scripts/info.cmd
Normal file
9
scripts/info.cmd
Normal file
@ -0,0 +1,9 @@
|
||||
@echo off
|
||||
|
||||
set ARG1=%~1
|
||||
set ARG2=%~2
|
||||
|
||||
pushd "%~dp0%"
|
||||
call mingw64 -no-start ./info.sh "%ARG1%" "x86_64" "%ARG2%" 1 0
|
||||
popd
|
||||
|
9
scripts/info.sh
Executable file
9
scripts/info.sh
Executable file
@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
CURRENT_DIR=$(dirname "$0")
|
||||
CURRENT_DIR=$(realpath ${CURRENT_DIR})
|
||||
|
||||
SOURCE_DIR=${CURRENT_DIR}/..
|
||||
SOURCE_DIR=$(realpath ${SOURCE_DIR})
|
||||
|
||||
. "${CURRENT_DIR}/env.sh" "$1" "$2" "$3" "$4" "$5" 1
|
@ -1,79 +1,47 @@
|
||||
#!/bin/bash
|
||||
|
||||
BUILD_TYPE=$1
|
||||
BUILD_CLEAN=$2
|
||||
IS_MINGW=$3
|
||||
CURRENT_DIR=$(dirname "$0")
|
||||
CURRENT_DIR=$(realpath ${CURRENT_DIR})
|
||||
|
||||
if [ "${BUILD_TYPE}" == "" ]; then
|
||||
BUILD_TYPE=Release
|
||||
. "${CURRENT_DIR}/env.sh" "$1" "$2" "$3" "$4" "$5"
|
||||
|
||||
mkdir -p "${PROJECT_BUILD_DIR}/build"
|
||||
|
||||
if [ -f "${SOURCE_DIR}/pre_build.sh" ]; then
|
||||
"${SOURCE_DIR}/pre_build.sh"
|
||||
fi
|
||||
|
||||
if [ "${IS_MINGW}" == "1" ]; then
|
||||
BUILD_ROOT=build2
|
||||
else
|
||||
BUILD_ROOT=build
|
||||
if [ "${PROJECT_IS_MINGW}" == "1" ]; then
|
||||
APP_BINARY_EXT=.exe
|
||||
fi
|
||||
|
||||
BUILD_FOLDER=$(echo "${BUILD_TYPE}" | tr '[:upper:]' '[:lower:]')
|
||||
if [ "${BUILD_FOLDER}" == "release" ]; then
|
||||
BUILD_TYPE=Release
|
||||
fi
|
||||
pushd "${PROJECT_BUILD_DIR}"
|
||||
cmake "${SOURCE_DIR}" -G"Unix Makefiles" ${PROJECT_CMAKE_OPTS} || exit 1
|
||||
|
||||
NUM_JOBS=${MY_NUM_JOBS}
|
||||
if [[ -z "${NUM_JOBS}" ]]; then
|
||||
NUM_JOBS=$(getconf _NPROCESSORS_ONLN 2> /dev/null || getconf NPROCESSORS_ONLN 2> /dev/null || echo 1)
|
||||
if [ "${NUM_JOBS}" -gt "2" ]; then
|
||||
NUM_JOBS=$(expr ${NUM_JOBS} - 2)
|
||||
elif [ "${NUM_JOBS}" -gt "1" ]; then
|
||||
NUM_JOBS=$(expr ${NUM_JOBS} - 1)
|
||||
fi
|
||||
fi
|
||||
echo "Job count: ${NUM_JOBS}"
|
||||
|
||||
pushd "$(dirname "$0")"
|
||||
mkdir -p ../${BUILD_ROOT}/${BUILD_FOLDER}
|
||||
|
||||
pushd ../${BUILD_ROOT}/${BUILD_FOLDER}
|
||||
|
||||
if [ "${IS_MINGW}" == "1" ]; then
|
||||
TOOLCHAIN=$(realpath /cmake_toolchain.cmake)
|
||||
CMAKE_ADDITIONAL_OPTS=-DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
|
||||
fi
|
||||
|
||||
if [ "${IS_MINGW}" == "1" ]; then
|
||||
EXE_EXT=.exe
|
||||
fi
|
||||
|
||||
cmake ../.. ${CMAKE_ADDITIONAL_OPTS} \
|
||||
-G"Unix Makefiles" \
|
||||
-DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
|
||||
-DREPERTORY_ENABLE_S3=ON \
|
||||
-DREPERTORY_ENABLE_S3_TESTING=ON || exit 1
|
||||
|
||||
pushd ..
|
||||
ln -sf ${BUILD_FOLDER}/compile_commands.json .
|
||||
ln -sf ${BUILD_FOLDER}/repertory${EXE_EXT} .
|
||||
ln -sf ${BUILD_FOLDER}/unittests${EXE_EXT} .
|
||||
if [ "${IS_MINGW}" == "1" ]; then
|
||||
ln -sf ${BUILD_FOLDER}/winfsp-x64.dll .
|
||||
fi
|
||||
popd
|
||||
|
||||
if [ "${BUILD_CLEAN}" == "clean" ]; then
|
||||
if [ "${PROJECT_BUILD_CLEAN}" == "clean" ]; then
|
||||
make clean
|
||||
pushd build
|
||||
make clean
|
||||
popd
|
||||
fi
|
||||
|
||||
make -j${NUM_JOBS} || exit 1
|
||||
|
||||
pushd build
|
||||
make -j${NUM_JOBS} || exit 1
|
||||
popd
|
||||
popd
|
||||
|
||||
pushd ../${BUILD_ROOT}
|
||||
ln -sf ${BUILD_FOLDER}/compile_commands.json .
|
||||
ln -sf ${BUILD_FOLDER}/repertory${EXE_EXT} .
|
||||
ln -sf ${BUILD_FOLDER}/unittests${EXE_EXT} .
|
||||
if [ "${IS_MINGW}" == "1" ]; then
|
||||
ln -sf ${BUILD_FOLDER}/winfsp-x64.dll .
|
||||
if [ "${PROJECT_IS_MINGW}" != "1" ] && [ "${PROJECT_REQUIRE_ALPINE}" == "ON" ]; then
|
||||
rsync -av --progress /usr/share/icu/74.1/ "${PROJECT_DIST_DIR}/icu/"
|
||||
fi
|
||||
popd
|
||||
|
||||
ln -sf ../3rd_party/cacert.pem ../${BUILD_ROOT}/cacert.pem
|
||||
popd
|
||||
for APP in ${PROJECT_APP_LIST[@]}; do
|
||||
rsync -av --progress "${PROJECT_BUILD_DIR}/build/${APP}${APP_BINARY_EXT}" "${PROJECT_DIST_DIR}/"
|
||||
done
|
||||
|
||||
if [ "${PROJECT_IS_MINGW}" == "1" ]; then
|
||||
. "${CURRENT_DIR}/copy_mingw64_deps.sh" "$1" "$2" "$3" "$4" "$5"
|
||||
fi
|
||||
|
||||
ln -sf "${PROJECT_BUILD_DIR}/build/compile_commands.json" "${SOURCE_DIR}/compile_commands.json"
|
||||
|
@ -1,127 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
PLATFORM_NAME=$1
|
||||
SIGNING_FOLDER=$2
|
||||
BINARY_FOLDER=$3
|
||||
SOURCE_FOLDER=$4
|
||||
OUTPUT_FOLDER=$5
|
||||
ARM64=$6
|
||||
|
||||
LINUX_PLATFORM=alpine
|
||||
|
||||
exit_script() {
|
||||
echo "$1"
|
||||
cd "${CURRENT_DIR}"
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [ -z "${PLATFORM_NAME}" ]; then
|
||||
exit_script "'PLATFORM_NAME' is not set (arg1)"
|
||||
fi
|
||||
|
||||
if [ -z "${SIGNING_FOLDER}" ]; then
|
||||
exit_script "'SIGNING_FOLDER' is not set (arg2)"
|
||||
fi
|
||||
|
||||
if [ -z "${BINARY_FOLDER}" ]; then
|
||||
exit_script "'BINARY_FOLDER' is not set (arg3)"
|
||||
fi
|
||||
|
||||
if [ -z "${SOURCE_FOLDER}" ]; then
|
||||
exit_script "'SOURCE_FOLDER' is not set (arg4)"
|
||||
fi
|
||||
|
||||
if [ -z "${OUTPUT_FOLDER}" ]; then
|
||||
exit_script "'OUTPUT_FOLDER' is not set (arg5)"
|
||||
fi
|
||||
|
||||
if [ "${PLATFORM_NAME}" == "darwin" ]; then
|
||||
SHA256_EXEC="shasum -a 256 -b"
|
||||
else
|
||||
SHA256_EXEC="sha256sum -b"
|
||||
fi
|
||||
|
||||
pushd "${SOURCE_FOLDER}"
|
||||
BRANCH=$(git branch --show-current)
|
||||
RELEASE=$(grep set\(REPERTORY_RELEASE_ITER ./CMakeLists.txt | sed s/\)//g | awk '{print $2}')
|
||||
|
||||
if [ "${BRANCH}" == "master" ] || [ "${BRANCH}" == "alpha" ] || [ "${BRANCH}" == "beta" ] || [ "${BRANCH}" == "rc" ]; then
|
||||
OUTPUT_FOLDER=${OUTPUT_FOLDER}/${RELEASE}
|
||||
else
|
||||
OUTPUT_FOLDER=${OUTPUT_FOLDER}/nightly
|
||||
fi
|
||||
|
||||
GIT_REV=$(git rev-parse --short HEAD)
|
||||
REPERTORY_VERSION=$(grep set\(REPERTORY_MAJOR ./CMakeLists.txt | sed s/\)//g | awk '{print $2}')
|
||||
REPERTORY_VERSION=${REPERTORY_VERSION}.$(grep set\(REPERTORY_MINOR ./CMakeLists.txt | sed s/\)//g | awk '{print $2}')
|
||||
REPERTORY_VERSION=${REPERTORY_VERSION}.$(grep set\(REPERTORY_REV ./CMakeLists.txt | sed s/\)//g | awk '{print $2}')
|
||||
REPERTORY_VERSION=${REPERTORY_VERSION}-${RELEASE}
|
||||
popd
|
||||
|
||||
REPERTORY_BINARY=repertory
|
||||
if [ "${ARM64}" == "1" ]; then
|
||||
if [ "${PLATFORM_NAME}" == "${LINUX_PLATFORM}" ]; then
|
||||
ZIP_FILE_NAME=repertory_${REPERTORY_VERSION}_${GIT_REV}_linux_arm64.zip
|
||||
else
|
||||
ZIP_FILE_NAME=repertory_${REPERTORY_VERSION}_${GIT_REV}_${PLATFORM_NAME}_arm64.zip
|
||||
fi
|
||||
elif [ "${PLATFORM_NAME}" == "${LINUX_PLATFORM}" ]; then
|
||||
ZIP_FILE_NAME=repertory_${REPERTORY_VERSION}_${GIT_REV}_linux_amd64.zip
|
||||
elif [ "${PLATFORM_NAME}" == "mingw64" ]; then
|
||||
ZIP_FILE_NAME=repertory_${REPERTORY_VERSION}_${GIT_REV}_windows_amd64.zip
|
||||
REPERTORY_BINARY=${REPERTORY_BINARY}.exe
|
||||
else
|
||||
ZIP_FILE_NAME=repertory_${REPERTORY_VERSION}_${GIT_REV}_${PLATFORM_NAME}_amd64.zip
|
||||
fi
|
||||
ZIP_FILE_PATH=./${ZIP_FILE_NAME}
|
||||
|
||||
create_hash_and_sig() {
|
||||
${SHA256_EXEC} ./${1} > ${1}.sha256 || exit_script "SHA-256 failed for $1"
|
||||
openssl dgst -sha256 -sign "${SIGNING_FOLDER}/blockstorage_dev_private.pem" -out ${1}.sig $1 || exit_script "Create signature failed for $1"
|
||||
openssl dgst -sha256 -verify "${SIGNING_FOLDER}/blockstorage_dev_public.pem" -signature ${1}.sig $1 || exit_script "Verify signature failed for $1"
|
||||
}
|
||||
|
||||
clean_directory() {
|
||||
rm -f "${ZIP_FILE_PATH}"
|
||||
rm -f "${ZIP_FILE_PATH}.sha256"
|
||||
rm -f "${ZIP_FILE_PATH}.sig"
|
||||
rm -f "cacert.pem.sha256"
|
||||
rm -f "cacert.pem.sig"
|
||||
rm -f "${REPERTORY_BINARY}.sha256"
|
||||
rm -f "${REPERTORY_BINARY}.sig"
|
||||
if [ "${PLATFORM_NAME}" == "mingw64" ]; then
|
||||
rm -f "winfsp-x64.dll.sha256"
|
||||
rm -f "winfsp-x64.dll.sig"
|
||||
fi
|
||||
}
|
||||
|
||||
pushd "${BINARY_FOLDER}"
|
||||
clean_directory
|
||||
|
||||
strip ./${REPERTORY_BINARY}
|
||||
|
||||
create_hash_and_sig ${REPERTORY_BINARY}
|
||||
create_hash_and_sig cacert.pem
|
||||
if [ "${PLATFORM_NAME}" == "mingw64" ]; then
|
||||
create_hash_and_sig winfsp-x64.dll
|
||||
fi
|
||||
|
||||
if [ "${PLATFORM_NAME}" == "mingw64" ]; then
|
||||
zip "${ZIP_FILE_PATH}" \
|
||||
${REPERTORY_BINARY} ${REPERTORY_BINARY}.sha256 ${REPERTORY_BINARY}.sig \
|
||||
winfsp-x64.dll winfsp-x64.dll.sha256 winfsp-x64.dll.sig \
|
||||
cacert.pem cacert.pem.sha256 cacert.pem.sig || exit_script "Create zip failed"
|
||||
else
|
||||
zip "${ZIP_FILE_PATH}" \
|
||||
${REPERTORY_BINARY} ${REPERTORY_BINARY}.sha256 ${REPERTORY_BINARY}.sig \
|
||||
cacert.pem cacert.pem.sha256 cacert.pem.sig || exit_script "Create zip failed"
|
||||
fi
|
||||
|
||||
create_hash_and_sig ${ZIP_FILE_NAME}
|
||||
|
||||
cp -f "${ZIP_FILE_PATH}" "${OUTPUT_FOLDER}" || exit_script "Copy ${ZIP_FILE_NAME} failed"
|
||||
cp -f "${ZIP_FILE_PATH}.sha256" "${OUTPUT_FOLDER}" || exit_script "Copy ${ZIP_FILE_NAME}.sha256 failed"
|
||||
cp -f "${ZIP_FILE_PATH}.sig" "${OUTPUT_FOLDER}" || exit_script "Copy ${ZIP_FILE_NAME}.sig failed"
|
||||
|
||||
clean_directory
|
||||
popd
|
@ -1,26 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
BUILD_TYPE=$1
|
||||
BUILD_CLEAN=$2
|
||||
BUILD_ARCH=$3
|
||||
CURRENT_DIR=$(dirname "$0")
|
||||
CURRENT_DIR=$(realpath ${CURRENT_DIR})
|
||||
|
||||
SOURCE_DIR=$(dirname "$0")/..
|
||||
SOURCE_DIR=$(realpath ${SOURCE_DIR})
|
||||
. "${CURRENT_DIR}/env.sh" "$1" "$2" "$3" 0 0
|
||||
|
||||
NAME=alpine
|
||||
if [ -z "${BUILD_ARCH}" ]; then
|
||||
BUILD_ARCH=64_bit
|
||||
if [ "${PROJECT_REQUIRE_ALPINE}" == "ON" ]; then
|
||||
DOCKER_NAME=alpine
|
||||
DOCKER_CONTAINER=${PROJECT_APP_NAME}_${DOCKER_NAME}_${PROJECT_BUILD_ARCH}
|
||||
DOCKER_TAG=${PROJECT_APP_NAME}:${DOCKER_NAME}
|
||||
|
||||
. "${CURRENT_DIR}/docker_common.sh" || exit 1
|
||||
else
|
||||
"${SOURCE_DIR}/scripts/make_common.sh" "${PROJECT_CMAKE_BUILD_TYPE}" "${PROJECT_BUILD_ARCH}" "${PROJECT_BUILD_CLEAN}" 0 0 || exit 1
|
||||
fi
|
||||
if [ -z "${BUILD_TYPE}" ]; then
|
||||
BUILD_TYPE=Release
|
||||
fi
|
||||
|
||||
ln -sf ${SOURCE_DIR}/build/compile_commands.json ${SOURCE_DIR}/compile_commands.json
|
||||
|
||||
docker stop repertory_${NAME}
|
||||
docker rm repertory_${NAME}
|
||||
docker build -t repertory:${NAME} - < ${SOURCE_DIR}/docker/${BUILD_ARCH}/${NAME} &&
|
||||
docker run -td -u $(id -u):$(id -g) --device /dev/fuse --cap-add SYS_ADMIN --name repertory_${NAME} --env MY_NUM_JOBS=${MY_NUM_JOBS} -w ${SOURCE_DIR} -v ${SOURCE_DIR}:${SOURCE_DIR}:rw,z repertory:${NAME} &&
|
||||
docker exec repertory_${NAME} /bin/bash -c "${SOURCE_DIR}/scripts/make_common.sh ${BUILD_TYPE} ${BUILD_CLEAN}"
|
||||
docker stop repertory_${NAME}
|
||||
docker rm repertory_${NAME}
|
||||
|
10
scripts/make_win32.cmd
Normal file
10
scripts/make_win32.cmd
Normal file
@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
|
||||
set ARG1=%~1
|
||||
set ARG2=%~2
|
||||
|
||||
pushd "%~dp0%"
|
||||
call setup_msys2.cmd "%ARG1%" "%ARG2%"
|
||||
|
||||
call mingw64 -no-start ./make_common.sh "%ARG1%" "x86_64" "%ARG2%" 1 0 || exit 1
|
||||
popd
|
@ -1,28 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
NUM_JOBS=${MY_NUM_JOBS}
|
||||
if [[ -z "${NUM_JOBS}" ]]; then
|
||||
NUM_JOBS=$(getconf _NPROCESSORS_ONLN 2> /dev/null || getconf NPROCESSORS_ONLN 2> /dev/null || echo 1)
|
||||
if [ "${NUM_JOBS}" -gt "2" ]; then
|
||||
NUM_JOBS=$(expr ${NUM_JOBS} - 2)
|
||||
elif [ "${NUM_JOBS}" -gt "1" ]; then
|
||||
NUM_JOBS=$(expr ${NUM_JOBS} - 1)
|
||||
fi
|
||||
fi
|
||||
CURRENT_DIR=$(dirname "$0")
|
||||
CURRENT_DIR=$(realpath ${CURRENT_DIR})
|
||||
|
||||
BUILD_TYPE=$1
|
||||
BUILD_CLEAN=$2
|
||||
. "${CURRENT_DIR}/env.sh" "$1" "$2" "$3" 1 1
|
||||
|
||||
SOURCE_DIR=$(dirname "$0")/..
|
||||
SOURCE_DIR=$(realpath ${SOURCE_DIR})
|
||||
DOCKER_NAME=mingw64
|
||||
DOCKER_CONTAINER=${PROJECT_APP_NAME}_${DOCKER_NAME}
|
||||
DOCKER_TAG=${PROJECT_APP_NAME}:${DOCKER_NAME}
|
||||
|
||||
NAME=mingw64
|
||||
BUILD_ARCH=64_bit
|
||||
|
||||
docker stop repertory_${NAME}
|
||||
docker rm repertory_${NAME}
|
||||
docker build --build-arg NUM_JOBS=${MY_NUM_JOBS} -t repertory:${NAME} - < ${SOURCE_DIR}/docker/${BUILD_ARCH}/${NAME} &&
|
||||
docker run -td -u $(id -u):$(id -g) --name repertory_${NAME} -w ${SOURCE_DIR} -v ${SOURCE_DIR}:${SOURCE_DIR}:rw,z repertory:${NAME} &&
|
||||
docker exec repertory_${NAME} /bin/bash -c "${SOURCE_DIR}/scripts/make_common.sh ${BUILD_TYPE} \"${BUILD_CLEAN}\" 1"
|
||||
docker stop repertory_${NAME}
|
||||
docker rm repertory_${NAME}
|
||||
. "${CURRENT_DIR}/docker_common.sh" || exit 1
|
||||
|
@ -1,40 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
NUM_JOBS=${MY_NUM_JOBS}
|
||||
if [[ -z "${NUM_JOBS}" ]]; then
|
||||
NUM_JOBS=$(getconf _NPROCESSORS_ONLN 2> /dev/null || getconf NPROCESSORS_ONLN 2> /dev/null || echo 1)
|
||||
if [ "${NUM_JOBS}" -gt "2" ]; then
|
||||
NUM_JOBS=$(expr ${NUM_JOBS} - 2)
|
||||
elif [ "${NUM_JOBS}" -gt "1" ]; then
|
||||
NUM_JOBS=$(expr ${NUM_JOBS} - 1)
|
||||
fi
|
||||
fi
|
||||
CURRENT_DIR=$(dirname "$0")
|
||||
CURRENT_DIR=$(realpath ${CURRENT_DIR})
|
||||
|
||||
pushd "$(dirname "$0")"
|
||||
CURRENT_DIR=$(pwd)
|
||||
DOCKER_NAME=$1
|
||||
|
||||
pushd "${CURRENT_DIR}/.."
|
||||
NAME=$1
|
||||
TYPE=$2
|
||||
if [ -z "$NAME" ]; then
|
||||
echo "Name not set"
|
||||
else
|
||||
if [ -z "${TYPE}" ]; then
|
||||
TYPE=64_bit
|
||||
fi
|
||||
. "${CURRENT_DIR}/env.sh" "$1" "$2" "$3" "$4" "$5" 1 1>/dev/null 2>&1
|
||||
|
||||
TAG=repertory_shell
|
||||
CONTAINER=${TAG}_${NAME}
|
||||
DOCKER_CONTAINER=${PROJECT_APP_NAME}_${DOCKER_NAME}_${PROJECT_BUILD_ARCH}_shell
|
||||
DOCKER_TAG=${PROJECT_APP_NAME}:${DOCKER_NAME}
|
||||
DOCKER_SHELL=1
|
||||
|
||||
docker stop ${CONTAINER}
|
||||
docker rm ${CONTAINER}
|
||||
docker build --build-arg NUM_JOBS=$NUM_JOBS -t ${TAG}:${NAME} - < docker/${TYPE}/${NAME} &&
|
||||
docker run -itd --device /dev/fuse --cap-add SYS_ADMIN --name ${CONTAINER} -v $(pwd):/mnt ${TAG}:${NAME} &&
|
||||
# docker run -itd --device /dev/fuse --cap-add SYS_ADMIN --name ${CONTAINER} ${TAG}:${NAME} &&
|
||||
docker exec -it ${CONTAINER} /bin/bash
|
||||
docker stop ${CONTAINER}
|
||||
docker rm ${CONTAINER}
|
||||
docker system prune -f
|
||||
fi
|
||||
popd
|
||||
popd
|
||||
. "${CURRENT_DIR}/docker_common.sh" || exit 1
|
||||
|
@ -1,6 +1,9 @@
|
||||
@echo off
|
||||
|
||||
set ARG1=%~1
|
||||
set ARG2=%~2
|
||||
|
||||
pushd "%~dp0%"
|
||||
call mingw64 -no-start ./setup_msys2.sh
|
||||
call mingw64 -no-start ./setup_msys2.sh
|
||||
call mingw64 -no-start ./setup_msys2.sh "%ARG1%" "x86_64" "%ARG2%" 1 0
|
||||
call mingw64 -no-start ./setup_msys2.sh "%ARG1%" "x86_64" "%ARG2%" 1 0
|
||||
popd
|
||||
|
@ -1,26 +1,40 @@
|
||||
#!/bin/bash
|
||||
|
||||
CURRENT_DIR=$(dirname "$0")
|
||||
CURRENT_DIR=$(realpath ${CURRENT_DIR})
|
||||
|
||||
PROJECT_MSYS2_PACKAGE_LIST=()
|
||||
|
||||
. "${CURRENT_DIR}/env.sh" "$1" "$2" "$3" "$4" "$5" 1 1> /dev/null 2>&1
|
||||
|
||||
PROJECT_MSYS2_PACKAGE_LIST+=(
|
||||
mingw64/mingw-w64-x86_64-autotools
|
||||
mingw64/mingw-w64-x86_64-clang-tools-extra
|
||||
mingw64/mingw-w64-x86_64-cmake
|
||||
mingw64/mingw-w64-x86_64-curl
|
||||
mingw64/mingw-w64-x86_64-diffutils
|
||||
mingw64/mingw-w64-x86_64-gcc
|
||||
mingw64/mingw-w64-x86_64-gdb
|
||||
mingw64/mingw-w64-x86_64-icu
|
||||
mingw64/mingw-w64-x86_64-make
|
||||
mingw64/mingw-w64-x86_64-mesa
|
||||
mingw64/mingw-w64-x86_64-meson
|
||||
mingw64/mingw-w64-x86_64-meson-python
|
||||
mingw64/mingw-w64-x86_64-ninja
|
||||
mingw64/mingw-w64-x86_64-python
|
||||
mingw64/mingw-w64-x86_64-python-mako
|
||||
mingw64/mingw-w64-x86_64-toolchain
|
||||
mingw64/mingw-w64-x86_64-wget
|
||||
mingw64/mingw-w64-x86_64-zlib
|
||||
msys/bison
|
||||
msys/flex
|
||||
msys/git
|
||||
msys/patch
|
||||
msys/rsync
|
||||
make
|
||||
)
|
||||
|
||||
pacman -Sqyuu --noconfirm &&
|
||||
pacman -S --noconfirm --needed --disable-download-timeout msys2-keyring &&
|
||||
pacman -S --noconfirm --needed --disable-download-timeout \
|
||||
mingw64/mingw-w64-x86_64-boost \
|
||||
mingw64/mingw-w64-x86_64-clang-tools-extra \
|
||||
mingw64/mingw-w64-x86_64-cmake \
|
||||
mingw64/mingw-w64-x86_64-curl \
|
||||
mingw64/mingw-w64-x86_64-fmt \
|
||||
mingw64/mingw-w64-x86_64-gcc \
|
||||
mingw64/mingw-w64-x86_64-gdb \
|
||||
mingw64/mingw-w64-x86_64-gtest \
|
||||
mingw64/mingw-w64-x86_64-gtkmm3 \
|
||||
mingw64/mingw-w64-x86_64-libsodium \
|
||||
mingw64/mingw-w64-x86_64-make \
|
||||
mingw64/mingw-w64-x86_64-openssl \
|
||||
mingw64/mingw-w64-x86_64-sfml \
|
||||
mingw64/mingw-w64-x86_64-spdlog \
|
||||
mingw64/mingw-w64-x86_64-sqlite3 \
|
||||
mingw64/mingw-w64-x86_64-toolchain \
|
||||
mingw64/mingw-w64-x86_64-vlc \
|
||||
mingw64/mingw-w64-x86_64-wxwidgets3.2-msw \
|
||||
mingw64/mingw-w64-x86_64-zlib \
|
||||
msys/git \
|
||||
make
|
||||
${PROJECT_MSYS2_PACKAGE_LIST[@]}
|
||||
|
Reference in New Issue
Block a user