diff --git a/build-k4.sh b/build-k4.sh new file mode 100755 index 0000000000000000000000000000000000000000..8e4396f652b3090f1a906a8d2ff8b435edfe405e --- /dev/null +++ b/build-k4.sh @@ -0,0 +1,107 @@ +#!/bin/bash +############################################################################## +# Setup script for CEPCSW: +# - build the cepcsw +# +# Usage: +# $ bash build.sh +# or: +# $ +# +# Author: Tao Lin <lintao@ihep.ac.cn> +############################################################################## + +function info:() { + echo "INFO: $*" 1>&2 +} + +function error:() { + echo "ERROR: $*" 1>&2 +} + +function check-cepcsw-envvar() { + source /cvmfs/sw.hsf.org/key4hep/setup.sh +} + +function build-dir() { + local blddir=build + + # If detect the extra env var, append it to the build dir + if [ -n "${k4_version}" ]; then + blddir=${blddir}.${k4_version} + fi + if [ -n "${k4_platform}" ]; then + blddir=${blddir}.${k4_platform} + fi + + echo $blddir +} + +function check-working-builddir() { + local blddir=$(build-dir) + if [ ! -d "$blddir" ]; then + mkdir $blddir || { + error: "Failed to create $blddir" + return 1 + } + fi +} + +function run-cmake() { + local blddir=$(build-dir) + + if [ ! -d "$blddir" ]; then + error: "Failed to create $blddir" + return 1 + fi + + cd $blddir + + local clhep_prefix=$(clhep-config --prefix) + local clhep_include=${clhep_prefix}/include + + # locate the pandorapfa + local pandorapfa=$(echo $CMAKE_PREFIX_PATH | tr ':' '\n' | grep pandorapfa | head -n1) + info: "Find PandoraPFA: $pandorapfa" + if [ -z "$pandorapfa" ]; then + error: "Failed to find the PandoraPFA" + return 1 + fi + + local pandorapfa_cmake_modules=${pandorapfa}/cmakemodules + info: "Find PandoraPFA cmake: ${pandorapfa_cmake_modules}" + if [ ! -d "${pandorapfa_cmake_modules}" ]; then + error: "Failed to find the cmake modules for PandoraPFA: ${pandorapfa_cmake_modules}" + return 1 + fi + + local cmake_modules=${pandorapfa_cmake_modules} + + cmake .. -DHOST_BINARY_TAG=${k4_platform} \ + -DCLHEP_INCLUDE_DIR=${clhep_include} \ + -DCMAKE_MODULE_PATH=${cmake_modules} || { + error: "Failed to cmake" + return 1 + } + +} + +function run-make() { + make +} + +############################################################################## +# Parse the command line options +############################################################################## + +# The current default platform +k4_platform=x86_64-linux-gcc9-opt +k4_version=master + +check-cepcsw-envvar || exit -1 + +check-working-builddir || exit -1 + +run-cmake || exit -1 + +run-make || exit -1