X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fcmake%2Flibrary.cmake;h=45b3944eb3467a8c1f27241d7a37ca77bb066e40;hb=7ff7274c6b23f53830fb52047161bd5cb988abe2;hp=560b2c97d5c4f118427fef7b2da30a78214e3a5b;hpb=0d39cbac6d688fb98d05c32acec699b25a599ead;p=vpp.git diff --git a/src/cmake/library.cmake b/src/cmake/library.cmake index 560b2c97d5c..45b3944eb34 100644 --- a/src/cmake/library.cmake +++ b/src/cmake/library.cmake @@ -41,8 +41,10 @@ macro(add_vpp_library lib) endif() install( TARGETS ${lib} - DESTINATION ${VPP_LIBRARY_DIR} - COMPONENT ${ARG_COMPONENT} + LIBRARY + DESTINATION ${VPP_LIBRARY_DIR} + COMPONENT ${ARG_COMPONENT} + NAMELINK_COMPONENT ${ARG_COMPONENT}-dev ) if (ARG_LTO AND VPP_USE_LTO) @@ -51,6 +53,9 @@ macro(add_vpp_library lib) target_compile_options (${lib} PRIVATE "-ffunction-sections") target_compile_options (${lib} PRIVATE "-fdata-sections") target_link_libraries (${lib} "-Wl,--gc-sections") + if(compiler_flag_no_stringop_overflow) + target_link_libraries (${lib} "-Wno-stringop-overflow") + endif() endif() if(ARG_MULTIARCH_SOURCES) @@ -77,6 +82,10 @@ macro(add_vpp_library lib) add_dependencies(${lo} api_headers) endif() + if(VPP_EXTERNAL_PROJECT AND ARG_API_FILES) + add_dependencies(${lo} ${lib}_api_headers) + endif() + if(ARG_DEPENDS) add_dependencies(${lo} ${ARG_DEPENDS}) endif() @@ -108,6 +117,36 @@ function (add_vpp_headers path) endforeach() endfunction() +macro(add_vat_test_library lib) + cmake_parse_arguments(TEST + "" + "" + ${ARGN} + ) + + foreach(file ${ARGN}) + get_filename_component(name ${file} NAME_WE) + set(test_lib ${lib}_${name}_plugin) + add_library(${test_lib} SHARED ${file}) + target_compile_options(${test_lib} PUBLIC ${VPP_DEFAULT_MARCH_FLAGS}) + if(NOT VPP_EXTERNAL_PROJECT) + add_dependencies(${test_lib} api_headers) + endif() + include_directories(${CMAKE_CURRENT_BINARY_DIR}) + set_target_properties(${test_lib} PROPERTIES NO_SONAME 1) + set_target_properties(${test_lib} PROPERTIES + PREFIX "" + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/vpp_api_test_plugins) + + # install .so + install( + TARGETS ${test_lib} + DESTINATION ${VPP_LIBRARY_DIR}/vpp_api_test_plugins + COMPONENT ${ARG_COMPONENT} + ) + endforeach() +endmacro() + macro(add_vpp_test_library lib) cmake_parse_arguments(TEST "" @@ -129,13 +168,12 @@ macro(add_vpp_test_library lib) PREFIX "" LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/vat2_plugins) - # Later: Install and package # install .so - #install( - # TARGETS ${test_lib} - # DESTINATION ${VPP_LIBRARY_DIR}/vat2_plugins - # #COMPONENT ${ARG_COMPONENT} - # ) + install( + TARGETS ${test_lib} + DESTINATION ${VPP_LIBRARY_DIR}/vat2_plugins + COMPONENT ${ARG_COMPONENT} + ) endforeach() endmacro()