diff options
author | Vladimir Kobal <vlad@prokk.net> | 2020-07-16 15:10:35 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-16 15:10:35 +0300 |
commit | 3e84239ff64ececa6bd54bbddbc9e3d22542dfa9 (patch) | |
tree | a86249faf962bec50715e925a432bb07efe3d102 /CMakeLists.txt | |
parent | 1b606bc1b2a16dfbcc8b5c7ed780906b482eef11 (diff) |
Use the libbpf library for the eBPF plugin (#9490)
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 30e222603a..427027e19f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -300,6 +300,30 @@ find_package(libmongoc-1.0) # ----------------------------------------------------------------------------- +# Detect libbpf +IF(LINUX AND EXISTS "${CMAKE_SOURCE_DIR}/externaldeps/libbpf/libbpf.a") + message(STATUS "libbpf library found") + pkg_check_modules(ELF REQUIRED libelf) + # later we use: + # ${ELF_LIBRARIES} + # ${ELF_CFLAGS_OTHER} + # ${ELF_INCLUDE_DIRS} + IF(ELF_LIBRARIES) + list(APPEND NETDATA_COMMON_CFLAGS ${ELF_CFLAGS_OTHER}) + list(INSERT NETDATA_COMMON_LIBRARIES 0 + ${CMAKE_SOURCE_DIR}/externaldeps/libbpf/libbpf.a + ${ELF_LIBRARIES}) + list(APPEND NETDATA_COMMON_INCLUDE_DIRS ${ELF_INCLUDE_DIRS}) + include_directories(BEFORE ${CMAKE_SOURCE_DIR}/externaldeps/libbpf/include) + set(ENABLE_PLUGIN_EBPF True) + ELSE(ELF_LIBRARIES) + set(ENABLE_PLUGIN_EBPF False) + message(STATUS "ebpf plugin: disabled (requires libelf)") + ENDIF(ELF_LIBRARIES) +ENDIF() + + +# ----------------------------------------------------------------------------- # netdata files set(LIBNETDATA_FILES @@ -315,8 +339,6 @@ set(LIBNETDATA_FILES libnetdata/clocks/clocks.h libnetdata/dictionary/dictionary.c libnetdata/dictionary/dictionary.h - libnetdata/ebpf/ebpf.c - libnetdata/ebpf/ebpf.h libnetdata/eval/eval.c libnetdata/eval/eval.h libnetdata/inlined.h @@ -357,6 +379,12 @@ set(LIBNETDATA_FILES libnetdata/circular_buffer/circular_buffer.c libnetdata/circular_buffer/circular_buffer.h) +IF(ENABLE_PLUGIN_EBPF) + list(APPEND LIBNETDATA_FILES + libnetdata/ebpf/ebpf.c + libnetdata/ebpf/ebpf.h) +ENDIF() + add_library(libnetdata OBJECT ${LIBNETDATA_FILES}) set(APPS_PLUGIN_FILES @@ -928,7 +956,6 @@ IF(LINUX) SET(ENABLE_PLUGIN_APPS True) SET(ENABLE_PLUGIN_PERF True) SET(ENABLE_PLUGIN_SLABINFO True) - SET(ENABLE_PLUGIN_EBPF True) ELSEIF(FREEBSD) add_executable(netdata config.h ${NETDATA_FILES} ${FREEBSD_PLUGIN_FILES}) |