X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2FCMakeLists.txt;h=43ad4cc2a25f0d4dca7bcdcd85a1578d1c51b1bc;hb=4f30bc74577959efddfe4bc544cea4ec5c7019da;hp=8ea99c7566a939de199c27338ab7eb3b8c27bae6;hpb=74449b8b68801e0938f528f19d69e75644cb2ee9;p=vpp.git diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt index 8ea99c7566a..43ad4cc2a25 100644 --- a/src/plugins/CMakeLists.txt +++ b/src/plugins/CMakeLists.txt @@ -16,62 +16,34 @@ include_directories ( ${CMAKE_CURRENT_BINARY_DIR} ) -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 ${PLUGIN_API_FILES}) - vpp_generate_api_header(${f} plugins) - list(APPEND api_headers ${f}.h ${f}.json) - endforeach() - 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() - -macro(add_vpp_api_test_plugin plugin_name) - set(api_headers) - foreach(f ${ARGN}) - if(${f} MATCHES ".*\.api$") - vpp_generate_api_header(${f} plugins) - list(APPEND api_headers ${f}.h) - endif() - endforeach() - add_library(${plugin_name} SHARED ${ARGN} ${api_headers}) - add_dependencies(${plugin_name} api_headers) - set_target_properties(${plugin_name} PROPERTIES PREFIX "") - set_target_properties(${plugin_name} PROPERTIES - PREFIX "" - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}//vpp_api_test_plugins) - install(TARGETS ${plugin_name} DESTINATION lib/vpp_api_test_plugins COMPONENT - plugins) -endmacro() - ############################################################################## # find and add all plugin subdirs -############################################################################ +############################################################################## FILE(GLOB files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*/CMakeLists.txt ) + +set(VPP_EXCLUDED_PLUGINS + "" + CACHE + STRING "Comma-separated list of core plugins excluded from packaging and tests" +) + +# create the list of the plugins that we need to exclude from packaging +SET(excluded_plugins "") +STRING(REGEX REPLACE "[,]+" ";" exc_plugins "${VPP_EXCLUDED_PLUGINS}") +foreach (e ${exc_plugins}) + message(WARNING "Excluding plugin due to VPP_EXCLUDED_PLUGINS: '${e}'") + list(APPEND excluded_plugins ${e}) +endforeach() + foreach (f ${files}) get_filename_component(dir ${f} DIRECTORY) - add_subdirectory(${dir}) + + # if a plugin is in the list of excluded plugin, do not add that subdirectory + LIST(FIND excluded_plugins "${dir}" exc_index) + if(${exc_index} EQUAL "-1") + add_subdirectory(${dir}) + endif() endforeach()