1
0
Fork 0
mirror of https://github.com/cosmo-sims/monofonIC.git synced 2024-09-19 17:03:45 +02:00

Macro to simplify including and linking a target to CLASS submodule.

This commit is contained in:
mmichaux 2019-05-15 15:50:49 +02:00
parent 3449e7839f
commit 80867c6fd6

18
external/class.cmake vendored
View file

@ -7,6 +7,8 @@ else()
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endif()
set(CLASS_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/class/include)
# list of object files generated by class
set(CLASS_OBJECT_FILES
${CMAKE_CURRENT_LIST_DIR}/class/build/arrays.o
@ -54,11 +56,17 @@ add_library(class_cpp
target_include_directories(class_cpp
PRIVATE ${CMAKE_CURRENT_LIST_DIR}/class/include)
# macro to setup include dir and link libraries for target using class
macro(target_setup_class target_name)
target_include_directories(${target_name}
PRIVATE ${CLASS_INCLUDE_DIR})
target_link_libraries(${target_name} ${CLASS_OBJECT_FILES})
target_link_libraries(${target_name} class_cpp)
add_dependencies(${target_name} class_objects)
endmacro(target_setup_class)
# test executable
add_executable(testTk
${CMAKE_CURRENT_LIST_DIR}/class/cpp/testTk.cc)
target_include_directories(testTk
PRIVATE ${CMAKE_CURRENT_LIST_DIR}/class/include)
target_link_libraries(testTk ${CLASS_OBJECT_FILES})
target_link_libraries(testTk class_cpp)
add_dependencies(testTk class_objects)
target_setup_class(testTk)