2019-08-22 21:03:18 +00:00
#!/bin/sh
2021-11-04 21:48:48 +00:00
2021-09-22 21:46:52 +00:00
cd " $( dirname " $0 " ) " || exit 1
2021-11-04 21:48:48 +00:00
2018-02-01 23:42:21 +00:00
# some environments have cmake v2 as 'cmake' and v3 as 'cmake3'
# check for cmake3 first then fallback to just cmake
2021-11-04 21:48:48 +00:00
B_CMAKE = $( command -v cmake3 2>/dev/null)
if [ " $? " -eq 0 ] ; then
# Continue, cmake3 exists in $PATH.
continue
2018-02-24 19:39:30 +00:00
else
2021-11-04 21:48:48 +00:00
# OK, so cmake3 isn't in path, so let's test to see if `cmake` itself exists, before proceeding.
if command -v cmake 2>/dev/null; then
B_CMAKE = $( command -v cmake)
# We have a cmake executable available, now let's proceed!
else
# As self-explanatory, the cmake executable isn't available, so we should fail here.
echo " ERROR: CMake not in $PATH , cannot build! Please install CMake, or if this persists, file a bug report. "
exit 1
fi
2018-02-24 19:39:30 +00:00
fi
2021-11-04 21:48:48 +00:00
# Set default build type, but in CI, this is set to Release.
# For downstream distributions, our recommendation is to set this type in your build scripts to Release, and supply Debug build types in your debug packages.
2018-02-13 19:49:39 +00:00
B_BUILD_TYPE = ${ B_BUILD_TYPE :- Debug }
2021-11-04 21:48:48 +00:00
2019-08-22 21:03:18 +00:00
if [ " $( uname) " = "Darwin" ] ; then
2021-11-04 21:48:48 +00:00
# macOS needs a little help, so we source this environment script to fix paths.
if [ ! -e "./macOS_environment.sh" ] ; then
echo "macOS environment script not found, this isn't meant to happen!"
exit 1
else
. ./macOS_environment.sh
fi
B_CMAKE_FLAGS = " -DCMAKE_OSX_SYSROOT= $( xcode-select --print-path) /Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 ${ B_CMAKE_FLAGS :- } "
fi
# Source local build variables to the environment, if available.
# If not, continue as normal, and silently.
if [ -e "./build_env.sh" ] ; then
. "./build_env.sh"
2018-02-13 19:49:39 +00:00
fi
2020-05-30 21:33:08 +00:00
# Initialise Git submodules
git submodule update --init --recursive
2021-11-04 21:48:48 +00:00
B_CMAKE_FLAGS = " -DCMAKE_BUILD_TYPE= ${ B_BUILD_TYPE } ${ B_CMAKE_FLAGS :- } "
# Clear build directory, but do a conditional first!
if [ -d "./build" ] ; then
rm -rf ./build
fi
# Previous versions of this script created the build directory, and CD'd into it - CMake allows us to do this another way...
# Note: If you use Ninja (i.e, cmake -GNinja -B build), run Ninja like: "ninja -C build", just like you would with Meson.
$B_CMAKE " $B_CMAKE_FLAGS " -B build || exit 1
echo "INFO: Now commencing Barrier build process..."
echo " INFO: We're building an $B_BUILD_TYPE output type. "
$( command -v make) -C build || exit 1
# Implictly, we assume the build was successful due to no exits.
# Later revisions of this script should do conditionals. TODO.
echo "INFO: Success! The build completed successfully!"
exit