vrrp: fix vrrp_garp_or_na_send()'s memory leak
[vpp.git] / src / plugins / CMakeLists.txt
index 34d956d..43ad4cc 100644 (file)
@@ -16,48 +16,34 @@ include_directories (
   ${CMAKE_CURRENT_BINARY_DIR}
 )
 
-macro(add_vpp_plugin plugin_name)
-  set(api_headers)
-  foreach(f ${ARGN})
-     if(${f} MATCHES ".*\.api$")
-       vpp_generate_api_header(${f})
-       list(APPEND api_headers ${f}.h)
-     endif()
-  endforeach()
-  add_library(${plugin_name} SHARED ${ARGN} ${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)
-  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})
-       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()