build: declare some CMake variables as advanced
[vpp.git] / src / vlib / CMakeLists.txt
index dceb13e..c8127fb 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+option(VPP_BUFFER_FAULT_INJECTOR "Include the buffer fault injector" OFF)
+
 ##############################################################################
 # Generate vlib/config.h
 ##############################################################################
+if(VPP_BUFFER_FAULT_INJECTOR)
+  set(BUFFER_ALLOC_FAULT_INJECTOR 1 CACHE STRING "fault injector on")
+else()
+  set(BUFFER_ALLOC_FAULT_INJECTOR 0 CACHE STRING "fault injector off")
+endif()
+
 set(PRE_DATA_SIZE 128 CACHE STRING "Buffer headroom size.")
+
+if (CMAKE_BUILD_TYPE_UC STREQUAL "DEBUG")
+  set(_ss 16)
+else()
+  set(_ss 15)
+endif()
+set(VLIB_PROCESS_LOG2_STACK_SIZE
+ ${_ss}
+ CACHE
+ STRING "Process node default stack size (log2)"
+)
+
 configure_file(
   ${CMAKE_SOURCE_DIR}/vlib/config.h.in
-  ${CMAKE_BINARY_DIR}/vlib/config.h
+  ${CMAKE_CURRENT_BINARY_DIR}/config.h
+)
+install(
+  FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h
+  DESTINATION include/vlib
+  COMPONENT vpp-dev
 )
-install(FILES ${CMAKE_BINARY_DIR}/vlib/config.h DESTINATION include/vlib)
+
+##############################################################################
+# Find lib and include files
+##############################################################################
+message(STATUS "Looking for libuuid")
+vpp_find_path(UUID_INCLUDE_DIR NAMES uuid/uuid.h)
+vpp_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")
+endif()
 
 ##############################################################################
 # vlib shared library
 ##############################################################################
-set(VLIB_SRCS
+add_vpp_library(vlib
+  SOURCES
   buffer.c
-  buffer_serialize.c
+  buffer_funcs.c
   cli.c
   counter.c
+  drop.c
   error.c
   format.c
-  i2c.c
+  handoff_trace.c
   init.c
   linux/pci.c
-  linux/physmem.c
   linux/vfio.c
   log.c
   main.c
-  mc.c
   node.c
   node_cli.c
   node_format.c
+  node_init.c
   pci/pci.c
+  pci/pci_types_api.c
+  physmem.c
+  punt.c
+  punt_node.c
   threads.c
   threads_cli.c
   trace.c
-  unix/cj.c
   unix/cli.c
   unix/input.c
   unix/main.c
-  unix/mc_socket.c
   unix/plugin.c
   unix/util.c
-)
+  vmbus/vmbus.c
+  ${VMBUS_SOURCE}
 
-add_library(vlib SHARED ${VLIB_SRCS})
-target_link_libraries(vlib vppinfra svm ${CMAKE_DL_LIBS})
-install(TARGETS vlib DESTINATION lib)
+  MULTIARCH_SOURCES
+  buffer_funcs.c
+  drop.c
+  punt_node.c
+  node_init.c
 
-##############################################################################
-# vlib headers
-##############################################################################
-vpp_add_header_files(vlib
+  INSTALL_HEADERS
   buffer_funcs.h
   buffer.h
   buffer_node.h
-  cli_funcs.h
   cli.h
   counter.h
+  counter_types.h
   defs.h
   error_funcs.h
   error.h
   format_funcs.h
   global_funcs.h
-  i2c.h
   init.h
   linux/vfio.h
   log.h
   main.h
-  mc.h
   node_funcs.h
   node.h
   pci/pci_config.h
   pci/pci.h
+  pci/pci_types_api.h
   physmem_funcs.h
   physmem.h
+  punt.h
   threads.h
   trace_funcs.h
   trace.h
-  unix/cj.h
   unix/mc_socket.h
   unix/plugin.h
   unix/unix.h
   vlib.h
-)
+  vmbus/vmbus.h
+
+  API_FILES
+  pci/pci_types.api
 
+  LINK_LIBRARIES vppinfra svm ${VMBUS_LIBS} ${CMAKE_DL_LIBS}
+
+  DEPENDS api_headers
+)