Files
pico-rng/driver/CMakeLists.txt
2021-02-14 12:49:55 -06:00

49 lines
1.5 KiB
CMake

cmake_minimum_required(VERSION 3.13)
project(pico_rng_driver LANGUAGES C)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)
# Find kernel headers
execute_process(
COMMAND uname -r
OUTPUT_VARIABLE KERNEL_RELEASE
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# Find the headers
find_path(KERNELHEADERS_DIR
include/linux/user.h
PATHS /usr/src/linux-headers-${KERNEL_RELEASE}
)
message(STATUS "Kernel release: ${KERNEL_RELEASE}")
message(STATUS "Kernel headers: ${KERNELHEADERS_DIR}")
if (KERNELHEADERS_DIR)
set(KERNELHEADERS_INCLUDE_DIRS
${KERNELHEADERS_DIR}/include
${KERNELHEADERS_DIR}/arch/x86/include
CACHE PATH "Kernel headers include dirs"
)
set(KERNELHEADERS_FOUND 1 CACHE STRING "Set to 1 if kernel headers were found")
else (KERNELHEADERS_DIR)
set(KERNELHEADERS_FOUND 0 CACHE STRING "Set to 1 if kernel headers were found")
endif (KERNELHEADERS_DIR)
mark_as_advanced(KERNELHEADERS_FOUND)
include_directories(${KERNELHEADERS_INCLUDE_DIRS})
set(DRIVER_FILE pico_rng.ko)
set(KBUILD_CMD $(MAKE) -C ${KERNELHEADERS_DIR} modules M=${CMAKE_CURRENT_BINARY_DIR} src=${CMAKE_CURRENT_SOURCE_DIR})
#FILE(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/Kbuild "obj-m := pico_rng.o")
add_custom_command(OUTPUT ${DRIVER_FILE}
COMMAND ${KBUILD_CMD}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
DEPENDS pico_rng.c VERBATIM)
add_custom_target(pico_rng_driver ALL DEPENDS ${DRIVER_FILE})