X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2FCMakeLists.txt;h=728072cec3bb82f54238a009f2c2965e08229751;hb=0ec7dad7a;hp=de880624bb30a219a1f59b409012adfeb2ae820f;hpb=dae1c7ed38e9f7a86e66f3674de62778cc981331;p=vpp.git diff --git a/src/vppinfra/CMakeLists.txt b/src/vppinfra/CMakeLists.txt index de880624bb3..728072cec3b 100644 --- a/src/vppinfra/CMakeLists.txt +++ b/src/vppinfra/CMakeLists.txt @@ -27,22 +27,28 @@ endif(VPP_VECTOR_GROW_BY_ONE) configure_file( ${CMAKE_SOURCE_DIR}/vppinfra/config.h.in - ${CMAKE_BINARY_DIR}/vppinfra/config.h + ${CMAKE_CURRENT_BINARY_DIR}/config.h ) install( - FILES ${CMAKE_BINARY_DIR}/vppinfra/config.h + FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h DESTINATION include/vppinfra COMPONENT vpp-dev ) add_definitions(-fvisibility=hidden) +# Ensure symbols from cJSON are exported +set_source_files_properties( cJSON.c PROPERTIES + COMPILE_DEFINITIONS " CJSON_API_VISIBILITY " ) + + ############################################################################## # vppinfra sources ############################################################################## set(VPPINFRA_SRCS backtrace.c + bitmap.c bihash_all_vector.c cpu.c dlmalloc.c @@ -54,10 +60,12 @@ set(VPPINFRA_SRCS graph.c hash.c heap.c + interrupt.c longjmp.S macros.c maplog.c mem.c + mem_bulk.c mem_dlmalloc.c mhash.c mpcap.c @@ -69,6 +77,7 @@ set(VPPINFRA_SRCS random.c random_isaac.c rbtree.c + sanitizer.c serialize.c socket.c std-formats.c @@ -88,15 +97,19 @@ set(VPPINFRA_SRCS valloc.c vec.c vector.c + cJSON.c ) set(VPPINFRA_HEADERS sanitizer.h bihash_16_8.h bihash_24_8.h + bihash_32_8.h bihash_40_8.h bihash_48_8.h bihash_8_8.h + bihash_8_16.h + bihash_24_16.h bihash_template.c bihash_template.h bihash_vec8_8.h @@ -106,6 +119,7 @@ set(VPPINFRA_HEADERS cache.h callback.h callback_data.h + cJSON.h clib_error.h clib.h cpu.h @@ -123,6 +137,7 @@ set(VPPINFRA_HEADERS graph.h hash.h heap.h + interrupt.h lb_hash_hash.h llist.h lock.h @@ -130,6 +145,7 @@ set(VPPINFRA_HEADERS macros.h maplog.h math.h + memcpy.h memcpy_avx2.h memcpy_avx512.h memcpy_sse3.h @@ -141,7 +157,6 @@ set(VPPINFRA_HEADERS pcap_funcs.h pmalloc.h pool.h - pmc.h ptclosure.h random_buffer.h random.h @@ -173,13 +188,14 @@ set(VPPINFRA_HEADERS vector_altivec.h vector_avx2.h vector_avx512.h - vector_funcs.h + vector/mask_compare.h + vector/compress.h + vector/array_mask.h vector.h vector_neon.h vector_sse42.h warnings.h xxhash.h - linux/syscall.h linux/sysfs.h ) @@ -191,11 +207,16 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") ) endif() +option(VPP_USE_EXTERNAL_LIBEXECINFO "Use external libexecinfo (useful for non-glibc targets)." OFF) +if(VPP_USE_EXTERNAL_LIBEXECINFO) + set(EXECINFO_LIB execinfo) +endif() add_vpp_library(vppinfra SOURCES ${VPPINFRA_SRCS} - LINK_LIBRARIES m + LINK_LIBRARIES m ${EXECINFO_LIB} INSTALL_HEADERS ${VPPINFRA_HEADERS} COMPONENT libvppinfra + LTO ) ############################################################################## @@ -243,4 +264,23 @@ if(VPP_BUILD_VPPINFRA_TESTS) LINK_LIBRARIES vppinfra Threads::Threads ) endforeach() + +set(test_files + vector/test/compress.c + vector/test/mask_compare.c + vector/test/array_mask.c +) + +add_vpp_executable(test_vector_funcs + SOURCES + vector/test/test.c + ${test_files} + LINK_LIBRARIES vppinfra +) + +vpp_library_set_multiarch_sources(test_vector_funcs + SOURCES + ${test_files} +) + endif(VPP_BUILD_VPPINFRA_TESTS)