xref: /aosp_15_r20/external/bcc/cmake/FindKernelHeaders.cmake (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1# Find the kernel headers for the running kernel release
2# This is used to find a "linux/version.h" matching the running kernel.
3
4execute_process(
5        COMMAND uname -r
6        OUTPUT_VARIABLE KERNEL_RELEASE
7        OUTPUT_STRIP_TRAILING_WHITESPACE
8)
9
10# Find the headers
11find_path(KERNELHEADERS_DIR
12        include/linux/user.h
13        PATHS
14        # RedHat derivatives
15        /usr/src/kernels/${KERNEL_RELEASE}
16        # Debian derivatives
17        /usr/src/linux-headers-${KERNEL_RELEASE}
18        )
19
20message(STATUS "Kernel release: ${KERNEL_RELEASE}")
21message(STATUS "Kernel headers: ${KERNELHEADERS_DIR}")
22
23if (KERNELHEADERS_DIR)
24    set(KERNELHEADERS_INCLUDE_DIRS
25            ${KERNELHEADERS_DIR}/include/generated/uapi
26            CACHE PATH "Kernel headers include dirs"
27            )
28    set(KERNELHEADERS_FOUND 1 CACHE STRING "Set to 1 if kernel headers were found")
29    include_directories(${KERNELHEADERS_INCLUDE_DIRS})
30else (KERNELHEADERS_DIR)
31    set(KERNELHEADERS_FOUND 0 CACHE STRING "Set to 1 if kernel headers were found")
32endif (KERNELHEADERS_DIR)
33
34mark_as_advanced(KERNELHEADERS_FOUND)
35
36