summaryrefslogtreecommitdiff
path: root/build_single.sh
diff options
context:
space:
mode:
authorCzarek Nakamoto <cyjan@mrcyjanek.net>2024-11-19 09:41:54 -0500
committerCzarek Nakamoto <cyjan@mrcyjanek.net>2024-11-19 09:45:03 -0500
commitc1a388f070eea05098c201e8d8531ee08ad695b2 (patch)
treed9bc9edba6571f2ece2b60bb4db0dcd0610d5a07 /build_single.sh
parentd18a8137d591844880a1532c7d85e68f47bd217f (diff)
update ci builds
Diffstat (limited to 'build_single.sh')
-rwxr-xr-xbuild_single.sh243
1 files changed, 2 insertions, 241 deletions
diff --git a/build_single.sh b/build_single.sh
index 153d9ef..0f43937 100755
--- a/build_single.sh
+++ b/build_single.sh
@@ -28,6 +28,7 @@ if [[ "x$repo" != "xwownero" && "x$repo" != "xmonero" ]];
then
echo "Usage: $0 monero/wownero $(gcc -dumpmachine) -j$proccount"
echo "Invalid target given, only monero and wownero are supported targets"
+ exit 1
fi
if [[ ! -d "$repo" ]]
@@ -53,248 +54,8 @@ then
fi
cd $(dirname $0)
WDIR=$PWD
-CC=""
-CXX=""
-case "$HOST_ABI" in
- "x86_64-linux-gnu")
- export CC="${HOST_ABI}-gcc"
- export CXX="${HOST_ABI}-g++"
- ;;
- "i686-linux-gnu")
- export CC="${HOST_ABI}-gcc"
- export CXX="${HOST_ABI}-g++"
- ;;
- "i686-meego-linux-gnu")
- # sanity checks, we should only run on native cpu
- if [[ ! "$(uname -m)" == "x86_64" ]];
- then
- echo "${HOST_ABI} builds are only supported on x86_64 host."
- exit 1
- fi
- # we also only support sailfishos linux
- source /etc/os-release
- if [[ ! "$ID" == "sailfishos" ]];
- then
- echo "${HOST_ABI} builds are only supported on sailfishos host."
- exit 1
- fi
- export CC="${HOST_ABI}-gcc"
- export CXX="${HOST_ABI}-g++"
- ;;
- "aarch64-linux-gnu")
- export CC="${HOST_ABI}-gcc"
- export CXX="${HOST_ABI}-g++"
- ;;
- "aarch64-meego-linux-gnu")
- # sanity checks, we should only run on native cpu
- if [[ ! "$(uname -m)" == "aarch64" ]];
- then
- echo "${HOST_ABI} builds are only supported on aarch64 host."
- exit 1
- fi
- # we also only support sailfishos linux
- source /etc/os-release
- if [[ ! "$ID" == "sailfishos" ]];
- then
- echo "${HOST_ABI} builds are only supported on sailfishos host."
- exit 1
- fi
- export CC="${HOST_ABI}-gcc"
- export CXX="${HOST_ABI}-g++"
- ;;
- "x86_64-linux-android")
- export PATH="$WDIR/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
- export CC=$WDIR/contrib/depends/${HOST_ABI}/native/bin/x86_64-linux-android21-clang
- export CXX=$WDIR/contrib/depends/${HOST_ABI}/native/bin/x86_64-linux-android21-clang++
- ;;
- "i686-linux-android")
- export PATH="$WDIR/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
- export CC=$WDIR/contrib/depends/${HOST_ABI}/native/bin/i686-linux-android21-clang
- export CXX=$WDIR/contrib/depends/${HOST_ABI}/native/bin/i686-linux-android21-clang++
- ;;
- "aarch64-linux-android")
- export PATH="$WDIR/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
- export CC=$WDIR/contrib/depends/${HOST_ABI}/native/bin/aarch64-linux-android21-clang
- export CXX=$WDIR/contrib/depends/${HOST_ABI}/native/bin/aarch64-linux-android21-clang++
- ;;
- "armv7a-linux-androideabi")
- export PATH="$WDIR/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
- export CC=$WDIR/contrib/depends/${HOST_ABI}/native/bin/armv7a-linux-androideabi21-clang
- export CXX=$WDIR/contrib/depends/${HOST_ABI}/native/bin/armv7a-linux-androideabi21-clang++
- ;;
- "i686-w64-mingw32")
- update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix
- update-alternatives --set i686-w64-mingw32-g++ /usr/bin/i686-w64-mingw32-g++-posix
- export CC=i686-w64-mingw32-gcc-posix
- export CXX=i686-w64-mingw32-g++-posix
- ;;
- "x86_64-w64-mingw32")
- $SUDO update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
- $SUDO update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
- export CC=x86_64-w64-mingw32-gcc-posix
- export CXX=x86_64-w64-mingw32-g++-posix
- ;;
- "x86_64-apple-darwin11")
- export PATH="$WDIR/contrib/depends/x86_64-apple-darwin11/native/bin:$PATH"
- export CC="clang -stdlib=libc++ -target x86_64-apple-darwin11 -mmacosx-version-min=10.14 --sysroot $WDIR/contrib/depends/x86_64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/contrib/depends/x86_64-apple-darwin11/native/bin/x86_64-apple-darwin11-"
- export CXX="clang++ -stdlib=libc++ -target x86_64-apple-darwin11 -mmacosx-version-min=10.14 --sysroot $WDIR/contrib/depends/x86_64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/contrib/depends/x86_64-apple-darwin11/native/bin/x86_64-apple-darwin11-"
- ;;
- "aarch64-apple-darwin11")
- export PATH="$WDIR/contrib/depends/aarch64-apple-darwin11/native/bin:$PATH"
- export CC="clang -stdlib=libc++ -target arm64-apple-darwin11 -mmacosx-version-min=10.14 --sysroot $WDIR/contrib/depends/aarch64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/contrib/depends/aarch64-apple-darwin11/native/bin/aarch64-apple-darwin11-"
- export CXX="clang++ -stdlib=libc++ -target arm64-apple-darwin11 -mmacosx-version-min=10.14 --sysroot $WDIR/contrib/depends/aarch64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/contrib/depends/aarch64-apple-darwin11/native/bin/aarch64-apple-darwin11-"
- ;;
- "host-apple-darwin"|"x86_64-host-apple-darwin"|"aarch64-host-apple-darwin")
- export CC="clang"
- export CXX="clang++"
- ;;
- "host-apple-ios")
- export IOS_CC="clang -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk"
- export IOS_CXX="clang++ -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk"
- ;;
- *)
- echo "Unsupported target."
- exit 1
- ;;
-esac
pushd contrib/depends
- case "$HOST_ABI" in
- "x86_64-linux-gnu" | "i686-linux-gnu" | "i686-meego-linux-gnu" | "aarch64-linux-gnu" | "aarch64-meego-linux-gnu" | "x86_64-linux-android" | "i686-linux-android" | "aarch64-linux-android" | "armv7a-linux-androideabi" | "i686-w64-mingw32" | "x86_64-w64-mingw32" | "x86_64-apple-darwin11" | "aarch64-apple-darwin11")
- env -i PATH="$PATH" CC=gcc CXX=g++ make HOST="$HOST_ABI" "$NPROC"
- ;;
- "host-apple-darwin" | "x86_64-host-apple-darwin" | "aarch64-host-apple-darwin")
- echo "===================================="
- echo "= ="
- echo "= CHECK README.md IF BUILD FAILS ="
- echo "= ="
- echo "===================================="
- echo "WARN: using host dependencies on macos."
- POLYSEED_DIR=../../../external/polyseed/build/${HOST_ABI}
- rm -rf ${POLYSEED_DIR}
- mkdir -p ${POLYSEED_DIR}
- pushd ${POLYSEED_DIR}
- CC="${CC}" CXX="${CXX}" cmake ../..
- make $NPROC
- popd
- if [[ "$repo" == "wownero" ]];
- then
- WOWNEROSEED_DIR=../../../external/wownero-seed/build/${HOST_ABI}
- rm -rf ${WOWNEROSEED_DIR}
- mkdir -p ${WOWNEROSEED_DIR}
- pushd ${WOWNEROSEED_DIR}
- pushd ../..
- git reset --hard
- patch -p1 < ../wownero-seed-0001-fix-duplicate-symbol-error.patch
- popd
- CC="${CC}" CXX="${CXX}" cmake ../..
- make $NPROC
- popd
- fi
- MACOS_LIBS_DIR="${PWD}/${HOST_ABI}"
- rm -rf ${MACOS_LIBS_DIR}
- mkdir -p ${MACOS_LIBS_DIR}/lib
- if [[ "$(uname -m)" == "arm64" ]];
- then
- export HOMEBREW_PREFIX="/opt/homebrew"
- elif [[ "$(uname -m)" == "x86_64" ]];
- then
- export HOMEBREW_PREFIX="/usr/local"
- fi
- pushd ../../../external/macos
- ./build_unbound.sh
- popd
- # NOTE: we can use unbound from brew but app store rejects the app because of nghttp2 symbols being included
- # verbose_copy "${HOMEBREW_PREFIX}/lib/libunbound.a" ${MACOS_LIBS_DIR}/lib/libunbound.a
- verbose_copy "../../../external/macos/build/MACOS/lib/libunbound.a" ${MACOS_LIBS_DIR}/lib/libunbound.a
- verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_chrono-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_chrono-mt.a
- verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_locale-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_locale-mt.a
- verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_date_time-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_date_time-mt.a
- verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_filesystem-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_filesystem-mt.a
- verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_program_options-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_program_options-mt.a
- verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_regex-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_regex-mt.a
- verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_serialization-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_serialization-mt.a
- verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_system-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_system-mt.a
- verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_thread-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_thread-mt.a
- verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_wserialization-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_wserialization-mt.a
- verbose_copy "${POLYSEED_DIR}/libpolyseed.a" ${MACOS_LIBS_DIR}/lib/libpolyseed.a
- verbose_copy "${HOMEBREW_PREFIX}/lib/libssl.a" ${MACOS_LIBS_DIR}/lib/libssl.a
- verbose_copy "${HOMEBREW_PREFIX}/lib/libcrypto.a" ${MACOS_LIBS_DIR}/lib/libcrypto.a
- verbose_copy "${HOMEBREW_PREFIX}/lib/libsodium.a" ${MACOS_LIBS_DIR}/lib/libsodium.a
- if [[ "$repo" == "wownero" ]];
- then
- verbose_copy "${WOWNEROSEED_DIR}/libwownero-seed.a" ${MACOS_LIBS_DIR}/lib/libwownero-seed.a
- fi
- ;;
- "host-apple-ios")
- echo "===================================="
- echo "= ="
- echo "= CHECK README.md IF BUILD FAILS ="
- echo "= ="
- echo "===================================="
- pwd
- pushd ../../../external/ios
- ./install_missing_headers.sh
- ./build_openssl.sh
- ./build_boost.sh
- ./build_sodium.sh
- ./build_zmq.sh
- ./build_unbound.sh
- if [[ "$repo" == "wownero" ]];
- then
- ./build_wownero_seed.sh
- fi
- popd
- POLYSEED_DIR=../../../external/polyseed/build/${HOST_ABI}
- rm -rf ${POLYSEED_DIR}
- mkdir -p ${POLYSEED_DIR}
- pushd ${POLYSEED_DIR}
- CC="${IOS_CC}" CXX="${IOS_CXX}" cmake -DCMAKE_TOOLCHAIN_FILE=../../../ios-cmake/ios.toolchain.cmake -DPLATFORM=OS64 ../..
- make $NPROC
- popd
- if [[ "$repo" == "wownero" ]];
- then
- WOWNEROSEED_DIR=../../../external/wownero-seed/build/${HOST_ABI}
- rm -rf ${WOWNEROSEED_DIR}
- mkdir -p ${WOWNEROSEED_DIR}
- pushd ${WOWNEROSEED_DIR}
- pushd ../..
- git reset --hard
- patch -p1 < ../wownero-seed-0001-fix-duplicate-symbol-error.patch
- popd
- CC="${CC}" CXX="${CXX}" cmake -DCMAKE_TOOLCHAIN_FILE=../../../ios-cmake/ios.toolchain.cmake -DPLATFORM=OS64 ../..
- make $NPROC
- popd
- fi
- IOS_LIBS_DIR="${PWD}/host-apple-ios"
- rm -rf ${IOS_LIBS_DIR}
- mkdir -p ${IOS_LIBS_DIR}/lib
- export IOS_PREFIX="$(realpath "${PWD}/../../../external/ios/build/ios")"
- verbose_copy "${IOS_PREFIX}/lib/libunbound.a" ${IOS_LIBS_DIR}/lib/libunbound.a
- verbose_copy "${IOS_PREFIX}/lib/libboost_chrono.a" ${IOS_LIBS_DIR}/lib/libboost_chrono.a
- verbose_copy "${IOS_PREFIX}/lib/libboost_locale.a" ${IOS_LIBS_DIR}/lib/libboost_locale.a
- verbose_copy "${IOS_PREFIX}/lib/libboost_date_time.a" ${IOS_LIBS_DIR}/lib/libboost_date_time.a
- verbose_copy "${IOS_PREFIX}/lib/libboost_filesystem.a" ${IOS_LIBS_DIR}/lib/libboost_filesystem.a
- verbose_copy "${IOS_PREFIX}/lib/libboost_program_options.a" ${IOS_LIBS_DIR}/lib/libboost_program_options.a
- verbose_copy "${IOS_PREFIX}/lib/libboost_regex.a" ${IOS_LIBS_DIR}/lib/libboost_regex.a
- verbose_copy "${IOS_PREFIX}/lib/libboost_serialization.a" ${IOS_LIBS_DIR}/lib/libboost_serialization.a
- verbose_copy "${IOS_PREFIX}/lib/libboost_system.a" ${IOS_LIBS_DIR}/lib/libboost_system.a
- verbose_copy "${IOS_PREFIX}/lib/libboost_thread.a" ${IOS_LIBS_DIR}/lib/libboost_thread.a
- verbose_copy "${IOS_PREFIX}/lib/libboost_wserialization.a" ${IOS_LIBS_DIR}/lib/libboost_wserialization.a
- verbose_copy "${POLYSEED_DIR}/libpolyseed.a" ${IOS_LIBS_DIR}/lib/libpolyseed.a
- verbose_copy "${IOS_PREFIX}/lib/libssl.a" ${IOS_LIBS_DIR}/lib/libssl.a
- verbose_copy "${IOS_PREFIX}/lib/libcrypto.a" ${IOS_LIBS_DIR}/lib/libcrypto.a
- verbose_copy "${IOS_PREFIX}/lib/libsodium.a" ${IOS_LIBS_DIR}/lib/libsodium.a
- if [[ "$repo" == "wownero" ]];
- then
- verbose_copy "${WOWNEROSEED_DIR}/libwownero-seed.a" ${IOS_LIBS_DIR}/lib/libwownero-seed.a
- fi
- # verbose_copy "${IOS_PREFIX}/lib/libevent.a" ${IOS_LIBS_DIR}/lib/libevent.a
- ;;
- *)
- echo "Unable to build dependencies for '$HOST_ABI'."
- exit 1
- ;;
- esac
+ env -i PATH="$PATH" CC=gcc CXX=g++ make HOST="$HOST_ABI" "$NPROC"
popd
buildType=Debug