From 1b26dde1352ec20f29e6d0d4908d44c545146b18 Mon Sep 17 00:00:00 2001
From: Paul Gessinger <paul.gessinger@cern.ch>
Date: Thu, 14 Feb 2019 11:24:51 +0100
Subject: [PATCH] figure out if build has compatible standard set

and print error message if that is not the case.
---
 cmake/DD4hepConfig.cmake.in | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/cmake/DD4hepConfig.cmake.in b/cmake/DD4hepConfig.cmake.in
index a52bb6084..24d1c1809 100644
--- a/cmake/DD4hepConfig.cmake.in
+++ b/cmake/DD4hepConfig.cmake.in
@@ -21,12 +21,24 @@ if (_lastdir STREQUAL "cmake")
   get_filename_component(_thisdir "${_thisdir}" PATH)
 endif()
 
-set ( DD4hep_DIR         "${_thisdir}" )
-set ( DD4hep_ROOT        "${_thisdir}" )
-set ( DD4hep_VERSION     "@DD4hep_VERSION@" )
-set ( DD4hep_SOVERSION   "@DD4hep_SOVERSION@" )
-set ( DD4HEP_USE_GEANT4  "@DD4HEP_USE_GEANT4@" )
-set ( DD4HEP_USE_XERCESC "@DD4HEP_USE_XERCESC@" )
+set ( DD4hep_DIR                "${_thisdir}" )
+set ( DD4hep_ROOT               "${_thisdir}" )
+set ( DD4hep_VERSION            "@DD4hep_VERSION@" )
+set ( DD4hep_SOVERSION          "@DD4hep_SOVERSION@" )
+set ( DD4HEP_USE_GEANT4         "@DD4HEP_USE_GEANT4@" )
+set ( DD4HEP_USE_XERCESC        "@DD4HEP_USE_XERCESC@" )
+set ( DD4hep_BUILD_CXX_STANDARD @CMAKE_CXX_STANDARD@ )
+
+# figure out if including build has compatible standard set
+if("${CMAKE_CXX_STANDARD}" STREQUAL "")
+  set ( CMAKE_CXX_STANDARD  "${DD4hep_BUILD_CXX_STANDARD}" )
+else()
+  if (NOT "${CMAKE_CXX_STANDARD}" EQUAL "${DD4hep_BUILD_CXX_STANDARD}")
+    message( SEND_ERROR "CMAKE_CXX_STANDARD is set to C++${CMAKE_CXX_STANDARD}\
+             but C++${DD4hep_BUILD_CXX_STANDARD} is required.")
+  endif()
+endif()
+
 set ( CMAKE_CXX_STANDARD  @CMAKE_CXX_STANDARD@ )
 set ( CMAKE_CXX_STANDARD_REQUIRED ON )
 set ( CMAKE_CXX_EXTENSIONS OFF )
-- 
GitLab