X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fcmake%2Flibrary.cmake;h=c80d7f226d6adb0803eed6acfb10ee78d81af9b4;hb=b5a2b05327c1a2bbb23dbb7131cc1be6c0db5e67;hp=37239f3d6809e1ef1302184ad10a8a54e6e8a09f;hpb=115012a0b1d9617c07bae5c82a19125b3c692258;p=vpp.git diff --git a/src/cmake/library.cmake b/src/cmake/library.cmake index 37239f3d680..c80d7f226d6 100644 --- a/src/cmake/library.cmake +++ b/src/cmake/library.cmake @@ -22,6 +22,7 @@ macro(add_vpp_library lib) set (lo ${lib}_objs) add_library(${lo} OBJECT ${ARG_SOURCES}) set_target_properties(${lo} PROPERTIES POSITION_INDEPENDENT_CODE ON) + target_compile_options(${lo} PUBLIC ${VPP_DEFAULT_MARCH_FLAGS}) add_library(${lib} SHARED) target_sources(${lib} PRIVATE $) @@ -107,6 +108,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 "" @@ -118,6 +149,7 @@ macro(add_vpp_test_library lib) get_filename_component(name ${file} NAME_WE) set(test_lib ${lib}_${name}_plugin) add_library(${test_lib} SHARED ${file}_test2.c) + target_compile_options(${test_lib} PUBLIC ${VPP_DEFAULT_MARCH_FLAGS}) if(NOT VPP_EXTERNAL_PROJECT) add_dependencies(${test_lib} api_headers) endif() @@ -127,12 +159,20 @@ 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() + +macro(vpp_find_library var) + find_library(${var} ${ARGN}) + mark_as_advanced(${var}) +endmacro() +macro(vpp_find_path var) + find_path(${var} ${ARGN}) + mark_as_advanced(${var}) +endmacro()