Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 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 | enable_language(ASM) | ||||
15 | |||||
16 | ############################################################################## | ||||
17 | # Generate vppinfra/config.h | ||||
18 | ############################################################################## | ||||
Damjan Marion | edc4387 | 2018-09-02 11:16:00 +0200 | [diff] [blame] | 19 | set(LOG2_CACHE_LINE_BYTES ${VPP_LOG2_CACHE_LINE_SIZE}) |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 20 | |
Dave Barach | 98bd757 | 2020-02-10 10:16:40 -0500 | [diff] [blame] | 21 | option(VPP_VECTOR_GROW_BY_ONE "Vectors grow by one, instead of 3/2" OFF) |
22 | if(VPP_VECTOR_GROW_BY_ONE) | ||||
23 | set(VECTOR_GROW_BY_ONE 1) | ||||
24 | else(VPP_VECTOR_GROW_BY_ONE) | ||||
25 | set(VECTOR_GROW_BY_ONE 0) | ||||
26 | endif(VPP_VECTOR_GROW_BY_ONE) | ||||
27 | |||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 28 | configure_file( |
29 | ${CMAKE_SOURCE_DIR}/vppinfra/config.h.in | ||||
Damjan Marion | 88b2e36 | 2021-04-29 18:47:25 +0200 | [diff] [blame] | 30 | ${CMAKE_CURRENT_BINARY_DIR}/config.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 31 | ) |
32 | |||||
33 | install( | ||||
Damjan Marion | 88b2e36 | 2021-04-29 18:47:25 +0200 | [diff] [blame] | 34 | FILES ${CMAKE_CURRENT_BINARY_DIR}/config.h |
Nick Brown | e3cf4d0 | 2021-09-15 14:25:40 +0100 | [diff] [blame] | 35 | DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/vppinfra |
Damjan Marion | 43b0606 | 2018-08-29 22:20:45 +0200 | [diff] [blame] | 36 | COMPONENT vpp-dev |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 37 | ) |
38 | |||||
Damjan Marion | dae1c7e | 2020-10-17 13:32:25 +0200 | [diff] [blame] | 39 | add_definitions(-fvisibility=hidden) |
40 | |||||
Ole Troan | df87f80 | 2020-11-18 19:17:48 +0100 | [diff] [blame] | 41 | # Ensure symbols from cJSON are exported |
42 | set_source_files_properties( cJSON.c PROPERTIES | ||||
43 | COMPILE_DEFINITIONS " CJSON_API_VISIBILITY " ) | ||||
44 | |||||
45 | |||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 46 | ############################################################################## |
47 | # vppinfra sources | ||||
48 | ############################################################################## | ||||
49 | set(VPPINFRA_SRCS | ||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 50 | backtrace.c |
Damjan Marion | 7f57f50 | 2021-04-15 16:13:20 +0200 | [diff] [blame] | 51 | bitmap.c |
Dave Barach | 32dcd3b | 2019-07-08 12:25:38 -0400 | [diff] [blame] | 52 | bihash_all_vector.c |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 53 | cpu.c |
Dave Barach | 2c8e002 | 2020-02-11 15:06:34 -0500 | [diff] [blame] | 54 | dlmalloc.c |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 55 | elf.c |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 56 | elog.c |
57 | error.c | ||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 58 | fifo.c |
59 | format.c | ||||
Nathan Skrzypczak | 0e65840 | 2021-09-17 11:51:46 +0200 | [diff] [blame] | 60 | format_table.c |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 61 | graph.c |
62 | hash.c | ||||
63 | heap.c | ||||
Damjan Marion | 9410053 | 2020-11-06 23:25:57 +0100 | [diff] [blame] | 64 | interrupt.c |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 65 | longjmp.S |
66 | macros.c | ||||
67 | maplog.c | ||||
Damjan Marion | 57d1ec0 | 2020-09-16 21:15:44 +0200 | [diff] [blame] | 68 | mem.c |
Damjan Marion | 0da8168 | 2020-12-22 14:58:56 +0100 | [diff] [blame] | 69 | mem_bulk.c |
Dave Barach | 2c8e002 | 2020-02-11 15:06:34 -0500 | [diff] [blame] | 70 | mem_dlmalloc.c |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 71 | mhash.c |
Gary Boon | a9ed6f7 | 2019-07-22 10:57:56 -0400 | [diff] [blame] | 72 | mpcap.c |
Dave Barach | 3ae2873 | 2018-11-16 17:19:00 -0500 | [diff] [blame] | 73 | pcap.c |
Damjan Marion | 68b4da6 | 2018-09-30 18:26:20 +0200 | [diff] [blame] | 74 | pmalloc.c |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 75 | pool.c |
76 | ptclosure.c | ||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 77 | random_buffer.c |
Dave Barach | 2c8e002 | 2020-02-11 15:06:34 -0500 | [diff] [blame] | 78 | random.c |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 79 | random_isaac.c |
Florin Coras | 672d5fc | 2019-04-15 17:28:51 -0700 | [diff] [blame] | 80 | rbtree.c |
Benoît Ganne | d4721b2 | 2021-06-09 17:20:16 +0200 | [diff] [blame] | 81 | sanitizer.c |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 82 | serialize.c |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 83 | socket.c |
84 | std-formats.c | ||||
85 | string.c | ||||
86 | time.c | ||||
87 | time_range.c | ||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 88 | timing_wheel.c |
Dave Barach | d7b828f | 2020-04-01 16:54:00 -0400 | [diff] [blame] | 89 | tw_timer_2t_2w_512sl.c |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 90 | tw_timer_16t_1w_2048sl.c |
Dave Barach | 2c8e002 | 2020-02-11 15:06:34 -0500 | [diff] [blame] | 91 | tw_timer_16t_2w_512sl.c |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 92 | tw_timer_1t_3w_1024sl_ov.c |
Dave Barach | 2c8e002 | 2020-02-11 15:06:34 -0500 | [diff] [blame] | 93 | tw_timer_2t_1w_2048sl.c |
94 | tw_timer_4t_3w_256sl.c | ||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 95 | unformat.c |
96 | unix-formats.c | ||||
97 | unix-misc.c | ||||
98 | valloc.c | ||||
99 | vec.c | ||||
100 | vector.c | ||||
Ole Troan | df87f80 | 2020-11-18 19:17:48 +0100 | [diff] [blame] | 101 | cJSON.c |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 102 | ) |
103 | |||||
Damjan Marion | 4553c95 | 2018-08-26 11:04:40 +0200 | [diff] [blame] | 104 | set(VPPINFRA_HEADERS |
Benoît Ganne | 9fb6d40 | 2019-04-15 15:28:21 +0200 | [diff] [blame] | 105 | sanitizer.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 106 | bihash_16_8.h |
107 | bihash_24_8.h | ||||
Matthew Smith | f613a44 | 2021-01-20 08:59:10 -0600 | [diff] [blame] | 108 | bihash_32_8.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 109 | bihash_40_8.h |
110 | bihash_48_8.h | ||||
111 | bihash_8_8.h | ||||
jiangxiaoming | 498889a | 2020-10-22 09:08:04 +0800 | [diff] [blame] | 112 | bihash_8_16.h |
113 | bihash_24_16.h | ||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 114 | bihash_template.c |
115 | bihash_template.h | ||||
116 | bihash_vec8_8.h | ||||
117 | bitmap.h | ||||
118 | bitops.h | ||||
119 | byte_order.h | ||||
120 | cache.h | ||||
Dave Barach | 5f2cfb2 | 2019-05-20 10:28:57 -0400 | [diff] [blame] | 121 | callback.h |
Tom Seidenberg | 6c81f5a | 2020-07-10 15:49:03 +0000 | [diff] [blame] | 122 | callback_data.h |
Ole Troan | df87f80 | 2020-11-18 19:17:48 +0100 | [diff] [blame] | 123 | cJSON.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 124 | clib_error.h |
125 | clib.h | ||||
126 | cpu.h | ||||
127 | crc32.h | ||||
128 | dlist.h | ||||
129 | dlmalloc.h | ||||
130 | elf_clib.h | ||||
131 | elf.h | ||||
132 | elog.h | ||||
133 | error_bootstrap.h | ||||
134 | error.h | ||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 135 | fifo.h |
136 | file.h | ||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 137 | format.h |
Nathan Skrzypczak | 0e65840 | 2021-09-17 11:51:46 +0200 | [diff] [blame] | 138 | format_table.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 139 | graph.h |
140 | hash.h | ||||
141 | heap.h | ||||
Damjan Marion | 9410053 | 2020-11-06 23:25:57 +0100 | [diff] [blame] | 142 | interrupt.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 143 | lb_hash_hash.h |
Florin Coras | b957d80 | 2019-07-09 19:02:33 -0700 | [diff] [blame] | 144 | llist.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 145 | lock.h |
146 | longjmp.h | ||||
147 | macros.h | ||||
148 | maplog.h | ||||
149 | math.h | ||||
Damjan Marion | 856d062 | 2021-04-21 21:11:35 +0200 | [diff] [blame] | 150 | memcpy.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 151 | memcpy_avx2.h |
152 | memcpy_avx512.h | ||||
153 | memcpy_sse3.h | ||||
154 | mem.h | ||||
155 | mhash.h | ||||
Gary Boon | a9ed6f7 | 2019-07-22 10:57:56 -0400 | [diff] [blame] | 156 | mpcap.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 157 | os.h |
Dave Barach | 3ae2873 | 2018-11-16 17:19:00 -0500 | [diff] [blame] | 158 | pcap.h |
159 | pcap_funcs.h | ||||
Damjan Marion | 68b4da6 | 2018-09-30 18:26:20 +0200 | [diff] [blame] | 160 | pmalloc.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 161 | pool.h |
162 | ptclosure.h | ||||
163 | random_buffer.h | ||||
164 | random.h | ||||
165 | random_isaac.h | ||||
Florin Coras | 672d5fc | 2019-04-15 17:28:51 -0700 | [diff] [blame] | 166 | rbtree.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 167 | serialize.h |
Damjan Marion | cf18ca9 | 2019-04-13 00:13:34 +0200 | [diff] [blame] | 168 | sha2.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 169 | smp.h |
170 | socket.h | ||||
171 | sparse_vec.h | ||||
172 | string.h | ||||
173 | time.h | ||||
174 | time_range.h | ||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 175 | timing_wheel.h |
Yu Sun | 6f5b72e | 2020-04-16 13:56:12 -0400 | [diff] [blame] | 176 | tw_timer_2t_2w_512sl.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 177 | tw_timer_16t_1w_2048sl.h |
178 | tw_timer_16t_2w_512sl.h | ||||
179 | tw_timer_1t_3w_1024sl_ov.h | ||||
180 | tw_timer_2t_1w_2048sl.h | ||||
181 | tw_timer_4t_3w_256sl.h | ||||
182 | tw_timer_template.c | ||||
183 | tw_timer_template.h | ||||
184 | types.h | ||||
Sirshak Das | 2f6d7bb | 2018-10-03 22:53:51 +0000 | [diff] [blame] | 185 | atomics.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 186 | unix.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 187 | valloc.h |
188 | vec_bootstrap.h | ||||
189 | vec.h | ||||
190 | vector_altivec.h | ||||
191 | vector_avx2.h | ||||
192 | vector_avx512.h | ||||
Damjan Marion | d154a17 | 2021-07-13 21:12:41 +0200 | [diff] [blame] | 193 | vector/mask_compare.h |
194 | vector/compress.h | ||||
Mohsin Kazmi | 0ec7dad | 2021-07-15 10:34:36 +0000 | [diff] [blame] | 195 | vector/array_mask.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 196 | vector.h |
197 | vector_neon.h | ||||
198 | vector_sse42.h | ||||
Benoît Ganne | be7dbbb | 2020-04-24 14:37:10 +0200 | [diff] [blame] | 199 | warnings.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 200 | xxhash.h |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 201 | linux/sysfs.h |
202 | ) | ||||
203 | |||||
Damjan Marion | 4dffd1c | 2018-09-03 12:30:36 +0200 | [diff] [blame] | 204 | if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") |
205 | list(APPEND VPPINFRA_SRCS | ||||
206 | elf_clib.c | ||||
207 | linux/mem.c | ||||
208 | linux/sysfs.c | ||||
Nathan Skrzypczak | 4cef6de | 2021-07-19 18:21:43 +0200 | [diff] [blame] | 209 | linux/netns.c |
Damjan Marion | 4dffd1c | 2018-09-03 12:30:36 +0200 | [diff] [blame] | 210 | ) |
211 | endif() | ||||
212 | |||||
Nathan Moos | 67d7acd | 2021-01-15 15:50:59 -0800 | [diff] [blame] | 213 | option(VPP_USE_EXTERNAL_LIBEXECINFO "Use external libexecinfo (useful for non-glibc targets)." OFF) |
214 | if(VPP_USE_EXTERNAL_LIBEXECINFO) | ||||
215 | set(EXECINFO_LIB execinfo) | ||||
216 | endif() | ||||
Damjan Marion | 4553c95 | 2018-08-26 11:04:40 +0200 | [diff] [blame] | 217 | add_vpp_library(vppinfra |
218 | SOURCES ${VPPINFRA_SRCS} | ||||
Nathan Moos | 67d7acd | 2021-01-15 15:50:59 -0800 | [diff] [blame] | 219 | LINK_LIBRARIES m ${EXECINFO_LIB} |
Damjan Marion | 4553c95 | 2018-08-26 11:04:40 +0200 | [diff] [blame] | 220 | INSTALL_HEADERS ${VPPINFRA_HEADERS} |
Damjan Marion | 43b0606 | 2018-08-29 22:20:45 +0200 | [diff] [blame] | 221 | COMPONENT libvppinfra |
Damjan Marion | af7892c | 2020-10-22 14:23:47 +0200 | [diff] [blame] | 222 | LTO |
Damjan Marion | 4553c95 | 2018-08-26 11:04:40 +0200 | [diff] [blame] | 223 | ) |
224 | |||||
225 | ############################################################################## | ||||
226 | # vppinfra headers | ||||
227 | ############################################################################## | ||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 228 | option(VPP_BUILD_VPPINFRA_TESTS "Build vppinfra tests." OFF) |
229 | if(VPP_BUILD_VPPINFRA_TESTS) | ||||
Damjan Marion | 4553c95 | 2018-08-26 11:04:40 +0200 | [diff] [blame] | 230 | foreach(test |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 231 | bihash_vec88 |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 232 | dlist |
233 | elf | ||||
234 | elog | ||||
235 | fifo | ||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 236 | format |
237 | fpool | ||||
238 | hash | ||||
239 | heap | ||||
240 | longjmp | ||||
241 | macros | ||||
242 | maplog | ||||
Damjan Marion | 68b4da6 | 2018-09-30 18:26:20 +0200 | [diff] [blame] | 243 | pmalloc |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 244 | pool_iterate |
245 | ptclosure | ||||
246 | random | ||||
247 | random_isaac | ||||
jaszha03 | 25ab6cf | 2019-07-01 17:20:52 -0500 | [diff] [blame] | 248 | rwlock |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 249 | serialize |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 250 | socket |
jaszha03 | 9a4e631 | 2019-06-19 14:07:05 -0500 | [diff] [blame] | 251 | spinlock |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 252 | time |
253 | time_range | ||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 254 | tw_timer |
255 | valloc | ||||
256 | vec | ||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 257 | ) |
Damjan Marion | 4553c95 | 2018-08-26 11:04:40 +0200 | [diff] [blame] | 258 | add_vpp_executable(test_${test} |
259 | SOURCES test_${test}.c | ||||
Florin Coras | 4f94464 | 2019-08-01 10:54:06 -0700 | [diff] [blame] | 260 | LINK_LIBRARIES vppinfra pthread |
Damjan Marion | 4553c95 | 2018-08-26 11:04:40 +0200 | [diff] [blame] | 261 | ) |
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 262 | endforeach() |
263 | |||||
Dave Barach | 053d093 | 2020-04-22 10:02:31 -0400 | [diff] [blame] | 264 | foreach(test bihash_template) |
Damjan Marion | 4553c95 | 2018-08-26 11:04:40 +0200 | [diff] [blame] | 265 | add_vpp_executable(test_${test} |
266 | SOURCES test_${test}.c | ||||
267 | LINK_LIBRARIES vppinfra Threads::Threads | ||||
268 | ) | ||||
269 | endforeach() | ||||
Damjan Marion | e3e3555 | 2021-05-06 17:34:49 +0200 | [diff] [blame] | 270 | |
271 | set(test_files | ||||
Damjan Marion | d154a17 | 2021-07-13 21:12:41 +0200 | [diff] [blame] | 272 | vector/test/compress.c |
273 | vector/test/mask_compare.c | ||||
Mohsin Kazmi | 0ec7dad | 2021-07-15 10:34:36 +0000 | [diff] [blame] | 274 | vector/test/array_mask.c |
Damjan Marion | e3e3555 | 2021-05-06 17:34:49 +0200 | [diff] [blame] | 275 | ) |
276 | |||||
277 | add_vpp_executable(test_vector_funcs | ||||
278 | SOURCES | ||||
Damjan Marion | d154a17 | 2021-07-13 21:12:41 +0200 | [diff] [blame] | 279 | vector/test/test.c |
Damjan Marion | e3e3555 | 2021-05-06 17:34:49 +0200 | [diff] [blame] | 280 | ${test_files} |
281 | LINK_LIBRARIES vppinfra | ||||
282 | ) | ||||
283 | |||||
284 | vpp_library_set_multiarch_sources(test_vector_funcs | ||||
285 | SOURCES | ||||
286 | ${test_files} | ||||
287 | ) | ||||
288 | |||||
Damjan Marion | 612dd6a | 2018-07-30 12:45:07 +0200 | [diff] [blame] | 289 | endif(VPP_BUILD_VPPINFRA_TESTS) |