Visual Studio Code CMake Tools 1.24
内容提要
CMake Tools 1.24 更新:支持在编辑器中直接运行和调试 CTest 测试;缓存编辑可保存为用户预设覆盖,不修改共享预设;创建或删除源文件时自动更新 CMakeLists.txt。另含多项可靠性修复。
延伸解读
从编辑器直接运行与调试 CTest 的便利性
CMake Tools 1.24 为已解析源位置的 CTest 测试添加了 Run 和 Debug CodeLens 操作。点击 Run 可直接构建并执行测试,无需切换到 Testing 视图;当测试命令映射到 CMake 可执行目标时,Run 会构建该目标及其依赖,而非默认构建目标,从而避免构建无关目标。Debug 则需先构建可执行文件,并依赖合适的 C++ 调试器和调试适配器,且从 Project Outline 或 Testing 视图调试测试无需 launch.json。
本地缓存修改如何避免污染共享预设
当配置预设中的值可能覆盖手动缓存编辑时,Cache Editor 现在将针对预设支持变量的编辑保存为 CMakeUserPresets.json 中的覆盖项。配置后打开 CMake: Edit CMake Cache (UI),Source 列会显示预设信息及 Matches preset 或 Changed in cache 状态。例如将 BUILD_TESTING 从 ON 改为 OFF 并保存,CMake Tools 会写入继承该预设的用户预设覆盖,共享的 CMakePresets.json 保持不变,同一会
自动维护 CMakeLists.txt 源文件列表的适用边界
在资源管理器中创建或删除源文件时,CMake Tools 可自动更新 CMakeLists.txt 中的对应条目。该功能适用于受支持的 CMakeLists.txt 和目标结构,并遵循配置的确认行为,相关设置由 cmake.modifyLists.* 控制目标选择、变量处理和确认。需要注意的是,它并非通用的 CMake 脚本重写器,对于生成或复杂的脚本,仍应仔细检查自动修改的结果。
Q&A
CMake Tools 1.24 有哪些主要新功能?
CMake Tools 1.24 的主要新功能包括:支持在编辑器中直接运行和调试 CTest 测试;缓存编辑可保存为用户预设覆盖,不修改共享预设;创建或删除源文件时自动更新 CMakeLists.txt。此外还包含多项可靠性修复。
如何在 VS Code 编辑器中直接运行和调试 CTest 测试?
对于已发现且解析了源位置的 CTest 测试,编辑器中会出现 Run 和 Debug 的 CodeLens 操作。点击 Run 可构建并执行测试,无需切换到 Testing 视图;点击 Debug 可直接启动可执行文件进行调试,无需构建步骤。
CMake Tools 1.24 如何在不修改共享预设的情况下保存本地缓存更改?
在 Cache Editor 中编辑由预设支持的变量时,保存的更改会作为覆盖写入 CMakeUserPresets.json,而不是修改共享的 CMakePresets.json。这样本地更改得以保留,同时不影响团队共享预设。
创建或删除源文件时,CMake Tools 能自动更新 CMakeLists.txt 吗?
可以。当你在资源管理器中创建或删除源文件时,CMake Tools 可以自动更新 CMakeLists.txt 中的对应条目。该功能适用于支持的 CMakeLists.txt 和目标结构,并遵循你配置的确认行为。
从编辑器运行测试时,CMake Tools 会构建哪些目标?
当测试命令直接映射到 CMake 可执行目标时,Run 操作会构建该目标及其依赖项,而不是默认构建目标。例如,运行 Cart.AppliesDiscount 测试会构建 cart_tests 目标,而不会重新构建无关的 shipping_tests 目标。
调试 CTest 测试需要 launch.json 吗?
不需要。从 Project Outline 或 Testing 视图调试测试时,不需要 launch.json。但需要先构建可执行文件,并确保有合适的 C++ 调试器和调试适配器可用。