Page MenuHomec4science

compile_revision.sh
No OneTemporary

File Metadata

Created
Tue, Sep 17, 05:54

compile_revision.sh

#!/usr/bin/bash
set -uo pipefail
akantu_src=$1
test_src=$2
revision=$3
usage() {
echo "$0 <akantu_src> <test_src> <revision>"
}
if [ -z ${akantu_src} ]; then
usage
exit 1
fi
if [ ! -e ${test_src} -o -z ${test_src} ]; then
usage
exit 2
fi
wd=${PWD}
prefix=$(mktemp --directory akantu.XXXXXXX --tmpdir)
cd ${prefix}
git clone ${akantu_src} -n akantu
cd akantu
git checkout ${revision}
revision_date=$(git log -1 --format='%ct')
if [ ! -e CMakeLists.txt ]; then
updateRuns.py --updates "state = SUBTREE" --truerun
exit 5000
fi
if [ "${revision_date}" -lt 1549035125 ]; then
patch -p1 -N < $test_src/no_abaqus.patch
patch -p1 -N < $test_src/no_abaqus_1.patch
fi
if [ "${revision_date}" -lt 1298030503 ]; then
patch -p1 -N < $test_src/isnan_mass.patch
elif [ "${revision_date}" -lt 1329138349 ]; then
patch -p1 -N < $test_src/isnan_math.patch
fi
if [ "${revision_date}" -lt 1480696738 -a "${revision_date}" -gt 1480696036 ]; then
patch -p1 < $test_src/git-epfl-ch.patch
fi
pushQuantity.py --quantity_id revision_date --values ${revision_date} --is_float --truerun
cd ${prefix}/akantu
mkdir build
cd build
echo "*** Configuring revision r${revision} ***"
cmake -DCMAKE_BUILD_TYPE:STRING=Release \
-DCMAKE_CXX_FLAGS:STRING='-Wno-class-memaccess -march=native'\
-DAKANTU_DEBUG:BOOL=OFF \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION:BOOL=TRUE \
-DAUTO_MOVE_UNKNOWN_FILES:BOOL=TRUE \
.. 2>&1 | tee ${wd}/configure-akantu-${revision}.log
if [ ! $? -eq 0 ]; then
updateRuns.py --updates "state = FAIL_CONFIG_AKANTU" --truerun
exit 100
fi
make_opts=""
if [ x"SLURM_CPUS_PER_TASK" != "x" ]; then
make_opts="-j ${SLURM_CPUS_PER_TASK}"
fi
echo "*** Building revision r${revision} ***"
make ${make_opts} 2>&1 | tee ${wd}/make-akantu-${revision}
if [ ! $? -eq 0 ]; then
updateRuns.py --updates "state = FAIL_MAKE_AKANTU" --truerun
exit 200
fi
mkdir ${prefix}/build
cd ${prefix}/build
# 1413714847 epoch of tag v2.2
if [ "${revision_date}" -lt 1413714847 ]; then
echo "MAJOR 1"
VERSION=1
else
echo "MAJOR 2"
VERSION=2
fi
echo "*** Configuring test for r${revision} ***"
cmake -DCMAKE_CXX_FLAGS:STRING='-Wno-class-memaccess -march=native' \
-DAKANTU_VERSION_MAJOR:STRING=$VERSION \
-DAkantu_DIR:PATH=${prefix}/akantu/build \
-DAkantu_BUILD_DIR:PATH=${prefix}/akantu/build \
${test_src} \
2>&1 | tee ${wd}/configure-test-${revision} 2>&1
if [ ! $? -eq 0 ]; then
updateRuns.py --updates "state = FAIL_CONFIG_TEST" --truerun
exit 300
fi
echo "*** Building test for r${revision} ***"
make | tee ${wd}/make-test-${revision} 2>&1
if [ ! $? -eq 0 ]; then
updateRuns.py --updates "state = FAIL_MAKE_TEST" --truerun
exit 400
fi
cp perf_test ${wd}

Event Timeline