From 2b3c9008dc5a9b51bb7e7d3e67e5545f65a4bebc Mon Sep 17 00:00:00 2001 From: Marko Petric <marko.petric@cern.ch> Date: Tue, 9 Jul 2019 10:59:31 +0200 Subject: [PATCH] Update CI on Macs --- .dd4hep-ci.d/init_mac.sh | 100 +++++++++++++++++++++++++++++++++++++++ .gitlab-ci.yml | 14 +++--- 2 files changed, 106 insertions(+), 8 deletions(-) create mode 100644 .dd4hep-ci.d/init_mac.sh diff --git a/.dd4hep-ci.d/init_mac.sh b/.dd4hep-ci.d/init_mac.sh new file mode 100644 index 000000000..f3fdd5aed --- /dev/null +++ b/.dd4hep-ci.d/init_mac.sh @@ -0,0 +1,100 @@ +#!/bin/bash + +if [ "$(uname)" == "Darwin" ]; then + if [ $(sw_vers -productVersion | awk -F '.' '{print $1 "." $2}') == "10.14" ]; then + OS=mac1014 + COMPILER_TYPE=clang + COMPILER_VERSION=clang100 + else + echo "Bootstrap only works on macOS Mojave (10.14)" + exit 1 + fi +else + echo "This script is only meant for Mac" + exit 1 +fi + +# Determine is you have CVMFS installed +if [ ! -d "/cvmfs" ]; then + echo "No CVMFS detected, please install it." + exit 1 +fi + +if [ ! -d "/cvmfs/clicdp.cern.ch" ]; then + echo "No clicdp CVMFS repository detected, please add it." + exit 1 +fi + +# Choose build type +if [ -z ${BUILD_TYPE} ]; then + BUILD_TYPE=opt +fi + + +# General variables +CLICREPO=/cvmfs/clicdp.cern.ch +BUILD_FLAVOUR=x86_64-${OS}-${COMPILER_VERSION}-${BUILD_TYPE} + +#-------------------------------------------------------------------------------- +# CMake +#-------------------------------------------------------------------------------- + +export CMAKE_HOME=${CLICREPO}/software/CMake/3.14.3/${BUILD_FLAVOUR} +export PATH=${CMAKE_HOME}/bin:$PATH + +#-------------------------------------------------------------------------------- +# Python +#-------------------------------------------------------------------------------- + +export PYTHONDIR=${CLICREPO}/software/Python/2.7.16/${BUILD_FLAVOUR} +export PATH=${PYTHONDIR}/bin:$PATH +export DYLD_LIBRARY_PATH="${PYTHONDIR}/lib:$DYLD_LIBRARY_PATH" + +#-------------------------------------------------------------------------------- +# ROOT +#-------------------------------------------------------------------------------- + +export ROOTSYS=${CLICREPO}/software/ROOT/6.18.00/${BUILD_FLAVOUR} +export PYTHONPATH="$ROOTSYS/lib:$PYTHONPATH" +export PATH="$ROOTSYS/bin:$PATH" +export DYLD_LIBRARY_PATH="$ROOTSYS/lib:$DYLD_LIBRARY_PATH" + +#-------------------------------------------------------------------------------- +# XercesC +#-------------------------------------------------------------------------------- + +export XercesC_HOME=${CLICREPO}/software/Xerces-C/3.1.3/${BUILD_FLAVOUR} +export PATH="$XercesC_HOME/bin:$PATH" +export DYLD_LIBRARY_PATH="$XercesC_HOME/lib:$DYLD_LIBRARY_PATH" + + +#-------------------------------------------------------------------------------- +# Geant4 +#-------------------------------------------------------------------------------- + +export G4INSTALL=${CLICREPO}/software/Geant4/10.05.p01/${BUILD_FLAVOUR} +export G4LIB=$G4INSTALL/lib/Geant4-10.5.1/ +export G4ENV_INIT="${G4INSTALL}/bin/geant4.sh" +export G4SYSTEM="Linux-g++" + + +#-------------------------------------------------------------------------------- +# Boost +#-------------------------------------------------------------------------------- + +export BOOST_ROOT=${CLICREPO}/software/Boost/1.70.0/${BUILD_FLAVOUR} +export DYLD_LIBRARY_PATH="${BOOST_ROOT}/lib:$DYLD_LIBRARY_PATH" + +#-------------------------------------------------------------------------------- +# Ninja +#-------------------------------------------------------------------------------- + +export Ninja_HOME=${CLICREPO}/software/Ninja/1.9.0/${BUILD_FLAVOUR} +export PATH="$Ninja_HOME:$PATH" + +#-------------------------------------------------------------------------------- +# LCIO +#-------------------------------------------------------------------------------- + +export LCIO=${CLICREPO}/software/LCIO/2.12.1/${BUILD_FLAVOUR}/ +export CMAKE_PREFIX_PATH="$LCIO:$CMAKE_PREFIX_PATH" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7955a1fcd..c704e58a3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -124,16 +124,15 @@ slc6-llvm5-Geant10.3-XERCESC: - ninja install - ctest --output-on-failure -mac1013-llvm90-Geant10.3: +mac1014-clang100-Geant10.5: stage: build tags: - mac script: - - export GEANT4_VERSION="10.03.p03" - - source .dd4hep-ci.d/init_x86_64.sh + - source .dd4hep-ci.d/init_mac.sh - mkdir build - cd build - - cmake -GNinja -DDD4HEP_USE_GEANT4=ON -DBoost_NO_BOOST_CMAKE=ON -DDD4HEP_USE_LCIO=ON -DBUILD_TESTING=ON -DGeant4_DIR=$G4INSTALL/lib/Geant4-10.3.3 -DCMAKE_CXX_STANDARD=14 -DCMAKE_BUILD_TYPE=Release -DROOT_DIR=$ROOTSYS .. + - cmake -GNinja -DDD4HEP_USE_GEANT4=ON -DBoost_NO_BOOST_CMAKE=ON -DDD4HEP_USE_LCIO=ON -DBUILD_TESTING=ON -DGeant4_DIR=$G4INSTALL/lib/Geant4-10.5.1 -DCMAKE_CXX_STANDARD=14 -DCMAKE_BUILD_TYPE=Release -DROOT_DIR=$ROOTSYS -DCMAKE_CXX_STANDARD=17 .. - ninja - ninja install - . ../bin/thisdd4hep.sh @@ -146,16 +145,15 @@ mac1013-llvm90-Geant10.3: - ninja install - ctest --output-on-failure -mac1013-llvm90-Geant10.4-XERCESC: +mac1014-clang100-Geant10.5-XERCESC: stage: build tags: - mac script: - - export GEANT4_VERSION="10.04" - - source .dd4hep-ci.d/init_x86_64.sh + - source .dd4hep-ci.d/init_mac.sh - mkdir build - cd build - - cmake -GNinja -DDD4HEP_USE_GEANT4=ON -DBoost_NO_BOOST_CMAKE=ON -DDD4HEP_USE_LCIO=ON -DBUILD_TESTING=ON -DGeant4_DIR=$G4INSTALL/lib/Geant4-10.4.0 -DCMAKE_BUILD_TYPE=Release -DDD4HEP_USE_XERCESC=ON -DXERCESC_ROOT_DIR=${XercesC_HOME} -DROOT_DIR=$ROOTSYS .. + - cmake -GNinja -DDD4HEP_USE_GEANT4=ON -DBoost_NO_BOOST_CMAKE=ON -DDD4HEP_USE_LCIO=ON -DBUILD_TESTING=ON -DGeant4_DIR=$G4INSTALL/lib/Geant4-10.5.1 -DCMAKE_BUILD_TYPE=Release -DDD4HEP_USE_XERCESC=ON -DXERCESC_ROOT_DIR=${XercesC_HOME} -DROOT_DIR=$ROOTSYS -DCMAKE_CXX_STANDARD=17 .. - ninja - ninja install - . ../bin/thisdd4hep.sh -- GitLab