- CMakePresets.json 文件:
- 配置构建执行工具(ninja):"generator": "Ninja"
- 说明交叉编译使用的工具(文件):"toolchainFile": "${sourceDir}/cmake/arm-none-eabi.cmake",
{
"version": 6,
"cmakeMinimumRequired": {
"major": 3,
"minor": 20,
"patch": 0
},
"configurePresets": [
{
"name": "debug",
"displayName": "STM32F103C8 Debug",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/debug",
"toolchainFile": "${sourceDir}/cmake/arm-none-eabi.cmake",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_MAKE_PROGRAM": "${sourceDir}/ninja/ninja.exe"
}
},
{
"name": "release",
"displayName": "STM32F103C8 Release", //显示的构建名称
"inherits": "debug", //继承上面debug的信息,这里相同的配置项会覆盖上面内容
"binaryDir": "${sourceDir}/build/release", //构建生成的文件的存放路径
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release"
}
}
],
"buildPresets": [ //真正用于执行构建的。
{
"name": "debug", //构建时cmake --preset debug
"configurePreset": "debug" //使用configurePreset的debug配置
},
{
"name": "release",//构建时cmake --preset release
"configurePreset": "release"
}
]
}
cmake构建的时候使用这个文件,意思是构建的时候,使用debug的方式
cmake --preset debug
cmake --build --preset debug
VS Code CMake Tools因为配置了:
.vscode/settings.json
{
"cmake.sourceDirectory": "${workspaceFolder}/002-arm-demo",
"cmake.useCMakePresets": "always", //cmake插件就会识别到 CMakePresets.json中的buildPresets项
"cmake.configureOnOpen": true
}