aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/CMakeLists.txt
diff options
context:
space:
mode:
authorDamjan Marion <damarion@cisco.com>2018-08-25 11:33:29 +0200
committerDamjan Marion <damarion@cisco.com>2018-08-25 11:56:03 +0200
commit74449b8b68801e0938f528f19d69e75644cb2ee9 (patch)
treee3ba6294196c478d1a53c296043fb3ca58c6ee9c /src/plugins/CMakeLists.txt
parent2bfdda76d8b1cffcd8e30ca6855f293b1b1953c5 (diff)
cmake: improve add_vpp_plugin macro
Change-Id: Iffd5c45ab242a919592a1f686f7f880936b68a1a Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src/plugins/CMakeLists.txt')
-rw-r--r--src/plugins/CMakeLists.txt28
1 files changed, 21 insertions, 7 deletions
diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt
index 56cb6ef39fc..8ea99c7566a 100644
--- a/src/plugins/CMakeLists.txt
+++ b/src/plugins/CMakeLists.txt
@@ -16,19 +16,33 @@ include_directories (
${CMAKE_CURRENT_BINARY_DIR}
)
-macro(add_vpp_plugin plugin_name)
+macro(add_vpp_plugin name)
+ cmake_parse_arguments(PLUGIN
+ ""
+ "LINK_FLAGS"
+ "SOURCES;API_FILES;MULTIARCH_SOURCES;LINK_LIBRARIES"
+ ${ARGN}
+ )
+ set(plugin_name ${name}_plugin)
set(api_headers)
- foreach(f ${ARGN})
- if(${f} MATCHES ".*\.api$")
- vpp_generate_api_header(${f} plugins)
- list(APPEND api_headers ${f}.h ${f}.json)
- endif()
+ foreach(f ${PLUGIN_API_FILES})
+ vpp_generate_api_header(${f} plugins)
+ list(APPEND api_headers ${f}.h ${f}.json)
endforeach()
- add_library(${plugin_name} SHARED ${ARGN} ${api_headers})
+ add_library(${plugin_name} SHARED ${PLUGIN_SOURCES} ${api_headers})
add_dependencies(${plugin_name} vpp_version_h api_headers)
set_target_properties(${plugin_name} PROPERTIES
PREFIX ""
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/vpp_plugins)
+ if(PLUGIN_MULTIARCH_SOURCES)
+ vpp_library_set_multiarch_sources(${plugin_name} ${PLUGIN_MULTIARCH_SOURCES})
+ endif()
+ if(PLUGIN_LINK_LIBRARIES)
+ target_link_libraries(${plugin_name} ${PLUGIN_LINK_LIBRARIES})
+ endif()
+ if(PLUGIN_LINK_FLAGS)
+ set_target_properties(${plugin_name} PROPERTIES LINK_FLAGS "${PLUGIN_LINK_FLAGS}")
+ endif()
install(TARGETS ${plugin_name} DESTINATION lib/vpp_plugins COMPONENT plugins)
endmacro()