From b923283f54e0f001172d165533adfd0c547fb0e2 Mon Sep 17 00:00:00 2001
From: Frank Gaede <frank.gaede@desy.de>
Date: Thu, 12 Nov 2020 09:55:08 +0100
Subject: [PATCH] add cmake flag DD4HEP_USE_EDM4HEP for new plugin

 - including necessary build macro etc
---
 CMakeLists.txt          |  6 ++++++
 DDG4/CMakeLists.txt     | 10 ++++++++++
 cmake/DD4hepBuild.cmake |  9 +++++++++
 3 files changed, 25 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index d206821f4..a142cf576 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -72,6 +72,7 @@ option(DD4HEP_USE_GEANT4  "Enable the simulation part based on Geant4"    OFF)
 option(DD4HEP_IGNORE_GEANT4_TLS "Ignore the tls flag Geant4 was compiled with" OFF)
 option(DD4HEP_USE_GEAR    "Build gear wrapper for backward compatibility" OFF)
 option(DD4HEP_USE_LCIO    "Build lcio extensions"                         OFF)
+option(DD4HEP_USE_EDM4HEP "Build edm4hep extensions"                      OFF)
 option(DD4HEP_USE_HEPMC3  "Build hepmc3 extensions"                       OFF)
 option(DD4HEP_USE_TBB     "Build features that require TBB"               OFF)
 option(DD4HEP_LOAD_ASSIMP "Download and build ASSIMP from github"         OFF)
@@ -145,6 +146,11 @@ if(DD4HEP_USE_LCIO)
   DD4HEP_SETUP_LCIO_TARGETS()
 endif()
 
+if(DD4HEP_USE_EDM4HEP)
+  find_package(EDM4HEP REQUIRED)
+#  DD4HEP_SETUP_EDM4HEP_TARGETS()
+endif()
+
 IF(DD4HEP_USE_HEPMC3)
   find_package(HepMC3 REQUIRED)
 ENDIF()
diff --git a/DDG4/CMakeLists.txt b/DDG4/CMakeLists.txt
index 0ef01e51b..d52362e38 100644
--- a/DDG4/CMakeLists.txt
+++ b/DDG4/CMakeLists.txt
@@ -98,6 +98,16 @@ IF(TARGET LCIO::LCIO)
 
 ENDIF()
 
+IF(TARGET EDM4HEP::edm4hep)
+  dd4hep_add_plugin(DDG4EDM4HEP
+    SOURCES edm4hep/*.cpp
+    USES    DD4hep::DDG4 EDM4HEP::edm4hep EDM4HEP::edm4hepDict podio::podio podio::podioDict podio::podioRootIO
+    )
+  install(TARGETS DDG4EDM4HEP EXPORT DD4hep LIBRARY DESTINATION lib)
+  set_target_properties(DDG4EDM4HEP PROPERTIES VERSION ${DD4hep_VERSION} SOVERSION ${DD4hep_SOVERSION})
+
+ENDIF()
+
 IF(DD4HEP_USE_HEPMC3)
   dd4hep_add_plugin(DDG4HepMC3
     SOURCES hepmc/*.cpp
diff --git a/cmake/DD4hepBuild.cmake b/cmake/DD4hepBuild.cmake
index 05d9c2941..03620aed9 100644
--- a/cmake/DD4hepBuild.cmake
+++ b/cmake/DD4hepBuild.cmake
@@ -245,6 +245,8 @@ function ( dd4hep_print_options )
   dd4hep_print ( "|  XERCESC_ROOT_DIR:   ${XERCESC_ROOT_DIR}                                      " )
   dd4hep_print ( "|  DD4HEP_USE_LCIO:    ${DD4HEP_USE_LCIO}                                       " )
   dd4hep_print ( "|  LCIO_DIR:           ${LCIO_DIR}                                              " )
+  dd4hep_print ( "|  DD4HEP_USE_EDM4HEP: ${DD4HEP_USE_EDM4HEP}                                    " )
+  dd4hep_print ( "|  EDM4HEP_DIR:        ${EDM4HEP_DIR}                                           " )
   dd4hep_print ( "|  DD4HEP_USE_GEANT4:  ${DD4HEP_USE_GEANT4}                                     " )
   dd4hep_print ( "|  Geant4_DIR:         ${Geant4_DIR}                                            " )
   dd4hep_print ( "|  DD4HEP_USE_PYROOT:  ${DD4HEP_USE_PYROOT}                                     " )
@@ -279,6 +281,9 @@ function( dd4hep_print_cmake_options )
   dd4hep_print ( "|  DD4HEP_USE_LCIO    Build lcio extensions                         OFF     |")
   dd4hep_print ( "|                     Requires LCIO_DIR to be set                           |")
   dd4hep_print ( "|                     or LCIO in CMAKE_MODULE_PATH                          |")
+  dd4hep_print ( "|  DD4HEP_USE_EDM4HEP    Build edm4hep extensions                   OFF     |")
+  dd4hep_print ( "|                     Requires EDM4HEP_DIR to be set                        |")
+  dd4hep_print ( "|                     or EDM4HEP in CMAKE_MODULE_PATH                       |")
   dd4hep_print ( "|  DD4HEP_USE_GEAR    Build gear wrapper for backward compatibility OFF     |")
   dd4hep_print ( "|  BUILD_TESTING      Enable and build tests                        ON      |")
   dd4hep_print ( "|  DD4HEP_USE_PYROOT  Enable 'Detector Builders' based on PyROOT    OFF     |")
@@ -500,6 +505,10 @@ function ( fill_dd4hep_library_path )
     SET( ENV{DD4HEP_LIBRARY_PATH} ${LCIO_DIR}/lib:$ENV{DD4HEP_LIBRARY_PATH} )
   endif()
 
+  if(${DD4HEP_USE_EDM4HEP})
+    SET( ENV{DD4HEP_LIBRARY_PATH} ${EDM4HEP_DIR}/lib:$ENV{DD4HEP_LIBRARY_PATH} )
+  endif()
+
   SET( ENV{DD4HEP_LIBRARY_PATH} ${CLHEP_ROOT_DIR}/lib:$ENV{DD4HEP_LIBRARY_PATH} )
 
   if(${DD4HEP_USE_XERCESC})
-- 
GitLab