`-H`选项对CMake意味着什么?

时间:2015-06-27 16:18:20

标签: cmake

This answer以前关于CMake的问题显示了这个命令行:

cmake -H. -Bbuild -G "MSYS Makefiles"

-H.选项在这里执行什么任务? cmake --help-H打印帮助...

我正在使用CMake 3.2.3。

2 个答案:

答案 0 :(得分:40)

如链接答案中所述,它是一个未记录的选项,但查看源代码可以看出它的效果:

cmake::SetArgs()中:

<div class="center">
  <!-- container -->
  <h1 class="center">Headline</h1>

  <div class="center">Some text</div>

  <form class="center">
    <button>Button</button>
  </form>
</div>

最后一次调用if(arg.find("-H",0) == 0) { directoriesSet = true; std::string path = arg.substr(2); path = cmSystemTools::CollapseFullPath(path); cmSystemTools::ConvertToUnixSlashes(path); this->SetHomeDirectory(path); 实际上设置了项目的源目录。 SetHomeDirectory选项(也未记录)依次设置二进制目录。

如果未设置这些选项,则二进制目录将是执行cmake的当前文件夹,并且源目录可以作为位置参数给出(如果未找到,则源文件夹也将是当前工作目录)

答案 1 :(得分:3)

The Hitchhiker’s Guide to the CMake解释了CMake 3.13选项中的旧版和新版:

  • -H

      

    此内部选项未记录,但被社区广泛使用。

      

    在3.13中已用-S的正式源目录标志替换。

  • -B

      

    从CMake 3.13开始,-B是官方支持的标志,   可以正确处理空格,并且可以独立于-S或-H选项使用。