From fa7fcbf00eab9ce9b7bddcf19ffb859df708fef6 Mon Sep 17 00:00:00 2001
From: Markus Frank <markus.frank@cern.ch>
Date: Sun, 12 Jul 2015 01:10:33 +0000
Subject: [PATCH] Bug fix for compatibility mode

---
 CMakeLists.txt                    |  5 ++++
 DDCore/CMakeLists.txt             |  4 +--
 GaudiPluginService/CMakeLists.txt | 14 +++++-----
 cmake/FindROOT.cmake              |  7 +++++
 cmake/MakeRootMap.cmake           | 44 ++++++++++++++++++++++---------
 5 files changed, 52 insertions(+), 22 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 34835e6db..227fd39d8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -101,11 +101,16 @@ ENDIF()
 
 #---Packages------------------------------------------------------------------------
 
+
+
 ##------ don't allow to use a pre-built DDSegmentation  ----------------------------
 #find_package( DDSegmentation QUIET )
 #if( NOT DDSegmentation_FOUND ) 
 #  add_subdirectory(DDSegmentation)
 #endif()
+if(DD4HEP_NO_REFLEX)
+  add_subdirectory(GaudiPluginService)
+endif()
 
 add_subdirectory(DDSegmentation)
 add_subdirectory(DDCore)
diff --git a/DDCore/CMakeLists.txt b/DDCore/CMakeLists.txt
index daafd4d5f..6a7b39e9f 100644
--- a/DDCore/CMakeLists.txt
+++ b/DDCore/CMakeLists.txt
@@ -16,7 +16,7 @@ project(DDCore)
 
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include 
   ${DDSegmentation_INCLUDE_DIRS} 
