blob: a74c8cefb98d236c503283a5561cafb10735933b [file] [log] [blame]
Damjan Marion612dd6a2018-07-30 12:45:07 +02001# Copyright (c) 2018 Cisco and/or its affiliates.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at:
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
Dave Barachc74b43c2020-04-09 17:24:07 -040014option(VPP_BUFFER_FAULT_INJECTOR "Include the buffer fault injector" OFF)
15
Damjan Marion612dd6a2018-07-30 12:45:07 +020016##############################################################################
17# Generate vlib/config.h
18##############################################################################
Dave Barachc74b43c2020-04-09 17:24:07 -040019if(VPP_BUFFER_FAULT_INJECTOR)
20 set(BUFFER_ALLOC_FAULT_INJECTOR 1 CACHE STRING "fault injector on")
21else()
22 set(BUFFER_ALLOC_FAULT_INJECTOR 0 CACHE STRING "fault injector off")
23endif()
24
Damjan Marion612dd6a2018-07-30 12:45:07 +020025set(PRE_DATA_SIZE 128 CACHE STRING "Buffer headroom size.")
Damjan Marionef587582020-05-20 22:01:44 +020026
27if (CMAKE_BUILD_TYPE_UC STREQUAL "DEBUG")
28 set(_ss 16)
29else()
30 set(_ss 15)
31endif()
32set(VLIB_PROCESS_LOG2_STACK_SIZE
33 ${_ss}
34 CACHE
35 STRING "Process node default stack size (log2)"
36)
37
Damjan Marion612dd6a2018-07-30 12:45:07 +020038configure_file(
39 ${CMAKE_SOURCE_DIR}/vlib/config.h.in
Damjan Marion88b2e362021-04-29 18:47:25 +020040 ${CMAKE_CURRENT_BINARY_DIR}/config.h
Damjan Marion612dd6a2018-07-30 12:45:07 +020041)
Damjan Marion833de8c2018-09-07 12:39:02 +020042install(
Damjan Marion88b2e362021-04-29 18:47:25 +020043 FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h
Nick Browne3cf4d02021-09-15 14:25:40 +010044 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/vlib
Damjan Marion833de8c2018-09-07 12:39:02 +020045 COMPONENT vpp-dev
46)
Damjan Marion612dd6a2018-07-30 12:45:07 +020047
48##############################################################################
Stephen Hemminger6fbef232018-10-15 12:52:30 -070049# Find lib and include files
50##############################################################################
51message(STATUS "Looking for libuuid")
Damjan Marion3648d932021-04-30 20:27:53 +020052vpp_find_path(UUID_INCLUDE_DIR NAMES uuid/uuid.h)
53vpp_find_library(UUID_LIB NAMES uuid)
Stephen Hemminger6fbef232018-10-15 12:52:30 -070054
55if(UUID_INCLUDE_DIR AND UUID_LIB)
56 include_directories(${UUID_INCLUDE_DIR})
57 set(VMBUS_SOURCE linux/vmbus.c)
58 set(VMBUS_LIBS uuid)
59 message(STATUS "Found uuid in ${UUID_INCLUDE_DIR}")
60else()
61 message(WARNING "-- libuuid not found - vmbus support disabled")
62endif()
63
64##############################################################################
Damjan Marion612dd6a2018-07-30 12:45:07 +020065# vlib shared library
66##############################################################################
Damjan Marion4553c952018-08-26 11:04:40 +020067add_vpp_library(vlib
68 SOURCES
Damjan Marion612dd6a2018-07-30 12:45:07 +020069 buffer.c
Damjan Marion1c229712021-04-21 12:55:15 +020070 buffer_funcs.c
Damjan Marion612dd6a2018-07-30 12:45:07 +020071 cli.c
72 counter.c
Neale Ranns22e1f1d2019-03-01 15:53:11 +000073 drop.c
Damjan Marion612dd6a2018-07-30 12:45:07 +020074 error.c
75 format.c
Dave Baracha638c182019-06-21 18:24:07 -040076 handoff_trace.c
Damjan Marion612dd6a2018-07-30 12:45:07 +020077 init.c
78 linux/pci.c
Damjan Marion612dd6a2018-07-30 12:45:07 +020079 linux/vfio.c
80 log.c
81 main.c
Damjan Marion612dd6a2018-07-30 12:45:07 +020082 node.c
83 node_cli.c
84 node_format.c
Ray Kinsella4830e4f2020-03-10 14:35:32 +000085 node_init.c
Damjan Marion612dd6a2018-07-30 12:45:07 +020086 pci/pci.c
Jakub Grajciar53f06a02020-03-30 08:12:57 +020087 pci/pci_types_api.c
Damjan Marion68b4da62018-09-30 18:26:20 +020088 physmem.c
Neale Ranns76b56492018-09-28 15:16:14 +000089 punt.c
90 punt_node.c
Damjan Marion612dd6a2018-07-30 12:45:07 +020091 threads.c
92 threads_cli.c
Benoît Ganne56eccdb2021-08-20 09:18:31 +020093 time.c
Damjan Marion612dd6a2018-07-30 12:45:07 +020094 trace.c
Damjan Marion612dd6a2018-07-30 12:45:07 +020095 unix/cli.c
96 unix/input.c
97 unix/main.c
Damjan Marion612dd6a2018-07-30 12:45:07 +020098 unix/plugin.c
99 unix/util.c
Stephen Hemminger6fbef232018-10-15 12:52:30 -0700100 vmbus/vmbus.c
101 ${VMBUS_SOURCE}
Damjan Marion612dd6a2018-07-30 12:45:07 +0200102
Neale Ranns22e1f1d2019-03-01 15:53:11 +0000103 MULTIARCH_SOURCES
Damjan Marion1c229712021-04-21 12:55:15 +0200104 buffer_funcs.c
Neale Ranns22e1f1d2019-03-01 15:53:11 +0000105 drop.c
Neale Ranns76b56492018-09-28 15:16:14 +0000106 punt_node.c
Ray Kinsella4830e4f2020-03-10 14:35:32 +0000107 node_init.c
Neale Ranns22e1f1d2019-03-01 15:53:11 +0000108
Damjan Marion4553c952018-08-26 11:04:40 +0200109 INSTALL_HEADERS
Damjan Marion612dd6a2018-07-30 12:45:07 +0200110 buffer_funcs.h
111 buffer.h
112 buffer_node.h
Damjan Marion612dd6a2018-07-30 12:45:07 +0200113 cli.h
114 counter.h
Ole Troan58492a82018-09-04 13:19:12 +0200115 counter_types.h
Damjan Marion612dd6a2018-07-30 12:45:07 +0200116 defs.h
117 error_funcs.h
118 error.h
119 format_funcs.h
120 global_funcs.h
Damjan Marion612dd6a2018-07-30 12:45:07 +0200121 init.h
122 linux/vfio.h
123 log.h
124 main.h
Damjan Marion612dd6a2018-07-30 12:45:07 +0200125 node_funcs.h
126 node.h
127 pci/pci_config.h
128 pci/pci.h
Jakub Grajciar53f06a02020-03-30 08:12:57 +0200129 pci/pci_types_api.h
Damjan Marion612dd6a2018-07-30 12:45:07 +0200130 physmem_funcs.h
131 physmem.h
Neale Ranns76b56492018-09-28 15:16:14 +0000132 punt.h
Damjan Marion612dd6a2018-07-30 12:45:07 +0200133 threads.h
Benoît Ganne56eccdb2021-08-20 09:18:31 +0200134 time.h
Damjan Marion612dd6a2018-07-30 12:45:07 +0200135 trace_funcs.h
136 trace.h
Damjan Marion612dd6a2018-07-30 12:45:07 +0200137 unix/mc_socket.h
138 unix/plugin.h
139 unix/unix.h
140 vlib.h
Stephen Hemminger6fbef232018-10-15 12:52:30 -0700141 vmbus/vmbus.h
Damjan Marion612dd6a2018-07-30 12:45:07 +0200142
Jakub Grajciar53f06a02020-03-30 08:12:57 +0200143 API_FILES
144 pci/pci_types.api
145
Stephen Hemminger6fbef232018-10-15 12:52:30 -0700146 LINK_LIBRARIES vppinfra svm ${VMBUS_LIBS} ${CMAKE_DL_LIBS}
Jakub Grajciar53f06a02020-03-30 08:12:57 +0200147
148 DEPENDS api_headers
Damjan Marion4553c952018-08-26 11:04:40 +0200149)