diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-11-03 02:20:09 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-11-03 02:20:09 +0100 |
commit | e7893cc54fb0eaba0cfe88ff44cf52a3f7ff2200 (patch) | |
tree | e8036848eae496deea839ec35389d710b54cd18c /src/methods | |
parent | d04123c9ed17d7a590702cd574e651aa78021a5c (diff) | |
download | fastd-e7893cc54fb0eaba0cfe88ff44cf52a3f7ff2200.tar fastd-e7893cc54fb0eaba0cfe88ff44cf52a3f7ff2200.zip |
Even nicer method specification
Diffstat (limited to 'src/methods')
-rw-r--r-- | src/methods/CMakeLists.txt | 49 | ||||
-rw-r--r-- | src/methods/generic_gcm/CMakeLists.txt | 3 | ||||
-rw-r--r-- | src/methods/null/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/methods/xsalsa20_poly1305/CMakeLists.txt | 3 |
4 files changed, 16 insertions, 41 deletions
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 $<TARGET_OBJECTS:method_${method}>) - 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) diff --git a/src/methods/generic_gcm/CMakeLists.txt b/src/methods/generic_gcm/CMakeLists.txt index 99d07a8..c50c1ab 100644 --- a/src/methods/generic_gcm/CMakeLists.txt +++ b/src/methods/generic_gcm/CMakeLists.txt @@ -1,3 +1,4 @@ -fastd_method(generic-gcm TRUE +fastd_method(generic-gcm generic_gcm.c ) +fastd_method_link_libraries(generic-gcm method_common) diff --git a/src/methods/null/CMakeLists.txt b/src/methods/null/CMakeLists.txt index 6e3073d..bfd3109 100644 --- a/src/methods/null/CMakeLists.txt +++ b/src/methods/null/CMakeLists.txt @@ -1,3 +1,3 @@ -fastd_method(null FALSE +fastd_method(null null.c ) diff --git a/src/methods/xsalsa20_poly1305/CMakeLists.txt b/src/methods/xsalsa20_poly1305/CMakeLists.txt index 36e486a..d071d99 100644 --- a/src/methods/xsalsa20_poly1305/CMakeLists.txt +++ b/src/methods/xsalsa20_poly1305/CMakeLists.txt @@ -1,4 +1,5 @@ -fastd_method(xsalsa20-poly1305 TRUE +fastd_method(xsalsa20-poly1305 xsalsa20_poly1305.c ) fastd_method_include_directories(xsalsa20-poly1305 ${NACL_INCLUDE_DIRS}) +fastd_method_link_libraries(xsalsa20-poly1305 method_common ${NACL_LIBRARIES}) |