CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!
CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!
Path: blob/master/b.sh
Views: 1400
#!/bin/bash1CMAKE=123# Check arguments4while test $# -gt 05do6case "$1" in7--qt) echo "Qt enabled"8QT=19CMAKE_ARGS="-DUSING_QT_UI=ON ${CMAKE_ARGS}"10;;11--qtbrew) echo "Qt enabled (homebrew)"12QT=113CMAKE_ARGS="-DUSING_QT_UI=ON -DCMAKE_PREFIX_PATH=$(brew --prefix qt5) ${CMAKE_ARGS}"14;;15--ios) CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=cmake/Toolchains/ios.cmake ${CMAKE_ARGS}"16TARGET_OS=iOS17;;18--ios-xcode) CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=cmake/Toolchains/ios.cmake -DIOS_PLATFORM=OS -GXcode ${CMAKE_ARGS}"19TARGET_OS=iOS-xcode20;;21--fat) CMAKE_ARGS="-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64 ${CMAKE_ARGS}"22;;23--no-png) CMAKE_ARGS="-DUSE_SYSTEM_LIBPNG=OFF ${CMAKE_ARGS}"24;;25--no-sdl2) CMAKE_ARGS="-DUSE_SYSTEM_LIBSDL2=OFF ${CMAKE_ARGS}"26;;27--rpi-armv6)28CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=cmake/Toolchains/raspberry.armv6.cmake ${CMAKE_ARGS}"29;;30--rpi)31CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=cmake/Toolchains/raspberry.armv7.cmake ${CMAKE_ARGS}"32;;33--rpi64)34CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=cmake/Toolchains/raspberry.armv8.cmake ${CMAKE_ARGS}"35;;36--android) CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=android/android.toolchain.cmake ${CMAKE_ARGS}"37TARGET_OS=Android38PACKAGE=139;;40--simulator) echo "Simulator mode enabled"41CMAKE_ARGS="-DSIMULATOR=ON ${CMAKE_ARGS}"42;;43--release)44CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Release ${CMAKE_ARGS}"45;;46--debug)47CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Debug ${CMAKE_ARGS}"48;;49--reldebug)50CMAKE_ARGS="-DCMAKE_BUILD_TYPE=RelWithDebInfo ${CMAKE_ARGS}"51;;52--headless) echo "Headless mode enabled"53CMAKE_ARGS="-DHEADLESS=ON ${CMAKE_ARGS}"54;;55--libretro) echo "Build Libretro core"56CMAKE_ARGS="-DLIBRETRO=ON ${CMAKE_ARGS}"57;;58--libretro_android) echo "Build Libretro Android core"59CMAKE_ARGS="-DLIBRETRO=ON -DCMAKE_TOOLCHAIN_FILE=${NDK}/build/cmake/android.toolchain.cmake -DANDROID_ABI=${APP_ABI} ${CMAKE_ARGS}"60;;61--unittest) echo "Build unittest"62CMAKE_ARGS="-DUNITTEST=ON ${CMAKE_ARGS}"63;;64--no-package) echo "Packaging disabled"65PACKAGE=066;;67--clang) echo "Clang enabled"68export CC=/usr/bin/clang69export CXX=/usr/bin/clang++70;;71--sanitize) echo "Enabling address-sanitizer if available"72CMAKE_ARGS="-DUSE_ASAN=ON ${CMAKE_ARGS}"73;;74--sanitizeub) echo "Enabling ub-sanitizer if available"75CMAKE_ARGS="-DUSE_UBSAN=ON ${CMAKE_ARGS}"76;;77--gold) echo "Gold build enabled"78CMAKE_ARGS="-DGOLD=ON ${CMAKE_ARGS}"79;;80--alderlake) echo "Alderlake opt"81CMAKE_ARGS="-DCMAKE_C_FLAGS=\"-march=alderlake\" -DCMAKE_CPP_FLAGS=\"-march=alderlake\""82;;83--no_mmap) echo "Disable mmap"84CMAKE_ARGS="-DUSE_NO_MMAP=ON ${CMAKE_ARGS}"85;;86*) MAKE_OPT="$1 ${MAKE_OPT}"87;;88esac89shift90done9192if [ ! -z "$TARGET_OS" ]; then93echo "Building for $TARGET_OS"94BUILD_DIR="$(tr [A-Z] [a-z] <<< build-"$TARGET_OS")"95else96echo "Building for native host."97BUILD_DIR="build"98fi99100CORES_COUNT=4101if [[ "$OSTYPE" == "linux-gnu"* ]]; then102CORES_COUNT="$(nproc)"103elif [[ "$OSTYPE" == "darwin"* ]]; then104CORES_COUNT="$(sysctl -n hw.physicalcpu)"105fi106107# Strict errors. Any non-zero return exits this script108set -e109110mkdir -p ${BUILD_DIR}111pushd ${BUILD_DIR}112113cmake $CMAKE_ARGS ..114make -j$CORES_COUNT $MAKE_OPT115popd116117118