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 --- src/methods/CMakeLists.txt | 49 +++++++++++----------------------------------- 1 file changed, 11 insertions(+), 38 deletions(-) (limited to 'src/methods/CMakeLists.txt') diff --git a/src/methods/CMakeLists.txt b/src/methods/CMakeLists.txt index 7676c25..4a1f986 100644 --- a/src/methods/CMakeLists.txt +++ b/src/methods/CMakeLists.txt @@ -1,58 +1,31 @@ -set(METHODS "") -set(METHOD_COMMON FALSE) +add_library(methods STATIC "${CMAKE_CURRENT_BINARY_DIR}/methods.c") +add_library(method_common STATIC "common.c") -macro(fastd_method name needs_common) - string(REPLACE - _ name_ "${name}") - string(TOUPPER "${name_}" NAME) - - set(WITH_METHOD_${NAME} TRUE CACHE BOOL "Include the ${name} method") - - if(WITH_METHOD_${NAME}) - add_library(method_${name_} OBJECT ${ARGN}) - set_property(TARGET method_${name_} PROPERTY COMPILE_FLAGS "${FASTD_CFLAGS}") - - list(APPEND METHODS ${name_}) - set(METHODS "${METHODS}" PARENT_SCOPE) - endif(WITH_METHOD_${NAME}) - - if(${needs_common}) - set(METHOD_COMMON TRUE PARENT_SCOPE) - endif(${needs_common}) +macro(fastd_method) + fastd_module(method ${ARGV}) endmacro(fastd_method) -macro(fastd_method_include_directories name) - string(REPLACE - _ name_ "${name}") - string(TOUPPER "${name_}" NAME) - - if(WITH_METHOD_${NAME}) - target_include_directories(method_${name_} PRIVATE ${ARGN}) - endif(WITH_METHOD_${NAME}) +macro(fastd_method_include_directories) + fastd_module_include_directories(method ${ARGV}) endmacro(fastd_method_include_directories) +macro(fastd_method_link_libraries) + fastd_module_link_libraries(method ${ARGV}) +endmacro(fastd_method_link_libraries) -add_subdirectory(null) +add_subdirectory(null) add_subdirectory(generic_gcm) add_subdirectory(xsalsa20_poly1305) -set(METHOD_SOURCES "${CMAKE_CURRENT_BINARY_DIR}/methods.c") - set(METHOD_DEFINITIONS "") set(METHOD_LIST "") +get_property(METHODS GLOBAL PROPERTY FASTD_METHODS) foreach(method ${METHODS}) - list(APPEND METHOD_SOURCES $) - set(METHOD_DEFINITIONS "${METHOD_DEFINITIONS}\nextern const fastd_method_t fastd_method_${method};") set(METHOD_LIST "${METHOD_LIST}\n&fastd_method_${method},") endforeach(method) - -if(METHOD_COMMON) - list(APPEND METHOD_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/common.c) -endif(METHOD_COMMON) - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/methods.c.in ${CMAKE_CURRENT_BINARY_DIR}/methods.c) - -set(METHOD_SOURCES "${METHOD_SOURCES}" PARENT_SCOPE) -- cgit v1.2.3