From 80867c6fd61f3d3788696023271cfab151a5259e Mon Sep 17 00:00:00 2001 From: mmichaux Date: Wed, 15 May 2019 15:50:49 +0200 Subject: [PATCH] Macro to simplify including and linking a target to CLASS submodule. --- external/class.cmake | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/external/class.cmake b/external/class.cmake index c0002f4..6e7acdd 100644 --- a/external/class.cmake +++ b/external/class.cmake @@ -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) \ No newline at end of file +target_setup_class(testTk) \ No newline at end of file