1. 环境
- 安装cmake
- 安装ninja
关于ninja的理解可以查看这一篇:用cmake来编译iar工程--Apple的学习笔记 - 简书 (jianshu.com)
2. 创建 CMakeLists
- IAR官方提供了一个Demo
- 根据官网提供的Demo适配生成我的CMakeLists.txt以及ewarm.cmake
- 其中CMakeLists.txt中用到的函数包括:
- add_executable
- add_definitions设置编译宏
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Om")设置编译选项,这里的示例为设置优化等级
- set(CMAKE_ICF_FILE path/m52363b.icf)设置链接文件
- aux_source_directory(./APP/Src SRC_LIST)添加源文件,将源文件赋值给SRC_LIST
- include_directories(./BSW/Os/inc)添加头文件
- target_sources(tutorial PRIVATE ${SRC_LIST})
- target_compile_options设置编译选项
- target_link_options设置链接(link)选项
- ewarm.cmake:
- 设置编译器
- set(CMAKE_ASM_COMPILER "path/iasmarm.exe")
set(CMAKE_C_COMPILER "path/iccarm.exe")
set(CMAKE_CXX_COMPILER "path/iccarm.exe")- 设置Ninha
- if(CMAKE_GENERATOR MATCHES "^Ninja.*$")
find_program(CMAKE_MAKE_PROGRAM
NAMES ninja.exe
PATHS $ENV{PATH}
"C:/tools/ninja-winarm64"
REQUIRED)
endif()
3. 编译指令
mkdir build
cd build
cmake .. -G Ninja --toolchain ../ewarm.cmake -DCMAKE_BUILD_TYPE=Debug
cmake --build . --config Debug