ipsec: make pre-shared keys harder to misuse
[vpp.git] / src / vppinfra / CMakeLists.txt
index e667eb0..975bf50 100644 (file)
@@ -27,20 +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
-  DESTINATION include/vppinfra
+  FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h
+  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/vppinfra
   COMPONENT vpp-dev
 )
 
+add_definitions(-fvisibility=hidden)
+
+# Ensure symbols from cJSON are exported
+set_source_files_properties( cJSON.c jsonformat.c PROPERTIES
+  COMPILE_DEFINITIONS " CJSON_API_VISIBILITY " )
+
+
 ##############################################################################
 # vppinfra sources
 ##############################################################################
 set(VPPINFRA_SRCS
   backtrace.c
+  bitmap.c
   bihash_all_vector.c
   cpu.c
   dlmalloc.c
@@ -49,16 +57,23 @@ set(VPPINFRA_SRCS
   error.c
   fifo.c
   format.c
-  graph.c
+  format_table.c
   hash.c
   heap.c
+  interrupt.c
+  jsonformat.c
   longjmp.S
   macros.c
   maplog.c
+  mem.c
+  mem_bulk.c
   mem_dlmalloc.c
   mhash.c
   mpcap.c
   pcap.c
+  perfmon/bundle_default.c
+  perfmon/bundle_core_power.c
+  perfmon/perfmon.c
   pmalloc.c
   pool.c
   ptclosure.c
@@ -85,15 +100,20 @@ set(VPPINFRA_SRCS
   valloc.c
   vec.c
   vector.c
+  vector/toeplitz.c
+  cJSON.c
 )
 
 set(VPPINFRA_HEADERS
-  sanitizer.h
+  bihash_12_4.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
@@ -102,6 +122,8 @@ set(VPPINFRA_HEADERS
   byte_order.h
   cache.h
   callback.h
+  callback_data.h
+  cJSON.h
   clib_error.h
   clib.h
   cpu.h
@@ -116,9 +138,11 @@ set(VPPINFRA_HEADERS
   fifo.h
   file.h
   format.h
-  graph.h
+  format_table.h
   hash.h
   heap.h
+  interrupt.h
+  jsonformat.h
   lb_hash_hash.h
   llist.h
   lock.h
@@ -126,19 +150,18 @@ set(VPPINFRA_HEADERS
   macros.h
   maplog.h
   math.h
-  memcpy_avx2.h
-  memcpy_avx512.h
-  memcpy_sse3.h
+  memcpy.h
+  memcpy_x86_64.h
   mem.h
   mhash.h
-  mheap.h
   mpcap.h
   os.h
   pcap.h
   pcap_funcs.h
+  pcg.h
+  perfmon/perfmon.h
   pmalloc.h
   pool.h
-  pmc.h
   ptclosure.h
   random_buffer.h
   random.h
@@ -170,12 +193,18 @@ set(VPPINFRA_HEADERS
   vector_altivec.h
   vector_avx2.h
   vector_avx512.h
-  vector_funcs.h
+  vector/array_mask.h
+  vector/compress.h
+  vector/count_equal.h
+  vector/index_to_ptr.h
+  vector/ip_csum.h
+  vector/mask_compare.h
+  vector/toeplitz.h
   vector.h
   vector_neon.h
   vector_sse42.h
+  warnings.h
   xxhash.h
-  linux/syscall.h
   linux/sysfs.h
 )
 
@@ -184,14 +213,20 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
     elf_clib.c
     linux/mem.c
     linux/sysfs.c
+    linux/netns.c
    )
 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
 )
 
 ##############################################################################
@@ -213,6 +248,7 @@ if(VPP_BUILD_VPPINFRA_TESTS)
     macros
     maplog
     pmalloc
+    pool_alloc
     pool_iterate
     ptclosure
     random
@@ -240,3 +276,30 @@ if(VPP_BUILD_VPPINFRA_TESTS)
       )
   endforeach()
 endif(VPP_BUILD_VPPINFRA_TESTS)
+
+set(test_files
+  test/array_mask.c
+  test/compress.c
+  test/count_equal.c
+  test/crc32c.c
+  test/index_to_ptr.c
+  test/ip_csum.c
+  test/mask_compare.c
+  test/memcpy_x86_64.c
+  test/sha2.c
+  test/toeplitz.c
+)
+
+add_vpp_executable(test_infra
+  SOURCES
+  test/test.c
+  ${test_files}
+  LINK_LIBRARIES vppinfra
+  NO_INSTALL
+)
+
+vpp_library_set_multiarch_sources(test_infra
+  SOURCES
+  ${test_files}
+)
+