-  ${DDPluginManager_INCLUDE_DIRS})
+  ${GaudiPluginService_INCLUDE_DIRS})
 
 file(GLOB sources src/*.cpp src/Evaluator/*.cpp src/XML/*.cpp)
 file(GLOB plugin_sources src/plugins/*.cpp)
@@ -49,7 +49,7 @@ endif()
 
 add_library(DDCore SHARED ${sources} ${parser_sources} )
 
-target_link_libraries(DDCore ${ROOT_LIBRARIES} ${XML_LIBRARIES} ${DDPluginManager_LIBRARIES} ${DDSegmentation_LIBRARIES} Geom ${libraries})
+target_link_libraries(DDCore ${ROOT_LIBRARIES} ${XML_LIBRARIES} ${GaudiPluginService_LIBRARIES} ${DDSegmentation_LIBRARIES} Geom ${libraries})
 
 ## generates rootmap and installs the library
 add_dd4hep_plugin(DDCorePlugins SHARED ${plugin_sources})
diff --git a/GaudiPluginService/CMakeLists.txt b/GaudiPluginService/CMakeLists.txt
index d7746f745..44a6c6cb9 100644
--- a/GaudiPluginService/CMakeLists.txt
+++ b/GaudiPluginService/CMakeLists.txt
@@ -1,15 +1,15 @@
 cmake_minimum_required(VERSION 2.8.3 FATAL_ERROR)
 
-project(DDPluginManager)
+project(GaudiPluginService)
 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
 
-add_library(DDPluginManager SHARED src/PluginService.cpp src/capi_pluginservice.cpp)
-target_link_libraries(DDPluginManager ${CMAKE_DL_LIBS})
-SET_TARGET_PROPERTIES(DDPluginManager PROPERTIES VERSION ${DD4hep_VERSION} SOVERSION ${DD4hep_SOVERSION})
+add_library(GaudiPluginService SHARED src/PluginService.cpp src/capi_pluginservice.cpp)
+target_link_libraries(GaudiPluginService ${CMAKE_DL_LIBS})
+SET_TARGET_PROPERTIES(GaudiPluginService PROPERTIES VERSION ${DD4hep_VERSION} SOVERSION ${DD4hep_SOVERSION})
 
 if( NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) 
-  SET ( DDPluginManager_LIBRARIES DDPluginManager  PARENT_SCOPE )
-  SET ( DDPluginManager_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} PARENT_SCOPE )
+  SET ( GaudiPluginService_LIBRARIES GaudiPluginService  PARENT_SCOPE )
+  SET ( GaudiPluginService_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} PARENT_SCOPE )
 endif()
 
 add_executable(listcomponents src/listcomponents.cpp src/PluginService.cpp)
@@ -20,6 +20,6 @@ install(DIRECTORY Gaudi
   DESTINATION include
   PATTERN ".svn" EXCLUDE )
 
-install(TARGETS listcomponents DDPluginManager
+install(TARGETS listcomponents GaudiPluginService
   RUNTIME DESTINATION bin
   LIBRARY DESTINATION lib )
diff --git a/cmake/FindROOT.cmake b/cmake/FindROOT.cmake
index a57e8eb6e..c42cf3364 100644
--- a/cmake/FindROOT.cmake
+++ b/cmake/FindROOT.cmake
@@ -47,6 +47,13 @@ if(ROOT_CONFIG_EXECUTABLE)
 endif()
 
 set(ROOT_LIBRARIES ${ROOT_LIBRARIES} -lGenVector)     
+#
+#  No Relex library present for ROOT 6
+#
+if(NOT DD4HEP_NO_REFLEX)
+  set(ROOT_LIBRARIES  ${ROOT_LIBRARIES} -lReflex)
+endif()
+
 set(ROOT_EVE_LIBRARIES ${ROOT_EVE_LIBRARIES} )     
 
 # handle the QUIETLY and REQUIRED arguments and set ROOT_FOUND to TRUE if
diff --git a/cmake/MakeRootMap.cmake b/cmake/MakeRootMap.cmake
index 40565d549..6af82a899 100644
--- a/cmake/MakeRootMap.cmake
+++ b/cmake/MakeRootMap.cmake
@@ -1,19 +1,37 @@
 
+if(DD4HEP_NO_REFLEX)
+  #
+  #  Running listcomponents from Gaudi
+  #
+  FIND_PROGRAM( ROOT_genmap_CMD listcomponents PATHS ${genmap_install_dir}/../bin )
+  MESSAGE( STATUS " *** MakeROOTMap[components].cmake run command : ${ROOT_genmap_CMD} -o ${rootmapfile} ${libname} 
+                 WORKING_DIRECTORY ${genmap_install_dir} "
+    )  
+  EXECUTE_PROCESS( COMMAND 
+    ${ROOT_genmap_CMD} -o ${rootmapfile} ${libname}
+    WORKING_DIRECTORY ${genmap_install_dir}
+    )
 
-FIND_PROGRAM( ROOT_genmap_CMD genmap PATHS $ENV{ROOTSYS}/bin $ENV{PATH} )
+else()
+  #
+  #  Running genmap from ROOT 5
+  #
+  FIND_PROGRAM( ROOT_genmap_CMD genmap PATHS $ENV{ROOTSYS}/bin $ENV{PATH} )
 
-MESSAGE( STATUS " *** MakeROOTMap.cmake run command : ${ROOT_genmap_CMD} -debug -i ${libname} -o ${rootmapfile}
+  MESSAGE( STATUS " *** MakeROOTMap.cmake run command : ${ROOT_genmap_CMD} -debug -i ${libname} -o ${rootmapfile}
                  WORKING_DIRECTORY ${genmap_install_dir} "
-)
+    )
 
-if(APPLE)
-  #MESSAGE( STATUS " set DYLD_LIBRARY_PATH to  ./:$ENV{DYLD_LIBRARY_PATH} " )
-  SET ( ENV{DYLD_LIBRARY_PATH} ./:$ENV{DYLD_LIBRARY_PATH}:$ENV{ROOTSYS}/lib:${genmap_install_dir} )
-else()
-  SET ( ENV{LD_LIBRARY_PATH} ./:$ENV{LD_LIBRARY_PATH}:$ENV{ROOTSYS}/lib:${genmap_install_dir} )
-endif()
+  if(APPLE)
+    #MESSAGE( STATUS " set DYLD_LIBRARY_PATH to  ./:$ENV{DYLD_LIBRARY_PATH} " )
+    SET ( ENV{DYLD_LIBRARY_PATH} ./:$ENV{DYLD_LIBRARY_PATH}:$ENV{ROOTSYS}/lib:${genmap_install_dir} )
+  else()
+    SET ( ENV{LD_LIBRARY_PATH} ./:$ENV{LD_LIBRARY_PATH}:$ENV{ROOTSYS}/lib:${genmap_install_dir} )
+  endif()
+
+  EXECUTE_PROCESS( COMMAND 
+    ${ROOT_genmap_CMD} -debug -i ${libname} -o ${rootmapfile}
+    WORKING_DIRECTORY ${genmap_install_dir}
+    )
 
-EXECUTE_PROCESS( COMMAND 
-		 ${ROOT_genmap_CMD} -debug -i ${libname} -o ${rootmapfile}
-                 WORKING_DIRECTORY ${genmap_install_dir}
-)
+endif()
-- 
GitLab