blob: 3c354b764dd44f094eba2ecb9cdb156c1b79a76f [file] [log] [blame]
# Copyright (c) 2018 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# 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()
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")
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_CURRENT_BINARY_DIR}/config.h
)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/vlib
COMPONENT vpp-dev
)
##############################################################################
# vlib shared library
##############################################################################
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()
add_vpp_library(vlib
SOURCES
buffer.c
buffer_funcs.c
cli.c
counter.c
drop.c
error.c
format.c
handoff_trace.c
init.c
log.c
main.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
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
unix/main.c
unix/plugin.c
unix/util.c
vmbus/vmbus.c
dma/dma.c
dma/cli.c
${PLATFORM_SOURCES}
MULTIARCH_SOURCES
buffer_funcs.c
drop.c
punt_node.c
node_init.c
INSTALL_HEADERS
buffer_funcs.h
buffer.h
buffer_node.h
cli.h
counter.h
counter_types.h
defs.h
dma/dma.h
error_funcs.h
error.h
format_funcs.h
global_funcs.h
init.h
log.h
main.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
stats/shared.h
stats/stats.h
threads.h
time.h
trace_funcs.h
trace.h
unix/mc_socket.h
unix/plugin.h
unix/unix.h
vlib.h
vmbus/vmbus.h
${PLATFORM_HEADERS}
API_FILES
pci/pci_types.api
LINK_LIBRARIES vppinfra svm ${CMAKE_DL_LIBS} ${EPOLL_LIB}
DEPENDS api_headers
)