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