vppinfra: Improve code portability
[vpp.git] / src / vlib / CMakeLists.txt
index dbd74f1..3c354b7 100644 (file)
@@ -22,6 +22,12 @@ else()
   set(BUFFER_ALLOC_FAULT_INJECTOR 0 CACHE STRING "fault injector off")
 endif()
 
+if(VPP_PLATFORM_BUFFER_ALIGN)
+  set(VLIB_BUFFER_ALIGN ${VPP_PLATFORM_BUFFER_ALIGN})
+else()
+  set(VLIB_BUFFER_ALIGN ${VPP_CACHE_LINE_SIZE})
+endif()
+
 set(PRE_DATA_SIZE 128 CACHE STRING "Buffer headroom size.")
 
 if (CMAKE_BUILD_TYPE_UC STREQUAL "DEBUG")
@@ -37,33 +43,34 @@ set(VLIB_PROCESS_LOG2_STACK_SIZE
 
 configure_file(
   ${CMAKE_SOURCE_DIR}/vlib/config.h.in
-  ${CMAKE_BINARY_DIR}/vlib/config.h
+  ${CMAKE_CURRENT_BINARY_DIR}/config.h
 )
 install(
-  FILES ${CMAKE_BINARY_DIR}/vlib/config.h
-  DESTINATION include/vlib
+  FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h
+  DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/vlib
   COMPONENT vpp-dev
 )
 
 ##############################################################################
-# Find lib and include files
+# vlib shared library
 ##############################################################################
-message(STATUS "Looking for libuuid")
-find_path(UUID_INCLUDE_DIR NAMES uuid/uuid.h)
-find_library(UUID_LIB NAMES uuid)
 
-if(UUID_INCLUDE_DIR AND UUID_LIB)
-  include_directories(${UUID_INCLUDE_DIR})
-  set(VMBUS_SOURCE linux/vmbus.c)
-  set(VMBUS_LIBS uuid)
-  message(STATUS "Found uuid in ${UUID_INCLUDE_DIR}")
-else()
-  message(WARNING "-- libuuid not found - vmbus support disabled")
+if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
+set(PLATFORM_SOURCES
+  linux/pci.c
+  linux/vfio.c
+  linux/vmbus.c
+)
+
+set(PLATFORM_HEADERS
+  linux/vfio.h
+)
+elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD")
+set(PLATFORM_SOURCES
+  freebsd/pci.c
+)
 endif()
 
-##############################################################################
-# vlib shared library
-##############################################################################
 add_vpp_library(vlib
   SOURCES
   buffer.c
@@ -75,8 +82,6 @@ add_vpp_library(vlib
   format.c
   handoff_trace.c
   init.c
-  linux/pci.c
-  linux/vfio.c
   log.c
   main.c
   node.c
@@ -88,8 +93,15 @@ add_vpp_library(vlib
   physmem.c
   punt.c
   punt_node.c
+  stats/cli.c
+  stats/collector.c
+  stats/format.c
+  stats/init.c
+  stats/provider_mem.c
+  stats/stats.c
   threads.c
   threads_cli.c
+  time.c
   trace.c
   unix/cli.c
   unix/input.c
@@ -97,7 +109,9 @@ add_vpp_library(vlib
   unix/plugin.c
   unix/util.c
   vmbus/vmbus.c
-  ${VMBUS_SOURCE}
+  dma/dma.c
+  dma/cli.c
+  ${PLATFORM_SOURCES}
 
   MULTIARCH_SOURCES
   buffer_funcs.c
@@ -113,12 +127,12 @@ add_vpp_library(vlib
   counter.h
   counter_types.h
   defs.h
+  dma/dma.h
   error_funcs.h
   error.h
   format_funcs.h
   global_funcs.h
   init.h
-  linux/vfio.h
   log.h
   main.h
   node_funcs.h
@@ -129,7 +143,10 @@ add_vpp_library(vlib
   physmem_funcs.h
   physmem.h
   punt.h
+  stats/shared.h
+  stats/stats.h
   threads.h
+  time.h
   trace_funcs.h
   trace.h
   unix/mc_socket.h
@@ -137,11 +154,12 @@ add_vpp_library(vlib
   unix/unix.h
   vlib.h
   vmbus/vmbus.h
+  ${PLATFORM_HEADERS}
 
   API_FILES
   pci/pci_types.api
 
-  LINK_LIBRARIES vppinfra svm ${VMBUS_LIBS} ${CMAKE_DL_LIBS}
+  LINK_LIBRARIES vppinfra svm ${CMAKE_DL_LIBS} ${EPOLL_LIB}
 
   DEPENDS api_headers
 )