COMPONENT vpp-dev
)
+add_definitions(-fvisibility=hidden)
+
+# Ensure symbols from cJSON are exported
+set_source_files_properties( cJSON.c PROPERTIES
+ COMPILE_DEFINITIONS " CJSON_API_VISIBILITY " )
+
+
##############################################################################
# vppinfra sources
##############################################################################
graph.c
hash.c
heap.c
+ interrupt.c
longjmp.S
macros.c
maplog.c
+ mem.c
+ mem_bulk.c
mem_dlmalloc.c
mhash.c
mpcap.c
valloc.c
vec.c
vector.c
+ cJSON.c
)
set(VPPINFRA_HEADERS
sanitizer.h
bihash_16_8.h
bihash_24_8.h
+ bihash_32_8.h
bihash_40_8.h
bihash_48_8.h
bihash_8_8.h
+ bihash_8_16.h
+ bihash_24_16.h
bihash_template.c
bihash_template.h
bihash_vec8_8.h
byte_order.h
cache.h
callback.h
+ callback_data.h
+ cJSON.h
clib_error.h
clib.h
cpu.h
graph.h
hash.h
heap.h
+ interrupt.h
lb_hash_hash.h
llist.h
lock.h
memcpy_sse3.h
mem.h
mhash.h
- mheap.h
mpcap.h
os.h
pcap.h
pcap_funcs.h
pmalloc.h
pool.h
- pmc.h
ptclosure.h
random_buffer.h
random.h
vector.h
vector_neon.h
vector_sse42.h
+ warnings.h
xxhash.h
linux/syscall.h
linux/sysfs.h
)
endif()
+option(VPP_USE_EXTERNAL_LIBEXECINFO "Use external libexecinfo (useful for non-glibc targets)." OFF)
+if(VPP_USE_EXTERNAL_LIBEXECINFO)
+ set(EXECINFO_LIB execinfo)
+endif()
add_vpp_library(vppinfra
SOURCES ${VPPINFRA_SRCS}
- LINK_LIBRARIES m
+ LINK_LIBRARIES m ${EXECINFO_LIB}
INSTALL_HEADERS ${VPPINFRA_HEADERS}
COMPONENT libvppinfra
+ LTO
)
##############################################################################