build.sh bash script cleanup

* use `set -e` to abort script execution when error codes fail (and haven't been checked)
* use [[ ]] instead of [ ] or test.
* use ROOTDIR/BUILDDIR variables for better readability
* use mktemp in order to avoid accidental name clashes.
* use `make install` instead of `install ...` as cleaner installation process
  * this however doesn't install soltest anymore, which I believe is
    right, as normal users should not need it installed in their system.
    Those who want to run the test suite, can do so manually
* allow optional passing of more additional custom args to cmake
This commit is contained in:
Christian Parpart 2018-12-07 12:01:14 +01:00 committed by Leonardo Alt
parent 0300e09d3e
commit a3829516f0

View File

@ -1,28 +1,26 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e
if [ -z "$1" ]; then ROOTDIR="$(dirname "$0")/.."
BUILDDIR="${ROOTDIR}/build"
if [[ $# -eq 0 ]]; then
BUILD_TYPE=Release BUILD_TYPE=Release
else else
BUILD_TYPE="$1" BUILD_TYPE="$1"
fi fi
cd $(dirname "$0")/.. &&
if [[ "$(git tag --points-at HEAD 2>/dev/null)" == v* ]]; then if [[ "$(git tag --points-at HEAD 2>/dev/null)" == v* ]]; then
touch prerelease.txt touch "${ROOTDIR}/prerelease.txt"
fi fi
mkdir -p build && mkdir -p "${BUILDDIR}"
cd build && cd "${BUILDDIR}"
cmake .. -DCMAKE_BUILD_TYPE="$BUILD_TYPE" &&
cmake .. -DCMAKE_BUILD_TYPE="$BUILD_TYPE" "${@:2}"
make -j2 make -j2
if [ $? -ne 0 ]; then if [[ "${CI}" == "" ]]; then
echo "Failed to build" echo "Installing ..."
exit 1 sudo make install
fi
if [ -z $CI ]; then
echo "Installing solc and soltest"
install solc/solc /usr/local/bin && install test/soltest /usr/local/bin
fi fi