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