CMake总结

2017-04-21  本文已影响278人  腩啵兔子

CMakeLists.txt

cmake_minimum_required (VERSION 2.8) cmake最低版本为2.8

project (Demo1) 项目的名称是Demo1

add_executable(Demo main.cc) 将main.cc的文件编译名成Demo的可执行文件

aux_source_directory(. DIR_SRCS) 将当前目录下的可执行文件放入变量DIR_SRCS中

add_executable(Demo ${DIR_SRCS}) 将DIR_SRCS中的文件编译名为Demo的可执行文件

add_subdirectory(math) 指明本项目包含一个子目录 math,这样 math 目录下的 CMakeLists.txt 文件和源代码也会被处理

target_link_libraries(Demo MathFunctions) 指明可执行文件 main 需要连接一个名为 MathFunctions 的链接库

add_library (MathFunctions ${DIR_LIB_SRCS}) 将DIR_LIB_SRCS中的文件编译成静态文件

include_directories ("${PROJECT_SOURCE_DIR}/math") 添加头文件的搜索路径,相当于指定gcc的-I参数

add_custom_command(
    TARGET armc-010 POST_BUILD
    COMMAND ${CMAKE_OBJCOPY} ./armc-010${CMAKE_EXECUTABLE_SUFFIX} -O binary ./kernel.img
    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
    COMMENT "Convert the ELF output file to a binary image" )

为一个目标(比如一个库文件或者可执行文件)加一条自定义命令。这种格式可以用于目标构建前或构建后的一些操作。这条命令会成为目标的一部分,并且只有目标被构建时才会执行。如果目标已经构建了,该目标将不会执行。如果指定了WORKING_DIRECTORY选项,这条命令会在给定的路径下执行。

内部变量

CMAKE_C_FLAGS: 编译C文件时的选项,如-g;也可以通过add_definitions添加编译选项
PROJECT_SOURCE_DIR: 项目顶层CMakeLists.txt所在路径, 也叫做CMAKE_SOURCE_DIR
PROJECT_BINARY_DIR: 执行cmake命令所在的路径,也叫做CMAKE_BINARY_DIR

DCMAKE_TOOLCHAIN_FILE

eg:

toolchain.cmake
CMakeLists.txt

上一篇下一篇

猜你喜欢

热点阅读