123456789101112131415161718192021222324252627282930313233343536373839404142 |
- set(TARGET_NAME "virtualcam")
- # 设置内核源代码路径
- execute_process(
- COMMAND uname -r
- OUTPUT_VARIABLE KERNEL_VERSION
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- message(STATUS "Current kernel version: ${KERNEL_VERSION}")
- set(KERNEL_DIR /usr/src/linux-headers-${KERNEL_VERSION})
- message(STATUS "KERNEL_DIR: ${KERNEL_DIR}")
- # 定义编译函数/方法,驱动编译过程主要在这个函数进行
- function(compile_module obj)
- #set(TARGET_NAME ${obj})
- # 添加目标,obj即为模块名称
- add_custom_target(${TARGET_NAME} ALL cp -f ${CMAKE_CURRENT_SOURCE_DIR}/*.c ${CMAKE_CURRENT_BINARY_DIR}/
- COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/*.h ${CMAKE_CURRENT_BINARY_DIR}/
- COMMAND echo "compiling module ${obj}.ko..."
- )
- # 设置依赖
- set(depend_objlist "v4l2loopback.o")
-
- # 设置编译命令
- add_custom_command(TARGET ${TARGET_NAME}
- POST_BUILD
- COMMAND echo "obj-m := ${obj}.o" > ${CMAKE_CURRENT_BINARY_DIR}/Makefile
- COMMAND echo "${obj}-objs:=${depend_objlist}" >>${CMAKE_CURRENT_BINARY_DIR}/Makefile
- COMMAND make -C ${KERNEL_DIR} M=${CMAKE_CURRENT_BINARY_DIR} modules
- )
- endfunction()
- # 调用编译函数
- compile_module(virtualcam)
- message(STATUS "TARGET_NAME: ${TARGET_NAME}")
- message(STATUS "CMAKE_CURRENT_BINARY_DIR: ${CMAKE_CURRENT_BINARY_DIR}")
- #install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_NAME}.ko
- # DESTINATION "${RVC_RUNTIME_PATH}")
|