
Type: improvement Change-Id: I0739959084d7cfd8309793f54c92c046b94d7a02 Signed-off-by: Tom Jones <thj@freebsd.org>
166 lines
3.3 KiB
CMake
166 lines
3.3 KiB
CMake
# 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
|
|
)
|