From e7893cc54fb0eaba0cfe88ff44cf52a3f7ff2200 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sun, 3 Nov 2013 02:20:09 +0100 Subject: Even nicer method specification --- cmake/fastd_module.cmake | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 cmake/fastd_module.cmake (limited to 'cmake') diff --git a/cmake/fastd_module.cmake b/cmake/fastd_module.cmake new file mode 100644 index 0000000..1c2da9d --- /dev/null +++ b/cmake/fastd_module.cmake @@ -0,0 +1,41 @@ +function(fastd_module type name) + string(TOUPPER "${type}" TYPE) + + string(REPLACE - _ name_ "${name}") + string(TOUPPER "${name_}" NAME) + + set(WITH_${TYPE}_${NAME} TRUE CACHE BOOL "Include the ${name} ${type}") + + if(WITH_${TYPE}_${NAME}) + add_library(${type}_${name_} STATIC ${ARGN}) + set_property(TARGET ${type}_${name_} PROPERTY COMPILE_FLAGS "${FASTD_CFLAGS}") + + set_property(TARGET ${type}s APPEND PROPERTY LINK_LIBRARIES ${type}_${name_}) + + list(APPEND ${TYPE}S ${name_}) + + set_property(GLOBAL APPEND PROPERTY FASTD_${TYPE}S ${name_}) + endif(WITH_${TYPE}_${NAME}) +endfunction(fastd_module) + +function(fastd_module_include_directories type name) + string(TOUPPER "${type}" TYPE) + + string(REPLACE - _ name_ "${name}") + string(TOUPPER "${name_}" NAME) + + if(WITH_${TYPE}_${NAME}) + target_include_directories(${type}_${name_} PRIVATE ${ARGN}) + endif(WITH_${TYPE}_${NAME}) +endfunction(fastd_module_include_directories) + +function(fastd_module_link_libraries type name) + string(TOUPPER "${type}" TYPE) + + string(REPLACE - _ name_ "${name}") + string(TOUPPER "${name_}" NAME) + + if(WITH_${TYPE}_${NAME}) + target_link_libraries(${type}_${name_} ${ARGN}) + endif(WITH_${TYPE}_${NAME}) +endfunction(fastd_module_link_libraries) -- cgit v1.2.3