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