From: Damjan Marion <damarion@cisco.com>
Date: Fri, 15 Mar 2024 19:03:41 +0000 (+0000)
Subject: build: add option to specify supported OS list for plugin
X-Git-Tag: v24.10-rc0~170
X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F44%2F40544%2F2;p=vpp.git

build: add option to specify supported OS list for plugin

Type: improvement
Change-Id: I0d6f11d5ece19c5e0e00dfdadc9d4c09274ae8e1
Signed-off-by: Damjan Marion <damarion@cisco.com>
---

diff --git a/src/cmake/plugin.cmake b/src/cmake/plugin.cmake
index 4997d9a4420..df96aa8765f 100644
--- a/src/cmake/plugin.cmake
+++ b/src/cmake/plugin.cmake
@@ -15,9 +15,13 @@ macro(add_vpp_plugin name)
   cmake_parse_arguments(PLUGIN
     ""
     "LINK_FLAGS;COMPONENT;DEV_COMPONENT"
-    "SOURCES;API_FILES;MULTIARCH_SOURCES;MULTIARCH_FORCE_ON;LINK_LIBRARIES;INSTALL_HEADERS;API_TEST_SOURCES;VAT_AUTO_TEST"
+    "SOURCES;API_FILES;MULTIARCH_SOURCES;MULTIARCH_FORCE_ON;LINK_LIBRARIES;INSTALL_HEADERS;API_TEST_SOURCES;VAT_AUTO_TEST;SUPPORTED_OS_LIST"
     ${ARGN}
   )
+  if (PLUGIN_SUPPORTED_OS_LIST AND NOT ${CMAKE_SYSTEM_NAME} IN_LIST PLUGIN_SUPPORTED_OS_LIST)
+    message(WARNING "unsupported OS - ${name} plugin disabled")
+    return()
+  endif()
   set(plugin_name ${name}_plugin)
   set(api_includes)
   if(NOT PLUGIN_COMPONENT)
diff --git a/src/plugins/af_packet/CMakeLists.txt b/src/plugins/af_packet/CMakeLists.txt
index 4b79615cae7..818a03107d7 100644
--- a/src/plugins/af_packet/CMakeLists.txt
+++ b/src/plugins/af_packet/CMakeLists.txt
@@ -33,4 +33,6 @@ add_vpp_plugin(af_packet
 
   #  API_TEST_SOURCES
   #af_packet_test_api.c
+
+  SUPPORTED_OS_LIST Linux
 )
diff --git a/src/plugins/af_xdp/CMakeLists.txt b/src/plugins/af_xdp/CMakeLists.txt
index 1097358799b..fd7ee4e835b 100644
--- a/src/plugins/af_xdp/CMakeLists.txt
+++ b/src/plugins/af_xdp/CMakeLists.txt
@@ -70,4 +70,6 @@ add_vpp_plugin(af_xdp
   ${BPF_LIB}
   ${ELF_LIB}
   ${Z_LIB}
+
+  SUPPORTED_OS_LIST Linux
 )
diff --git a/src/plugins/dma_intel/CMakeLists.txt b/src/plugins/dma_intel/CMakeLists.txt
index 8fd8cd1933f..b683036f7e3 100644
--- a/src/plugins/dma_intel/CMakeLists.txt
+++ b/src/plugins/dma_intel/CMakeLists.txt
@@ -6,4 +6,6 @@ add_vpp_plugin(dma_intel
   dsa.c
   format.c
   main.c
+
+  SUPPORTED_OS_LIST Linux
 )
diff --git a/src/plugins/perfmon/CMakeLists.txt b/src/plugins/perfmon/CMakeLists.txt
index 8e3ab1b3e32..d820eb2f37e 100644
--- a/src/plugins/perfmon/CMakeLists.txt
+++ b/src/plugins/perfmon/CMakeLists.txt
@@ -62,4 +62,6 @@ add_vpp_plugin(perfmon
 
   COMPONENT
   vpp-plugin-devtools
+
+  SUPPORTED_OS_LIST Linux
 )