build-cmake
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese构建 CMake 工程
Building CMake Projects
适用场景
Applicable Scenarios
- 中标明
Project Profile。build_system: cmake - 用户希望对 CMake MCU 工程执行配置、重编译或确认固件产物。
- 烧录或调试流程需要新的 、
ELF或HEX。BIN - 需要在构建前确认环境是否就绪(cmake、生成器、工具链)。
- indicates
Project Profile.build_system: cmake - Users want to configure, recompile, or confirm firmware artifacts for CMake MCU projects.
- The flashing or debugging process requires new ,
ELF, orHEXfiles.BIN - Need to confirm if the environment is ready before building (cmake, generator, toolchain).
必要输入
Required Inputs
- 工作区路径,或一份已有的 。
Project Profile - 可选的构建预设、构建目录、目标名、生成器、构建类型和工具链文件。
- Workspace path, or an existing .
Project Profile - Optional build presets, build directory, target name, generator, build type, and toolchain file.
自动探测
Automatic Detection
- 若存在 ,优先使用脚本的
CMakePresets.json列出并选择预设。--list-presets - 否则检查 、已有构建目录和工具链文件。
CMakeLists.txt - 若已有成功的构建目录且与当前意图一致,优先复用。
- 生成器由脚本自动探测,优先 ,其次是宿主机上已安装的 Make 工具。
Ninja - 对调试导向请求默认使用 ,否则默认使用
Debug。RelWithDebInfo
- If exists, prioritize using the script's
CMakePresets.jsonto list and select presets.--list-presets - Otherwise, check , existing build directories, and toolchain files.
CMakeLists.txt - If there is an existing successful build directory that matches the current intent, reuse it first.
- The generator is automatically detected by the script, prioritizing , followed by the Make tool installed on the host machine.
Ninja - For debugging-oriented requests, is used by default; otherwise,
Debugis the default.RelWithDebInfo
执行步骤
Execution Steps
- 先阅读 references/usage.md,确认本次是环境探测、列出预设、执行构建,还是仅扫描产物。
- 若不确定环境是否就绪,先运行自带脚本 scripts/cmake_builder.py 的 模式确认。
--detect - 若存在 CMakePresets.json,使用 列出预设,再用
--list-presets构建。--preset <name> - 若无预设,使用 、
--source、--build-dir、--generator、--build-type手动配置构建。--toolchain - 读取脚本输出的构建结果和产物扫描报告,重点关注首选产物(ELF > HEX > BIN)和失败分类。
- 将构建目录、产物路径、产物类型和生成器信息写回 ,并在需要时交给下游 skill。
Project Profile
- First read references/usage.md to confirm whether this is environment detection, listing presets, executing a build, or just scanning artifacts.
- If unsure whether the environment is ready, first run the built-in script scripts/cmake_builder.py in mode to confirm.
--detect - If CMakePresets.json exists, use to list presets, then use
--list-presetsto build.--preset <name> - If no presets exist, manually configure the build using ,
--source,--build-dir,--generator,--build-type.--toolchain - Read the build results and artifact scan report output by the script, focusing on the preferred artifacts (ELF > HEX > BIN) and failure categories.
- Write the build directory, artifact path, artifact type, and generator information back to , and pass it to downstream skills when needed.
Project Profile
失败分流
Failure Diversion
- 当缺少 或所需生成器时,返回
cmake。environment-missing - 当配置或构建因预设损坏、缺失工具链文件或目标名无效而失败时,返回 。
project-config-error - 当构建看似成功但未找到可烧录或可调试产物时,返回 。
artifact-missing - 当存在多个同样合理的预设或固件目标,且任意选择都不安全时,返回 。
ambiguous-context
- When or the required generator is missing, return
cmake.environment-missing - When configuration or build fails due to corrupted presets, missing toolchain files, or invalid target names, return .
project-config-error - When the build appears successful but no flashable or debuggable artifacts are found, return .
artifact-missing - When there are multiple equally reasonable presets or firmware targets, and any selection is unsafe, return .
ambiguous-context
平台说明
Platform Notes
- 在 Windows 上,除非工作区明确要求特定 Visual Studio shell,否则优先 ,避免依赖特定开发者命令环境。
Ninja - 自带脚本使用 Python 标准库和 subprocess 调用 cmake,因此构建调度路径本身是跨平台的。
- 输出中的构建目录应保持为绝对路径,方便下游烧录和调试 skill 直接复用。
- On Windows, unless the workspace explicitly requires a specific Visual Studio shell, prioritize to avoid dependency on a specific developer command environment.
Ninja - The built-in script uses Python standard libraries and subprocess to call cmake, so the build scheduling path itself is cross-platform.
- The build directory in the output should remain an absolute path for direct reuse by downstream flashing and debugging skills.
输出约定
Output Conventions
- 输出配置命令、构建命令、构建目录、所选生成器和首选产物路径。
- 用 、
artifact_path和探测到的工具链细节更新artifact_kind。Project Profile - 成功后推荐 或
flash-openocd。debug-gdb-openocd
- Output configuration commands, build commands, build directory, selected generator, and preferred artifact path.
- Update with
Project Profile,artifact_path, and detected toolchain details.artifact_kind - After success, recommend or
flash-openocd.debug-gdb-openocd
交接关系
Handover Relationships
- 当下一步意图是给硬件烧录程序时,将成功构建结果交给 。
flash-openocd - 当下一步需要符号信息或调试会话时,将成功构建结果交给 。
debug-gdb-openocd
- When the next step is to flash the program to hardware, pass the successful build result to .
flash-openocd - When the next step requires symbol information or a debugging session, pass the successful build result to .
debug-gdb-openocd