cmake完成生成文件后如何自动制作

时间:2019-02-10 14:12:35

标签: c++ macos makefile cmake automation

我目前正在尝试在Mac上为使用Cmake和Visual Studio代码的C ++“ Hello World Project”设置“自动构建过程”。

我当前要在终端中构建或使用vscode的task.json构建的工作流如下,我发现它们要做起来很繁琐。

  1. cmake ...(在构建文件夹中生成cmake和make文件)
  2. make(在build文件夹中以创建应用程序的可执行文件)
  3. ./ {应用程序的可执行文件}

因此,我已经研究了以下内容

  1. 与代码的预启动任务
  2. cmake的add_custom_commands
  3. 自定义bash脚本
  4. python脚本

但是我对上面的尝试有点迷惑,需要一些帮助。我的最终目标是通过在vscode中按F5或在终端中调用自定义./{command}来自动构建和运行更新的代码。

2 个答案:

答案 0 :(得分:0)

您可以运行

cmake --build

首次配置构建后。可选参数包括构建目录和构建目标。

答案 1 :(得分:0)

结合每个人的建议,我采取的方法是创建一个包含以下命令流的task.json

  • cmd1:cmake将生成文件和cmake文件生成到构建文件夹
  • cmd2:使-j 8与多个内核一起构建
  • cmd1 && cmd2

然后,我在launch.json中进行了两次不同的启动。它们之间的主要区别是启动前的任务。其中一个是“ cmd1 && cmd2”,而另一个只有“ cmd2”。这样,我可以选择两个快捷键,例如F5和F7。如果没有添加或删除文件夹结构和文件,我将按F7键,它仅调用“ cmd2”预启动任务,否则按F5键。

我认为更好的方法是编写bash脚本或在cmakelist.txt中进行更深入的挖掘,我相信它具有“ if语句”来确定何时应单独执行“ cmd1 && cmd2”或仅执行“ cmd2”。这样,我不需要两个热键来构建/调试并在vscode中运行(不知道是否有可能,我还没有尝试过。)

如果有人这样做,请在下面发表评论或创建新答案。

谢谢大家!