build: fix missing dependency for library
[vpp.git] / src / cmake / plugin.cmake
index 536ae9c..b399470 100644 (file)
@@ -15,7 +15,7 @@ macro(add_vpp_plugin name)
   cmake_parse_arguments(PLUGIN
     ""
     "LINK_FLAGS;COMPONENT;DEV_COMPONENT"
-    "SOURCES;API_FILES;MULTIARCH_SOURCES;LINK_LIBRARIES;INSTALL_HEADERS;API_TEST_SOURCES;"
+    "SOURCES;API_FILES;MULTIARCH_SOURCES;MULTIARCH_FORCE_ON;LINK_LIBRARIES;INSTALL_HEADERS;API_TEST_SOURCES;"
     ${ARGN}
   )
   set(plugin_name ${name}_plugin)
@@ -45,6 +45,7 @@ macro(add_vpp_plugin name)
     )
   endforeach()
   add_library(${plugin_name} SHARED ${api_includes} ${PLUGIN_SOURCES})
+  target_compile_options(${plugin_name} PUBLIC ${VPP_DEFAULT_MARCH_FLAGS})
   set_target_properties(${plugin_name} PROPERTIES NO_SONAME 1)
   target_compile_options(${plugin_name} PRIVATE "-fvisibility=hidden")
   target_compile_options (${plugin_name} PRIVATE "-ffunction-sections")
@@ -64,7 +65,11 @@ macro(add_vpp_plugin name)
     PREFIX ""
     LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/vpp_plugins)
   if(PLUGIN_MULTIARCH_SOURCES)
-    vpp_library_set_multiarch_sources(${plugin_name} SOURCES ${PLUGIN_MULTIARCH_SOURCES} DEPENDS ${deps})
+    vpp_library_set_multiarch_sources(${plugin_name}
+      SOURCES ${PLUGIN_MULTIARCH_SOURCES}
+      DEPENDS ${deps}
+      FORCE_ON ${PLUGIN_MULTIARCH_FORCE_ON}
+    )
   endif()
   if(PLUGIN_LINK_LIBRARIES)
     target_link_libraries(${plugin_name} ${PLUGIN_LINK_LIBRARIES})
@@ -86,6 +91,7 @@ macro(add_vpp_plugin name)
     set(test_plugin_name ${name}_test_plugin)
     add_library(${test_plugin_name} SHARED ${PLUGIN_API_TEST_SOURCES}
                ${api_includes})
+    target_compile_options(${test_plugin_name} PUBLIC ${VPP_DEFAULT_MARCH_FLAGS})
     set_target_properties(${test_plugin_name} PROPERTIES NO_SONAME 1)
     if(NOT VPP_EXTERNAL_PROJECT)
       add_dependencies(${test_plugin_name} api_headers)