diff options
author | Damjan Marion <damarion@cisco.com> | 2018-08-25 11:33:29 +0200 |
---|---|---|
committer | Damjan Marion <damarion@cisco.com> | 2018-08-25 11:56:03 +0200 |
commit | 74449b8b68801e0938f528f19d69e75644cb2ee9 (patch) | |
tree | e3ba6294196c478d1a53c296043fb3ca58c6ee9c /src/plugins/CMakeLists.txt | |
parent | 2bfdda76d8b1cffcd8e30ca6855f293b1b1953c5 (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.txt | 28 |
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() |