Skip to content

Commit

Permalink
cmake: Use the upstream root macros for dictionary generation (GenFit…
Browse files Browse the repository at this point in the history
…#127)

* Use the cmake macros that are available from ROOT

* Bump minimum root version

* Do not cancel other workflows if one fails

* Install xxhash before the github build

* Add a few more dependencies for ROOT v6.30
  • Loading branch information
tmadlener authored Dec 11, 2023
1 parent 6c1fce8 commit e81adeb
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 377 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-20.04

strategy:
fail-fast: false
matrix:
ROOT_VERSION: [root_v6.24.06.Linux-ubuntu20-x86_64-gcc9.3.tar.gz, root_v6.30.02.Linux-ubuntu20.04-x86_64-gcc9.4.tar.gz]

Expand All @@ -15,7 +15,7 @@ jobs:

- name: Install cmake and gtest
run: |
sudo apt-get install cmake libgtest-dev libglu1-mesa
sudo apt-get install cmake libgtest-dev libglu1-mesa xxhash libglew-dev libgl2ps-dev libftgl-dev
sudo apt install libopengl0 -y
cd /usr/src/gtest
sudo cmake CMakeLists.txt
Expand Down
81 changes: 30 additions & 51 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ INCLUDE(macros)
INCLUDE(genfit)

FIND_PACKAGE(ROOT REQUIRED COMPONENTS Geom)
IF(${ROOT_found_version} LESS 60000)
MESSAGE(FATAL_ERROR "GenFit requires a ROOT version > 6.00.00")
IF(ROOT_VERSION VERSION_LESS 6.20.0)
MESSAGE(FATAL_ERROR "GenFit requires a ROOT version > 6.20.00")
ENDIF()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ROOT_CXX_FLAGS}")
set(CMAKE_CC_FLAGS "${CMAKE_CC_FLAGS} ${ROOT_CC_FLAGS}")


# either, the environment variable RAVEPATH has to be specified, and RAVE's RaveConfig.cmake will be used to determine everything we need
Expand Down Expand Up @@ -126,11 +126,6 @@ ELSE()
MESSAGE( STATUS "Doxygen not installed or found -- API documentation can't be generated!" )
ENDIF(DOXYGEN_FOUND)


# declare the ROOT library path
LINK_DIRECTORIES(${ROOT_LIBRARY_DIR})


# add the list of source code files -- careful, when a new file is added!
AUX_SOURCE_DIRECTORY( ./core/src library_sources )
AUX_SOURCE_DIRECTORY( ./eventDisplay/src library_sources )
Expand Down Expand Up @@ -166,25 +161,21 @@ SET(CORE_DICTIONARY_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/finitePlanes/include/RectangularFinitePlane.h
)
ROOT_GENERATE_DICTIONARY(
"${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}"
coreRootDict
"${CORE_DICTIONARY_SOURCES}"
"${CMAKE_CURRENT_SOURCE_DIR}/core/include"
"${CMAKE_CURRENT_SOURCE_DIR}/core/src/coreLinkDef.h"
"${CMAKE_CURRENT_BINARY_DIR}/coreRootDict.cc"
LINKDEF "${CMAKE_CURRENT_SOURCE_DIR}/core/src/coreLinkDef.h"
)
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/coreRootDict.cc" "${library_sources}")
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/coreRootDict.cxx" "${library_sources}")

SET(EVENTDISPLAY_DICTIONARY_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/eventDisplay/include/EventDisplay.h
)
ROOT_GENERATE_DICTIONARY(
"${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}"
eventDisplayRootDict
"${EVENTDISPLAY_DICTIONARY_SOURCES}"
"${CMAKE_CURRENT_SOURCE_DIR}/core/include;${CMAKE_CURRENT_SOURCE_DIR}/fitters/include;${CMAKE_CURRENT_SOURCE_DIR}/eventDisplay/include"
"${CMAKE_CURRENT_SOURCE_DIR}/eventDisplay/src/eventDisplayLinkDef.h"
"${CMAKE_CURRENT_BINARY_DIR}/eventDisplayRootDict.cc"
LINKDEF "${CMAKE_CURRENT_SOURCE_DIR}/eventDisplay/src/eventDisplayLinkDef.h"
)
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/eventDisplayRootDict.cc" "${library_sources}")
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/eventDisplayRootDict.cxx" "${library_sources}")

