vppinfra: add atomic macros for __sync builtins
[vpp.git] / src / vppinfra / CMakeLists.txt
index ecd1528..7103d60 100644 (file)
@@ -16,7 +16,7 @@ enable_language(ASM)
 ##############################################################################
 # Generate vppinfra/config.h
 ##############################################################################
-set(LOG2_CACHE_LINE_BYTES 6)
+set(LOG2_CACHE_LINE_BYTES ${VPP_LOG2_CACHE_LINE_SIZE})
 option(VPP_USE_DLMALLOC "Use dlmalloc memory allocator." ON)
 if(VPP_USE_DLMALLOC)
   set(DLMALLOC 1)
@@ -32,7 +32,7 @@ configure_file(
 install(
   FILES ${CMAKE_BINARY_DIR}/vppinfra/config.h
   DESTINATION include/vppinfra
-  COMPONENT dev
+  COMPONENT vpp-dev
 )
 
 ##############################################################################
@@ -44,7 +44,6 @@ set(VPPINFRA_SRCS
   cpu.c
   cuckoo_template.c
   elf.c
-  elf_clib.c
   elog.c
   error.c
   fheap.c
@@ -59,7 +58,6 @@ set(VPPINFRA_SRCS
   mhash.c
   pool.c
   ptclosure.c
-  qsort.c
   random.c
   random_buffer.c
   random_isaac.c
@@ -84,30 +82,9 @@ set(VPPINFRA_SRCS
   vec.c
   vector.c
   zvec.c
-  linux/mem.c
-  linux/sysfs.c
 )
 
-if(VPP_USE_DLMALLOC)
-  list(APPEND VPPINFRA_SRCS
-    dlmalloc.c
-    mem_dlmalloc.c
-  )
-else(VPP_USE_DLMALLOC)
-  list(APPEND VPPINFRA_SRCS
-    mheap.c
-    mem_mheap.c
-  )
-endif(VPP_USE_DLMALLOC)
-
-add_library(vppinfra SHARED ${VPPINFRA_SRCS})
-target_link_libraries(vppinfra m)
-install(TARGETS vppinfra DESTINATION lib)
-
-##############################################################################
-# vppinfra headers
-##############################################################################
-vpp_add_header_files(vppinfra
+set(VPPINFRA_HEADERS
   asm_mips.h
   asm_x86.h
   bihash_16_8.h
@@ -181,6 +158,7 @@ vpp_add_header_files(vppinfra
   tw_timer_template.c
   tw_timer_template.h
   types.h
+  atomics.h
   unix.h
   valgrind.h
   valloc.h
@@ -200,12 +178,41 @@ vpp_add_header_files(vppinfra
   linux/sysfs.h
 )
 
+if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
+  list(APPEND VPPINFRA_SRCS
+    elf_clib.c
+    linux/mem.c
+    linux/sysfs.c
+   )
+endif()
+
+
+if(VPP_USE_DLMALLOC)
+  list(APPEND VPPINFRA_SRCS
+    dlmalloc.c
+    mem_dlmalloc.c
+  )
+else(VPP_USE_DLMALLOC)
+  list(APPEND VPPINFRA_SRCS
+    mheap.c
+    mem_mheap.c
+  )
+endif(VPP_USE_DLMALLOC)
+
+add_vpp_library(vppinfra
+  SOURCES ${VPPINFRA_SRCS}
+  LINK_LIBRARIES m
+  INSTALL_HEADERS ${VPPINFRA_HEADERS}
+  COMPONENT libvppinfra
+)
+
+##############################################################################
+# vppinfra headers
+##############################################################################
 option(VPP_BUILD_VPPINFRA_TESTS "Build vppinfra tests." OFF)
 if(VPP_BUILD_VPPINFRA_TESTS)
-  set(VPPINFRA_TESTS
-    bihash_template
+  foreach(test
     bihash_vec88
-    cuckoo_bihash
     cuckoo_template
     dlist
     elf
@@ -232,14 +239,18 @@ if(VPP_BUILD_VPPINFRA_TESTS)
     tw_timer
     valloc
     vec
-    vhash
     zvec
   )
-  foreach(test ${VPPINFRA_TESTS})
-    add_executable(test_${test} test_${test}.c)
-    target_link_libraries(test_${test} vppinfra)
+    add_vpp_executable(test_${test}
+      SOURCES test_${test}.c
+      LINK_LIBRARIES vppinfra
+      )
   endforeach()
 
-  target_link_libraries(test_bihash_template Threads::Threads)
-  target_link_libraries(test_cuckoo_bihash Threads::Threads)
+  foreach(test bihash_template cuckoo_bihash)
+    add_vpp_executable(test_${test}
+      SOURCES test_${test}.c
+      LINK_LIBRARIES vppinfra Threads::Threads
+      )
+  endforeach()
 endif(VPP_BUILD_VPPINFRA_TESTS)