Changeset View
Changeset View
Standalone View
Standalone View
src/CMakeLists.txt
- This file was added.
# Set the include directory (unfortunately this old-style stuff is necessary for the ROOT_GENERATE_DICTIONARY macro) | |||||
include_directories(${PROJECT_SOURCE_DIR}/inc) | |||||
# Use glob to find the headers and sources | |||||
file(GLOB LAURA_HEADERS ${PROJECT_SOURCE_DIR}/inc/*.hh) | |||||
file(GLOB LAURA_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cc) | |||||
if (NOT LAURA_BUILD_ROOFIT_TASK) | |||||
list(REMOVE_ITEM LAURA_HEADERS ${PROJECT_SOURCE_DIR}/inc/LauRooFitTask.hh) | |||||
list(REMOVE_ITEM LAURA_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/LauRooFitTask.cc) | |||||
endif() | |||||
# Generate the rootcint file | |||||
set(LAURA_LINKDEF ${PROJECT_SOURCE_DIR}/inc/Laura++_LinkDef.h) | |||||
set(LAURA_DICTIONARY_ROOT G__Laura++) | |||||
set(LAURA_DICTIONARY ${LAURA_DICTIONARY_ROOT}.cxx) | |||||
if (LAURA_BUILD_ROOFIT_TASK) | |||||
ROOT_GENERATE_DICTIONARY( | |||||
${LAURA_DICTIONARY_ROOT} | |||||
${LAURA_HEADERS} | |||||
LINKDEF ${LAURA_LINKDEF} | |||||
OPTIONS -DDOLAUROOFITTASK | |||||
) | |||||
else() | |||||
ROOT_GENERATE_DICTIONARY( | |||||
${LAURA_DICTIONARY_ROOT} | |||||
${LAURA_HEADERS} | |||||
LINKDEF ${LAURA_LINKDEF} | |||||
) | |||||
endif() | |||||
# Build the shared library | |||||
add_library(Laura++ SHARED ${LAURA_SOURCES} ${LAURA_DICTIONARY}) | |||||
set_target_properties(Laura++ PROPERTIES OUTPUT_NAME Laura++) | |||||
set_target_properties(Laura++ PROPERTIES VERSION ${CMAKE_PROJECT_VERSION} SOVERSION ${CMAKE_PROJECT_VERSION_MAJOR}) | |||||
set_target_properties(Laura++ PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}) | |||||
target_include_directories(Laura++ PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/inc> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${CMAKE_PROJECT_NAME}>) | |||||
target_link_libraries(Laura++ ROOT::Core ROOT::Hist ROOT::Matrix ROOT::Physics ROOT::Minuit ROOT::EG ROOT::Tree) | |||||
if (LAURA_BUILD_ROOFIT_TASK) | |||||
target_link_libraries(Laura++ ROOT::RooFit ROOT::RooFitCore) | |||||
endif() | |||||
# Install the libraries | |||||
install( | |||||
TARGETS Laura++ | |||||
EXPORT "LauraTargets" | |||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | |||||
) | |||||
# Install the pcm and rootmap files generated by ROOT_GENERATE_DICTIONARY | |||||
install( | |||||
FILES ${CMAKE_CURRENT_BINARY_DIR}/libLaura++.rootmap ${CMAKE_CURRENT_BINARY_DIR}/libLaura++_rdict.pcm | |||||
DESTINATION ${CMAKE_INSTALL_LIBDIR} | |||||
) | |||||