From 1e8bb18992c33db648b8c1c9faf72b88515a4134 Mon Sep 17 00:00:00 2001 From: Tomas Pecka <peckato1@fit.cvut.cz> Date: Sun, 11 Nov 2018 14:46:33 +0100 Subject: [PATCH] Build: Adapt and simplify all- scripts --- all-cmake-debug.sh | 48 ++++--------------------------------- all-cmake-release.sh | 48 ++++--------------------------------- all-cmake-template.sh | 55 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 86 deletions(-) create mode 100755 all-cmake-template.sh diff --git a/all-cmake-debug.sh b/all-cmake-debug.sh index c8c12e3ffe..49df2732b4 100755 --- a/all-cmake-debug.sh +++ b/all-cmake-debug.sh @@ -1,46 +1,8 @@ -THREADS=${1:-5} -DIRECTORY=$(pwd) - -cd CMake -./alib_cmake.py -w -m -cd .. - -if [ ! -d debug ] && [ ! -L debug ]; then - mkdir debug -fi - -if [ -L debug ]; then - LINK=$(readlink debug) - if [ ! -d ${LINK} ]; then - mkdir ${LINK} - fi - cd ${LINK} - cmake ${DIRECTORY} - cd ${DIRECTORY}/debug -else - cd debug - cmake .. -fi - -CXX=clang++ make -j${THREADS} || exit 1 +#!/usr/bin/env bash -for test in $(ls */test-alib2*); do \ - if [ -f ${test} ]; then ./${test} || exit 1; fi \ -done - -if [ ! -d bin ]; then - mkdir bin -fi - -rm bin/* -cd bin -find .. -executable -type f | grep -v 'CMakeFiles' | while read line; do ln -s $line $(basename $line); done - -cp ${DIRECTORY}/translateAddresses . -cp ${DIRECTORY}/xmlFormat . +THREADS=${1:-5} +BUILD_DIR=${2:-"debug"} -cd ${DIRECTORY} +source $(dirname $0)/all-cmake-template.sh -for test in $(ls tests.*.sh); do \ - ./${test} debug/bin ${THREADS}; \ -done +build "$BUILD_DIR" "Debug" "$THREADS" "$(dirname $0)" diff --git a/all-cmake-release.sh b/all-cmake-release.sh index aae48c033c..27945d38d4 100755 --- a/all-cmake-release.sh +++ b/all-cmake-release.sh @@ -1,46 +1,8 @@ -THREADS=${1:-5} -DIRECTORY=$(pwd) - -cd CMake -./alib_cmake.py -w -m -cd .. - -if [ ! -d release ] && [ ! -L release ]; then - mkdir release -fi - -if [ -L release ]; then - LINK=$(readlink release) - if [ ! -d ${LINK} ]; then - mkdir ${LINK} - fi - cd ${LINK} - cmake -DCMAKE_BUILD_TYPE=Release ${DIRECTORY} - cd ${DIRECTORY}/release -else - cd release - cmake -DCMAKE_BUILD_TYPE=Release .. -fi - -CXX=clang++ make -j${THREADS} || exit 1 +#!/usr/bin/env bash -for test in $(ls */test-alib2*); do \ - if [ -f ${test} ]; then ./${test} || exit 1; fi \ -done - -if [ ! -d bin ]; then - mkdir bin -fi - -rm bin/* -cd bin -find .. -executable -type f | grep -v 'CMakeFiles' | while read line; do ln -s $line $(basename $line); done - -cp ${DIRECTORY}/translateAddresses . -cp ${DIRECTORY}/xmlFormat . +THREADS=${1:-5} +BUILD_DIR=${2:-"release"} -cd ${DIRECTORY} +source $(dirname $0)/all-cmake-template.sh -for test in $(ls tests.*.sh); do \ - ./${test} release/bin ${THREADS}; \ -done +build "$BUILD_DIR" "Release" "$THREADS" "$(dirname $0)" diff --git a/all-cmake-template.sh b/all-cmake-template.sh new file mode 100755 index 0000000000..09c06a4616 --- /dev/null +++ b/all-cmake-template.sh @@ -0,0 +1,55 @@ +THREADS=${1:-5} + +# $1 - release/build +# $2 - cmake build-type +# $3 - $THREADS +# $4 - root directory +function build () { + BUILD_DIR="$1" + THREADS="$3" + DIRECTORY=$(realpath "$4") + + echo "------------------------------------------------------------------------------" 1>&2 + echo "Building '$DIRECTORY' in $2 mode: Build dir is '$BUILD_DIR', threads: $THREADS" 1>&2 + echo "------------------------------------------------------------------------------" 1>&2 + + ./CMake/generate.py -wm + + if [ ! -d "$BUILD_DIR" ] && [ ! -L "$BUILD_DIR" ]; then + mkdir "$BUILD_DIR" + fi + + if [ -L "${BUILD_DIR}" ]; then + LINK=$(readlink "${BUILD_DIR}") + if [ ! -d ${LINK} ]; then + mkdir ${LINK} + fi + cd ${LINK} + cmake -DCMAKE_BUILD_TYPE=$2 ${DIRECTORY} + cd ${DIRECTORY}/${BUILD_DIR} + else + cd "${BUILD_DIR}" + cmake -DCMAKE_BUILD_TYPE=$2 .. + fi + + make -j${THREADS} || exit 1 + make test || exit 1 + + # todo: everything below should be handled by cmake's make test and make install + if [ ! -d bin ]; then + mkdir bin + fi + + rm bin/* + cd bin + find .. -executable -type f | grep -v 'CMakeFiles' | while read line; do ln -s $line $(basename $line); done + + cp ${DIRECTORY}/translateAddresses . + cp ${DIRECTORY}/xmlFormat . + + cd ${DIRECTORY} + + for test in $(ls tests.*.sh); do \ + ./${test} ${BUILD_DIR}/bin ${THREADS}; \ + done +} -- GitLab