【问题标题】:Is it possible to build cmake projects directly using MSBuildTools是否可以直接使用 MSBuildTools 构建 cmake 项目
【发布时间】:2018-04-27 14:01:00
【问题描述】:

目前我们计划在一个 cmake 项目中使用 VS2017。在 Visual Studio 中,这非常有魅力。

现在想要在运行 MSBuildTools 的专用构建主机上运行我们的构建作为 CI 的一部分。

是否可以使用 msbuild 命令直接运行构建,而无需使用 cmake 创建解决方案文件?最理想的情况是,我什至会使用 VS2017 中使用的 CMakeSettings.json。

【问题讨论】:

  • 这个问题有什么更新吗?你解决了这个问题吗?如果没有,请告诉我有关此问题的最新信息吗?
  • @LeoLiu-MSFT 不幸的是我还没有解决我的问题。但我试图在团队博客上填写我的问题。

标签: cmake msbuild visual-studio-2017


【解决方案1】:

为此使用CMakebuild-tool-mode。它使用底层默认构建工具 MSBuild 用于 Visual Studio 生成器。 从构建目录调用:

cmake --build . --target ALL_BUILD --config Release -- /nologo /verbosity:minimal /maxcpucount 

你会得到一个快速、几乎安静的构建。要安装使用INSTALL 目标,如果配置使用RUN_TESTS 目标来运行测试。

【讨论】:

  • 感谢您的提示,我知道这一点。我感兴趣的是,是否甚至可以使用VS2017中使用的CMakeSettings.json?
  • 我不知道有这样的功能。
  • 非常有用的命令,谢谢。
【解决方案2】:

是否可以直接使用 msbuild 命令运行构建,而无需使用 cmake 创建解决方案文件?

是否可以直接使用 msbuild 命令运行构建,而无需使用 cmake 创建解决方案文件?

据我所知,CMake 可以无缝生成 Visual Studio 项目和解决方案。所以你可以产生项目/解决方案。

唯一棘手的部分是记住在 cmake 文件中进行任何更改,而不是在 Visual Studio 中进行。

特别是,每个 CMake 项目都将创建一个 Visual Studio 解决方案(.sln 文件),而属于该 CMake 项目的所有 CMake 目标都将在相应解决方案中显示为 Visual Studio 项目。

CMake       Visual Studio

project <-> Solution (.sln)
Target  <-> Project (.vcxproj)

您可以查看cmake-and-visual-studio了解更多详情。

由于MSbuild可以同时构建解决方案文件和项目文件,所以你也可以调用msbuild INSTALL.vcxproj

甚至可以使用VS2017中使用的CMakeSettings.json吗?

答案是肯定的,详情请查看the blog

如果您的 CMake 项目需要其他设置来配置 CMake 缓存正确,您可以通过创建一个 与根目录在同一文件夹中的 CMakeSettings.json 文件 CMakeLists.txt。在此文件中,您可以指定尽可能多的 CMake 根据需要进行配置 - 您将能够在它们之间切换 随时。

您可以通过选择项目来创建 CMakeSettings.json 文件 > Edit Settings > path-to-CMakeLists (configuration-name) 菜单项。

【讨论】:

    猜你喜欢
    • 2012-10-25
    • 1970-01-01
    • 2013-08-23
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多