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