X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2FCMakeLists.txt;h=8ea99c7566a939de199c27338ab7eb3b8c27bae6;hb=74449b8b68801e0938f528f19d69e75644cb2ee9;hp=56cb6ef39fc47af67480b4d33b1b4f79cea86343;hpb=2bfdda76d8b1cffcd8e30ca6855f293b1b1953c5;p=vpp.git 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()