AnalysisTreeQA.patch 1.75 KiB
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 61b9059..3cdaba1 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -20,12 +20,33 @@ endif ()
#add_dependencies(AnalysisTreeQA ${PROJECT_DEPENDENCIES})
-ROOT_GENERATE_DICTIONARY(G__AnalysisTreeQA
- ${HEADERS}
- LINKDEF AnalysisTreeQALinkDef.h
- OPTIONS -I${CMAKE_BINARY_DIR}/include
- OPTIONS -I${AnalysisTree_BINARY_DIR}/include
- )
+if(${ROOT_VERSION} VERSION_GREATER 6.18.0)
+ message(STATUS "ROOT ${ROOT_VERSION}, use the standard ROOT_GENERATE_DICTIONARY macro.")
+ ROOT_GENERATE_DICTIONARY(G__AnalysisTreeQA
+ ${HEADERS}
+ LINKDEF AnalysisTreeQALinkDef.h
+ OPTIONS -I${CMAKE_BINARY_DIR}/include
+ OPTIONS -I${AnalysisTree_BINARY_DIR}/include
+ )
+else()
+ message(STATUS "ROOT ${ROOT_VERSION} has a broken ROOT_GENERATE_DICTIONARY macro, so build the dictionary ourself.")
+ set(dictionary_includes ${HEADERS})
+ set(dictionary_linkdef "AnalysisTreeQALinkDef.h")
+ set(dictionary_source "G__AnalysisTreeQA.cxx")
+
+ add_custom_command(OUTPUT ${dictionary_source}
+ COMMAND ${ROOT_rootcling_CMD} -f ${dictionary_source}
+ -rml libAnalysisTreeQA
+ -rmf libAnalysisTreeQA.rootmap
+ -s libAnalysisTreeQA
+ -inlineInputHeader
+ -I${AnalysisTree_INCLUDE_DIR}
+ -I${CMAKE_CURRENT_SOURCE_DIR}
+ ${dictionary_includes}
+ ${CMAKE_CURRENT_SOURCE_DIR}/${dictionary_linkdef}
+ DEPENDS ${dictionary_includes} ${dictionary_linkdef}
+ )
+endif()
target_link_libraries(AnalysisTreeQA
PUBLIC
AnalysisTreeBase