cmake-gui 的每个项目包装脚本是使每个项目的源代码和构建目录成为本地目录而不是全局目录的正确方法吗?

Is a per project wrapper script for cmake-gui the right way to make the source and build directories local per project instead of global?

提问人:TheBeardyMan 提问时间:11/16/2023 更新时间:11/16/2023 访问量:14

问:

我正在从 Windows 源代码构建两个密切相关的项目,它们都配置了 CMake。

当我将 CMake 用于两个项目时,我得到的行为是 cmake-gui 的源代码和构建目录是全局的。首先,我在目录 A 中运行 cmake-gui 来配置项目 A,并将源目录和构建目录设置为项目 A 的目录。然后,当我在目录 B 中运行 cmake-gui 来配置项目 B 时,cmake-gui 会记住项目 A 的源代码和构建目录,我必须手动将它们更改为项目 B 的正确目录。当我回到目录 A 对项目 A 进行更改时,cmake-gui 会记住项目 B 的源代码和构建目录,我必须再次手动将它们更改回项目 A 的正确目录。

这不是我想要的行为。当我在目录 A 中运行项目 A 时,我希望 cmake-gui 记住项目 A 的源代码和构建目录,当我在目录 B 中运行时记住项目 B 的源代码和构建目录。我可以通过将 cmake-gui 包装在脚本中来获得该行为,该脚本使用 -S 和 -B 命令行选项设置源代码和构建目录。在本例中,每个项目的源目录和构建目录相对于其项目目录具有相同的路径,因此我可以对这两个项目使用相同的脚本:

@ECHO OFF
start "" cmake-gui -S . -B .\build

这通过了“它有效吗?”测试 - 我得到了我想要的行为 - 但CMake并不是我非常熟悉的工具,我怀疑可能有更好的方法被我忽略了。

每个项目的包装脚本真的是正确的方法吗?

视窗 CMake

评论


答: 暂无答案