From 4f76ff9d584e5e2d58477925fa2c15d3fe4c1a14 Mon Sep 17 00:00:00 2001
From: Marko Petric <marko.petric@cern.ch>
Date: Fri, 24 Jun 2016 11:24:43 +0000
Subject: [PATCH] Add diagnostic color to gcc 4.9 and move CI build to Ninja
 and add output on failure to tests

---
 .gitlab-ci.d/init_x86_64.sh |  6 ++++-
 .gitlab-ci.yml              | 48 ++++++++++++++++++-------------------
 cmake/DD4hepBuild.cmake     |  9 +++++--
 3 files changed, 36 insertions(+), 27 deletions(-)

diff --git a/.gitlab-ci.d/init_x86_64.sh b/.gitlab-ci.d/init_x86_64.sh
index 5e5a961b1..cc63e4549 100644
--- a/.gitlab-ci.d/init_x86_64.sh
+++ b/.gitlab-ci.d/init_x86_64.sh
@@ -100,5 +100,9 @@ export LD_LIBRARY_PATH="$LCIO/lib:$LD_LIBRARY_PATH"
 export BOOST_ROOT=${CLICREPO}/software/Boost/1.61.0/${BUILD_FLAVOUR}
 export LD_LIBRARY_PATH="${BOOST_ROOT}/lib:$LD_LIBRARY_PATH"
 
+#--------------------------------------------------------------------------------
+#     Ninja
+#--------------------------------------------------------------------------------
 
-
+export Ninja_HOME=${CLICREPO}/software/Ninja/1.7.1/${BUILD_FLAVOUR}
+export PATH="$Ninja_HOME:$PATH"
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 42a962d59..c6c64bcbf 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -8,18 +8,18 @@ slc6-gcc48:
     - source .gitlab-ci.d/init_x86_64.sh
     - mkdir build 
     - cd build
-    - cmake -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -DCLHEP_DIR=$CLHEP -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.1.3 -D DD4HEP_USE_CXX11=ON ..        
-    - make -j4
-    - make install
+    - cmake -GNinja -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -DCLHEP_DIR=$CLHEP -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.1.3 -D DD4HEP_USE_CXX11=ON ..        
+    - ninja
+    - ninja install
     - . ../bin/thisdd4hep.sh
-    - make test
+    - ctest --output-on-failure
     - cd ../examples/
     - mkdir build
     - cd build
-    - cmake ..
-    - make -j4
-    - make install
-    - make test
+    - cmake -GNinja ..
+    - ninja
+    - ninja install
+    - ctest --output-on-failure
     - cd ../..
     - rm -rf .git
     - sshpass -p $CLICTEL_PASS rsync -arv -e ssh --delete . clictel@lxplus:/afs/cern.ch/eng/clic/software/DD4hep/x86_64-slc6-gcc48-opt
@@ -34,18 +34,18 @@ slc6-gcc49:
     - source .gitlab-ci.d/init_x86_64.sh
     - mkdir build 
     - cd build
-    - cmake -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -DCLHEP_DIR=$CLHEP -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.1.3 -D DD4HEP_USE_CXX11=ON ..        
-    - make -j3
-    - make install
+    - cmake -GNinja -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -DCLHEP_DIR=$CLHEP -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.1.3 -D DD4HEP_USE_CXX11=ON ..        
+    - ninja
+    - ninja install
     - . ../bin/thisdd4hep.sh
-    - make test
+    - ctest --output-on-failure
     - cd ../examples/
     - mkdir build
     - cd build
-    - cmake ..
-    - make -j4
-    - make install
-    - make test
+    - cmake -GNinja ..
+    - ninja
+    - ninja install
+    - ctest --output-on-failure
     - cd ../..
     - rm -rf .git
     - sshpass -p $CLICTEL_PASS rsync -arv -e ssh --delete . clictel@lxplus:/afs/cern.ch/eng/clic/software/DD4hep/x86_64-slc6-gcc49-opt
@@ -60,18 +60,18 @@ centos7-gcc49:
     - source .gitlab-ci.d/init_x86_64.sh
     - mkdir build 
     - cd build
-    - cmake -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -DCLHEP_DIR=$CLHEP -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.1.3 -D DD4HEP_USE_CXX11=ON ..        
-    - make -j3
-    - make install
+    - cmake -GNinja -D DD4HEP_USE_GEANT4=ON -D DD4HEP_USE_BOOST=ON -DBoost_NO_BOOST_CMAKE=ON -D DD4HEP_USE_LCIO=ON -D BUILD_TESTING=ON -DCLHEP_DIR=$CLHEP -D Geant4_DIR=$G4INSTALL/lib64/Geant4-10.1.3 -D DD4HEP_USE_CXX11=ON ..        
+    - ninja
+    - ninja install
     - . ../bin/thisdd4hep.sh
-    - make test
+    - ctest --output-on-failure
     - cd ../examples/
     - mkdir build
     - cd build
-    - cmake ..
-    - make -j4
-    - make install
-    - make test
+    - cmake -GNinja ..
+    - ninja
+    - ninja install
+    - ctest --output-on-failure
     - cd ../..
     - rm -rf .git
     - sshpass -p $CLICTEL_PASS rsync -arv -e ssh --delete . clictel@lxplus:/afs/cern.ch/eng/clic/software/DD4hep/x86_64-centos7-gcc49-opt
diff --git a/cmake/DD4hepBuild.cmake b/cmake/DD4hepBuild.cmake
index 1246462c5..bd9830f72 100644
--- a/cmake/DD4hepBuild.cmake
+++ b/cmake/DD4hepBuild.cmake
@@ -26,18 +26,23 @@ endmacro(dd4hep_to_parent_scope)
 macro(dd4hep_set_compiler_flags)
   if ( DD4HEP_USE_CXX14 )
     set ( CMAKE_CXX_FLAGS "-std=c++14 -ftls-model=global-dynamic -Wall -Wextra -pedantic -Wshadow -Wformat-security -Wno-long-long -Wdeprecated")
-    ##set ( CMAKE_CXX_FLAGS "-std=c++14 -Wall -Wextra -pedantic -Wshadow -Wformat-security -Wno-long-long -Wdeprecated")
     set ( DD4HEP_USE_CXX11 OFF ) 
     set ( DD4HEP_USE_STDCXX 14 )
     add_definitions(-DDD4HEP_USE_STDCXX=14)
   elseif ( DD4HEP_USE_CXX11 )
     set ( CMAKE_CXX_FLAGS "-std=c++11 -ftls-model=global-dynamic -Wall -Wextra -pedantic -Wshadow -Wformat-security -Wno-long-long -Wdeprecated")
-    ##set ( CMAKE_CXX_FLAGS "-std=c++11 -Wall -Wextra -pedantic -Wshadow -Wformat-security -Wno-long-long -Wdeprecated")
     set ( DD4HEP_USE_STDCXX 11 )
     add_definitions(-DDD4HEP_USE_STDCXX=11)
   else()
     set( CMAKE_CXX_FLAGS "-Wall -Wextra -pedantic -Wshadow -Wformat-security -Wno-long-long -Wdeprecated")
   endif()
+
+  if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+    if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.8)
+      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color=always")
+    endif()
+  endif()
+
 endmacro(dd4hep_set_compiler_flags)
 #---------------------------------------------------------------------------------------------------
 #  dd4hep_debug
-- 
GitLab