SET(FITTERS_DICTIONARY_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/fitters/include/AbsKalmanFitter.h
Expand All @@ -197,13 +188,11 @@ SET(FITTERS_DICTIONARY_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/fitters/include/DAF.h
)
ROOT_GENERATE_DICTIONARY(
"${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}"
fittersRootDict
"${FITTERS_DICTIONARY_SOURCES}"
"${CMAKE_CURRENT_SOURCE_DIR}/core/include;${CMAKE_CURRENT_SOURCE_DIR}/fitters/include"
"${CMAKE_CURRENT_SOURCE_DIR}/fitters/src/fittersLinkDef.h"
"${CMAKE_CURRENT_BINARY_DIR}/fittersRootDict.cc"
LINKDEF "${CMAKE_CURRENT_SOURCE_DIR}/fitters/src/fittersLinkDef.h"
)
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/fittersRootDict.cc" "${library_sources}")
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/fittersRootDict.cxx" "${library_sources}")

SET(GBL_DICTIONARY_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/GBL/include/GFGbl.h
Expand All @@ -214,13 +203,11 @@ SET(GBL_DICTIONARY_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/GBL/include/GblData.h
)
ROOT_GENERATE_DICTIONARY(
"${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}"
GBLRootDict
"${GBL_DICTIONARY_SOURCES}"
"${CMAKE_CURRENT_SOURCE_DIR}/core/include;${CMAKE_CURRENT_SOURCE_DIR}/GBL/include"
"${CMAKE_CURRENT_SOURCE_DIR}/GBL/src/GBLLinkDef.h"
"${CMAKE_CURRENT_BINARY_DIR}/GBLRootDict.cc"
LINKDEF "${CMAKE_CURRENT_SOURCE_DIR}/GBL/src/GBLLinkDef.h"
)
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/GBLRootDict.cc" "${library_sources}")
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/GBLRootDict.cxx" "${library_sources}")

SET(MEASUREMENTS_DICTIONARY_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/measurements/include/HMatrixPhi.h
Expand All @@ -238,26 +225,22 @@ SET(MEASUREMENTS_DICTIONARY_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/measurements/include/WireTrackCandHit.h
)
ROOT_GENERATE_DICTIONARY(
"${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}"
"${MEASUREMENTS_DICTIONARY_SOURCES}"
"${CMAKE_CURRENT_SOURCE_DIR}/core/include;${CMAKE_CURRENT_SOURCE_DIR}/measurements/include"
"${CMAKE_CURRENT_SOURCE_DIR}/measurements/src/measurementsLinkDef.h"
"${CMAKE_CURRENT_BINARY_DIR}/measurementsRootDict.cc"
measurementsRootDict
${MEASUREMENTS_DICTIONARY_SOURCES}
LINKDEF "${CMAKE_CURRENT_SOURCE_DIR}/measurements/src/measurementsLinkDef.h"
)
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/measurementsRootDict.cc" "${library_sources}")
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/measurementsRootDict.cxx" "${library_sources}")

SET(TRACKREPS_DICTIONARY_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/trackReps/include/RKTrackRep.h
${CMAKE_CURRENT_SOURCE_DIR}/trackReps/include/MplTrackRep.h
)
ROOT_GENERATE_DICTIONARY(
"${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}"
trackRepsRootDict
"${TRACKREPS_DICTIONARY_SOURCES}"
"${CMAKE_CURRENT_SOURCE_DIR}/core/include;${CMAKE_CURRENT_SOURCE_DIR}/trackReps/include"
"${CMAKE_CURRENT_SOURCE_DIR}/trackReps/src/trackRepsLinkDef.h"
"${CMAKE_CURRENT_BINARY_DIR}/trackRepsRootDict.cc"
LINKDEF "${CMAKE_CURRENT_SOURCE_DIR}/trackReps/src/trackRepsLinkDef.h"
)
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/trackRepsRootDict.cc" "${library_sources}")
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/trackRepsRootDict.cxx" "${library_sources}")

SET(UTILITIES_DICTIONARY_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/utilities/include/HelixTrackModel.h
Expand All @@ -266,27 +249,23 @@ SET(UTILITIES_DICTIONARY_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/utilities/include/mySpacepointMeasurement.h
)
ROOT_GENERATE_DICTIONARY(
"${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}"
utilitiesRootDict
"${UTILITIES_DICTIONARY_SOURCES}"
"${CMAKE_CURRENT_SOURCE_DIR}/core/include;${CMAKE_CURRENT_SOURCE_DIR}/utilities/include;${CMAKE_CURRENT_SOURCE_DIR}/measurements/include"
"${CMAKE_CURRENT_SOURCE_DIR}/utilities/src/utilitiesLinkDef.h"
"${CMAKE_CURRENT_BINARY_DIR}/utilitiesRootDict.cc"
LINKDEF "${CMAKE_CURRENT_SOURCE_DIR}/utilities/src/utilitiesLinkDef.h"
)
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/utilitiesRootDict.cc" "${library_sources}")
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/utilitiesRootDict.cxx" "${library_sources}")

if(DEFINED RAVE)
SET(GFRAVE_DICTIONARY_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/GFRave/include/GFRaveTrackParameters.h
${CMAKE_CURRENT_SOURCE_DIR}/GFRave/include/GFRaveVertex.h
)
ROOT_GENERATE_DICTIONARY(
"${CMAKE_SHARED_LIBRARY_PREFIX}${PROJECT_NAME}"
GFRaveRootDict
"${GFRAVE_DICTIONARY_SOURCES}"
"${CMAKE_CURRENT_SOURCE_DIR}/core/include;${CMAKE_CURRENT_SOURCE_DIR}/GFRave/include"
"${CMAKE_CURRENT_SOURCE_DIR}/GFRave/src/GFRaveLinkDef.h"
"${CMAKE_CURRENT_BINARY_DIR}/GFRaveRootDict.cc"
LINKDEF "${CMAKE_CURRENT_SOURCE_DIR}/GFRave/src/GFRaveLinkDef.h"
)
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/GFRaveRootDict.cc" "${library_sources}")
SET(library_sources "${CMAKE_CURRENT_BINARY_DIR}/GFRaveRootDict.cxx" "${library_sources}")
endif()


Expand All @@ -298,12 +277,12 @@ INSTALL(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${LIBRARY_OUTPUT_DIRECTORY})
if(DEFINED RAVE)
TARGET_LINK_LIBRARIES(
${PROJECT_NAME}
${ROOT_LIBS}
ROOT::Core ROOT::Physics ROOT::Eve
${Rave_LIB}
${Rave_LDFLAGS_STR}
)
else()
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${ROOT_LIBS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ROOT::Core ROOT::Physics ROOT::Eve)
endif()

INCLUDE(CTest)
Expand Down
Loading

0 comments on commit e81adeb

Please sign in to comment.