cmake: add add_vpp_library and add_vpp_executable macros
[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(FILES ${CMAKE_BINARY_DIR}/vlib/config.h DESTINATION include/vlib)
23
24 ##############################################################################
25 # vlib shared library
26 ##############################################################################
27 add_vpp_library(vlib
28   SOURCES
29   buffer.c
30   buffer_serialize.c
31   cli.c
32   counter.c
33   error.c
34   format.c
35   i2c.c
36   init.c
37   linux/pci.c
38   linux/physmem.c
39   linux/vfio.c
40   log.c
41   main.c
42   mc.c
43   node.c
44   node_cli.c
45   node_format.c
46   pci/pci.c
47   threads.c
48   threads_cli.c
49   trace.c
50   unix/cj.c
51   unix/cli.c
52   unix/input.c
53   unix/main.c
54   unix/mc_socket.c
55   unix/plugin.c
56   unix/util.c
57
58   INSTALL_HEADERS
59   buffer_funcs.h
60   buffer.h
61   buffer_node.h
62   cli_funcs.h
63   cli.h
64   counter.h
65   defs.h
66   error_funcs.h
67   error.h
68   format_funcs.h
69   global_funcs.h
70   i2c.h
71   init.h
72   linux/vfio.h
73   log.h
74   main.h
75   mc.h
76   node_funcs.h
77   node.h
78   pci/pci_config.h
79   pci/pci.h
80   physmem_funcs.h
81   physmem.h
82   threads.h
83   trace_funcs.h
84   trace.h
85   unix/cj.h
86   unix/mc_socket.h
87   unix/plugin.h
88   unix/unix.h
89   vlib.h
90
91   LINK_LIBRARIES vppinfra svm ${CMAKE_DL_LIBS}
92 )