endif()
endif()
-macro(vpp_library_set_multiarch_sources lib)
+macro(vpp_library_set_multiarch_sources lib deps)
foreach(V ${MARCH_VARIANTS})
list(GET V 0 VARIANT)
list(GET V 1 VARIANT_FLAGS)
set(l ${lib}_${VARIANT})
add_library(${l} OBJECT ${ARGN})
+ if("${deps}")
+ add_dependencies(${l} ${deps})
+ endif()
set_target_properties(${l} PROPERTIES POSITION_INDEPENDENT_CODE ON)
target_compile_options(${l} PUBLIC "-DCLIB_MARCH_VARIANT=${VARIANT}")
separate_arguments(VARIANT_FLAGS)
)
if(ARG_MULTIARCH_SOURCES)
- vpp_library_set_multiarch_sources(${lib} ${ARG_MULTIARCH_SOURCES})
+ vpp_library_set_multiarch_sources(${lib} "${ARG_DEPENDS}" ${ARG_MULTIARCH_SOURCES})
endif()
if(ARG_API_FILES)
endforeach()
add_library(${plugin_name} SHARED ${PLUGIN_SOURCES} ${api_includes})
set_target_properties(${plugin_name} PROPERTIES NO_SONAME 1)
+ set(deps "")
if(PLUGIN_API_FILES)
- add_dependencies(${plugin_name} ${plugin_name}_api_headers)
+ list(APPEND deps ${plugin_name}_api_headers)
endif()
if(NOT VPP_EXTERNAL_PROJECT)
- add_dependencies(${plugin_name} vpp_version_h api_headers)
+ list(APPEND deps vpp_version_h api_headers)
endif()
+ add_dependencies(${plugin_name} ${deps})
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})
+ vpp_library_set_multiarch_sources(${plugin_name} "${deps}" ${PLUGIN_MULTIARCH_SOURCES})
endif()
if(PLUGIN_LINK_LIBRARIES)
target_link_libraries(${plugin_name} ${PLUGIN_LINK_LIBRARIES})