Skip to content

Commit

Permalink
Better handling of external libraries
Browse files Browse the repository at this point in the history
  • Loading branch information
forthommel committed Apr 21, 2021
1 parent bb46cb1 commit 4a93d4a
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 23 deletions.
21 changes: 21 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ include(SetEnvironment)

set(HECTOR_SOURCE_DIR ${PROJECT_SOURCE_DIR}/src)
set(HECTOR_TEST_DIR ${PROJECT_SOURCE_DIR}/test)
set(HECTOR_DEPENDENCIES ${CLHEP_LIB})
set(HECTOR_INC_DEPENDENCIES ${CLHEP_INCLUDE})

set(PYHECTOR_SOURCE_DIR ${PROJECT_SOURCE_DIR}/python)

#----- build all the intermediate objects
Expand All @@ -29,11 +32,29 @@ file(GLOB_RECURSE HECTOR_INCLUDES ${PROJECT_SOURCE_DIR}/Hector/*.h)

#----- link everything into the library and executable

if(HEPMC_LIB)
list(APPEND HECTOR_INC_DEPENDENCIES ${HEPMC_INCLUDE})
list(APPEND HECTOR_DEPENDENCIES ${HEPMC_LIB})
add_definitions(-DHEPMC)
endif()
if(PYTHIA8)
message(STATUS "Pythia8 found in ${PYTHIA8}")
message(STATUS "Pythia8 includes located in ${PYTHIA8_INCLUDE}")
list(APPEND HECTOR_DEPENDENCIES ${PYTHIA8} dl)
list(APPEND HECTOR_INC_DEPENDENCIES ${PYTHIA8_INCLUDE})
if(LHAPDF)
list(APPEND HECTOR_DEPENDENCIES ${LHAPDF})
else()
list(APPEND HECTOR_DEPENDENCIES lhapdfdummy)
endif()
endif()

# do not forget to retrieve
# http://home.thep.lu.se/~leif/LHEF/LHEF.h

add_library(Hector2 SHARED ${LIB_SRC} ${HECTOR_INCLUDES})
set_target_properties(Hector2 PROPERTIES LINKER_LANGUAGE CXX)
target_include_directories(Hector2 PRIVATE ${HECTOR_INC_DEPENDENCIES})

add_executable(hector ${HECTOR_SOURCE_DIR}/hector.cc)
target_link_libraries(hector Hector2 ${HECTOR_DEPENDENCIES})
Expand Down
26 changes: 3 additions & 23 deletions cmake/SetEnvironment.cmake
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#----- check if we are building from CERN's lxplus machines

if($ENV{HOSTNAME} MATCHES "^lxplus[0-9]+.cern.ch")
set(LXPLUS 1)
message(STATUS "Compiling on LXPLUS")
set(LXPLUS TRUE)
endif()

#----- check the gcc/clang version
Expand Down Expand Up @@ -31,9 +32,6 @@ else()
find_path(CLHEP_INCLUDE CLHEP)
endif()

set(HECTOR_DEPENDENCIES ${CLHEP_LIB})
include_directories(${CLHEP_INCLUDE})

#----- Pythia 8 for physics samples generation and/or LHE files parsing

if(LXPLUS)
Expand All @@ -43,31 +41,13 @@ endif()
set(PYTHIA8_DIRS $ENV{PYTHIA8_DIR} ${PYTHIA8_DIR} /usr /opt/pythia8)
find_library(PYTHIA8 pythia8 HINTS ${PYTHIA8_DIRS} PATH_SUFFIXES lib)
find_path(PYTHIA8_INCLUDE NAMES Pythia8/Pythia.h HINTS ${PYTHIA8_DIRS} PATH_SUFFIXES include include/Pythia8 include/pythia8)

if(PYTHIA8)
message(STATUS "Pythia8 found in ${PYTHIA8}")
message(STATUS "Pythia8 includes located in ${PYTHIA8_INCLUDE}")
list(APPEND HECTOR_DEPENDENCIES ${PYTHIA8} dl)
include_directories(${PYTHIA8_INCLUDE})
find_library(LHAPDF LHAPDF)
if(LHAPDF)
list(APPEND HECTOR_DEPENDENCIES ${LHAPDF})
else()
list(APPEND HECTOR_DEPENDENCIES lhapdfdummy)
endif()
endif()
find_library(LHAPDF LHAPDF)

#----- HepMC for I/O

find_library(HEPMC_LIB HepMC)
find_path(HEPMC_INCLUDE HepMC)

if(HEPMC_LIB)
include_directories(${HEPMC_INCLUDE})
list(APPEND HECTOR_DEPENDENCIES ${HEPMC_LIB})
add_definitions(-DHEPMC)
endif()

#----- Boost for Python wrapper

find_package(PythonInterp 3)
Expand Down

0 comments on commit 4a93d4a

Please sign in to comment.