vlib: move pci api types from vnet/pci to vlib/pci
[vpp.git] / src / vlib / CMakeLists.txt
1 # 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
14 ##############################################################################
15 # Generate vlib/config.h
16 ##############################################################################
17 set(PRE_DATA_SIZE 128 CACHE STRING "Buffer headroom size.")
18 configure_file(
19   ${CMAKE_SOURCE_DIR}/vlib/config.h.in
20   ${CMAKE_BINARY_DIR}/vlib/config.h
21 )
22 install(
23   FILES ${CMAKE_BINARY_DIR}/vlib/config.h
24   DESTINATION include/vlib
25   COMPONENT vpp-dev
26 )
27
28 ##############################################################################
29 # Find lib and include files
30 ##############################################################################
31 message(STATUS "Looking for libuuid")
32 find_path(UUID_INCLUDE_DIR NAMES uuid/uuid.h)
33 find_library(UUID_LIB NAMES uuid)
34
35 if(UUID_INCLUDE_DIR AND UUID_LIB)
36   include_directories(${UUID_INCLUDE_DIR})
37   set(VMBUS_SOURCE linux/vmbus.c)
38   set(VMBUS_LIBS uuid)
39   message(STATUS "Found uuid in ${UUID_INCLUDE_DIR}")
40 else()
41   message(WARNING "-- libuuid not found - vmbus support disabled")
42 endif()
43
44 ##############################################################################
45 # vlib shared library
46 ##############################################################################
47 add_vpp_library(vlib
48   SOURCES
49   buffer.c
50   cli.c
51   counter.c
52   drop.c
53   error.c
54   format.c
55   handoff_trace.c
56   i2c.c
57   init.c
58   linux/pci.c
59   linux/vfio.c
60   log.c
61   main.c
62   node.c
63   node_cli.c
64   node_format.c
65   pci/pci.c
66   pci/pci_types_api.c
67   physmem.c
68   punt.c
69   punt_node.c
70   threads.c
71   threads_cli.c
72   trace.c
73   unix/cj.c
74   unix/cli.c
75   unix/input.c
76   unix/main.c
77   unix/plugin.c
78   unix/util.c
79   vmbus/vmbus.c
80   ${VMBUS_SOURCE}
81
82   MULTIARCH_SOURCES
83   drop.c
84   punt_node.c
85
86   INSTALL_HEADERS
87   buffer_funcs.h
88   buffer.h
89   buffer_node.h
90   cli.h
91   counter.h
92   counter_types.h
93   defs.h
94   error_funcs.h
95   error.h
96   format_funcs.h
97   global_funcs.h
98   i2c.h
99   init.h
100   linux/vfio.h
101   log.h
102   main.h
103   node_funcs.h
104   node.h
105   pci/pci_config.h
106   pci/pci.h
107   pci/pci_types_api.h
108   physmem_funcs.h
109   physmem.h
110   punt.h
111   threads.h
112   trace_funcs.h
113   trace.h
114   unix/cj.h
115   unix/mc_socket.h
116   unix/plugin.h
117   unix/unix.h
118   vlib.h
119   vmbus/vmbus.h
120
121   API_FILES
122   pci/pci_types.api
123
124   LINK_LIBRARIES vppinfra svm ${VMBUS_LIBS} ${CMAKE_DL_LIBS}
125
126   DEPENDS api_headers
127 )