#使用指南和注意事项
#在源文件中创建build目录
#进入build中,cmake ..
# 需要注意驱动源码的名字要和和应用程序的源码名字的前边是一致的
# 每次请修改PRO为你所需要编译的文件的名字:例如需要miscbeep.ko 和miscbeepAPP 就将PRO设置为 “miscbeep”
# make后使用 命令make cp 复制 .ko 和APP 到开发板挂在的文件系统中
# 需要把交叉编译器的地址改为自己交叉编译器的地址
# 需要把内核路径修改为自己的路径
cmake_minimum_required(VERSION 3.0.0)
project(APP)
# 需要注意驱动源码的名字要和和应用程序的源码名字的前边是一致的
# 每次请修改PRO为你所需要编译的文件的名字:例如需要miscbeep.ko 和miscbeepAPP 就将PRO设置为 “miscbeep”
# make后使用 命令make cp 复制 .ko 和APP 到开发板挂在的文件系统中
# 需要把交叉编译器的地址改为自己交叉编译器的地址
# 需要把内核路径修改为自己的路径
set(PRO miscbeep)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_C_COMPILER /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc) #交叉编译器绝对地址
set(CMAKE_CXX_COMPILER /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++)
###---------------------------------------------------------------------------###
file(GLOB SRC_LIST ${CMAKE_CURRENT_SOURCE_DIR}/${PRO}APP.c)
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR})
add_executable(${PRO}APP ${SRC_LIST})
###---------------------------------------------------------------------------###
set(KERNEL_DIR /home/ljl/alientek/linux/nxp_linux/linux-imx-rel_imx_4.1.15_2.1.0_ga/) #内核路径
function(compile_module obj)
set(TARGET_NAME ${obj})
add_custom_target(
${TARGET_NAME} ALL COMMAND echo "compling module ${obj}.ko "
)
add_custom_command(TARGET ${TARGET_NAME}
COMMAND make -C ${KERNEL_DIR} M=${CMAKE_CURRENT_SOURCE_DIR}/build modules
)
endfunction()
compile_module(${PRO})
add_custom_target(
cp
COMMAND sudo cp ${CMAKE_CURRENT_SOURCE_DIR}/*.ko /home/ljl/alientek/linux/nfs/buildrootfs/lib/modules/4.1.15/
COMMAND sudo cp ${CMAKE_CURRENT_SOURCE_DIR}/*APP /home/ljl/alientek/linux/nfs/buildrootfs/lib/modules/4.1.15/
)