summaryrefslogtreecommitdiffstats
path: root/src/methods/CMakeLists.txt
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2013-11-03 02:20:09 +0100
committerMatthias Schiffer <mschiffer@universe-factory.net>2013-11-03 02:20:09 +0100
commite7893cc54fb0eaba0cfe88ff44cf52a3f7ff2200 (patch)
treee8036848eae496deea839ec35389d710b54cd18c /src/methods/CMakeLists.txt
parentd04123c9ed17d7a590702cd574e651aa78021a5c (diff)
downloadfastd-e7893cc54fb0eaba0cfe88ff44cf52a3f7ff2200.tar
fastd-e7893cc54fb0eaba0cfe88ff44cf52a3f7ff2200.zip
Even nicer method specification
Diffstat (limited to 'src/methods/CMakeLists.txt')
-rw-r--r--src/methods/CMakeLists.txt49
1 files changed, 11 insertions, 38 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)