xref: /aosp_15_r20/external/bcc/cmake/FindLibBpf.cmake (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1# - Try to find libbpf
2# Once done this will define
3#
4#  LIBBPF_FOUND            - system has libbpf
5#  LIBBPF_INCLUDE_DIR      - the libbpf include directory
6#  LIBBPF_STATIC_LIBRARIES - the libbpf source directory
7#  LIBBPF_LIBRARIES        - link these to use libbpf
8
9#if (LIBBPF_LIBRARIES AND LIBBPF_INCLUDE_DIR AND LIBBPF_STATIC_LIBRARIES)
10#  set (LibBpf_FIND_QUIETLY TRUE)
11#endif (LIBBPF_LIBRARIES AND LIBBPF_INCLUDE_DIR AND LIBBPF_STATIC_LIBRARIES)
12
13# You'll need following packages to be installed (Fedora names):
14# libbpf
15# libbpf-static
16# libbpf-devel
17
18find_path (LIBBPF_INCLUDE_DIR
19  NAMES
20    bpf/bpf.h
21    bpf/btf.h
22    bpf/libbpf.h
23
24  PATHS
25    /usr/include
26    /usr/local/include
27    /opt/local/include
28    /sw/include
29    ENV CPATH)
30
31find_library (LIBBPF_LIBRARIES
32  NAMES
33    bpf
34  PATHS
35    /usr/lib
36    /usr/local/lib
37    /opt/local/lib
38    /sw/lib
39    ENV LIBRARY_PATH
40    ENV LD_LIBRARY_PATH)
41if(LIBBPF_LIBRARIES)
42list(APPEND PATHS LIBBPF_LIBRARIES)
43endif()
44
45find_library (LIBBPF_STATIC_LIBRARIES
46  NAMES
47    libbpf.a
48  PATHS
49    /usr/lib
50    /usr/local/lib
51    /opt/local/lib
52    /sw/lib
53    ENV LIBRARY_PATH
54    ENV LD_LIBRARY_PATH)
55if(LIBBPF_STATIC_LIBRARIES)
56list(APPEND PATHS LIBBPF_STATIC_LIBRARIES)
57endif()
58
59if(LIBBPF_STATIC_LIBRARIES OR LIBBPF_LIBRARIES)
60include (FindPackageHandleStandardArgs)
61
62# handle the QUIETLY and REQUIRED arguments and set LIBBPF_FOUND to TRUE if all listed variables are TRUE
63FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibBpf "Please install the libbpf development package"
64  ${PATHS}
65  LIBBPF_INCLUDE_DIR)
66
67mark_as_advanced(LIBBPF_INCLUDE_DIR ${PATHS})
68else()
69message(Please install the libbpf development package)
70endif()
71