1
0
mirror of synced 2024-06-18 10:29:38 +02:00
modern-cmake/examples/root-simple-3.11/CMakeLists.txt

35 lines
1.2 KiB
CMake
Raw Normal View History

2018-03-29 13:26:47 +02:00
## [main]
2018-03-29 12:27:23 +02:00
cmake_minimum_required(VERSION 3.11)
project(RootSimpleExample311 LANGUAGES CXX)
find_package(ROOT CONFIG REQUIRED)
message(STATUS "Found ROOT: ${ROOT_VERSION} at ${ROOT_DIR}")
2018-04-05 08:07:40 +02:00
separate_arguments(ROOT_CXX_FLAGS)
2018-05-01 17:18:27 +02:00
separate_arguments(ROOT_DEFINITIONS)
message(STATUS "ROOT_DEFINITIONS ${ROOT_DEFINITIONS}")
# This is required on if there is more than one flag (like on macOS)
# and this also fixes a bug in the linker flags
string(REPLACE "-L " "-L" ROOT_EXE_LINKER_FLAGS "${ROOT_EXE_LINKER_FLAGS}")
separate_arguments(ROOT_EXE_LINKER_FLAGS)
2018-03-29 12:27:23 +02:00
## [modern_fix]
target_include_directories(ROOT::Core INTERFACE "${ROOT_INCLUDE_DIRS}")
2018-05-01 17:18:27 +02:00
add_library(ROOT::Flags_CXX IMPORTED INTERFACE)
target_compile_options(ROOT::Flags_CXX INTERFACE ${ROOT_CXX_FLAGS})
target_compile_definitions(ROOT::Flags_CXX INTERFACE ${ROOT_DEFINITIONS})
set_property(TARGET ROOT::Flags_CXX PROPERTY
INTERFACE_LINK_LIBRARIES ${ROOT_EXE_LINKER_FLAGS})
2018-03-29 12:27:23 +02:00
## [modern_fix]
add_executable(RootSimpleExample311 SimpleExample.cxx)
2018-05-01 17:18:27 +02:00
target_link_libraries(RootSimpleExample311 PUBLIC ROOT::Physics ROOT::Flags_CXX)
2018-03-29 13:26:47 +02:00
## [main]
2018-03-29 12:27:23 +02:00
enable_testing()
add_test(NAME RootSimpleExample311 COMMAND RootSimpleExample311)