如何在托管的VS2017构建管道中使用“忍者”生成器?

时间:2018-09-16 10:35:54

标签: cmake azure-devops azure-pipelines azure-pipelines-build-task

我试图为基于CMake的项目建立Azure DevOps构建管道(托管VS2017)。由于Visual Studio 2017默认情况下使用Ninja生成器,因此我认为现成的Hosted VS2017池中提供了该生成器。添加以下命令时:

CMake -GNinja ..

构建失败,并显示以下错误诊断信息:

[command]C:\Program Files\CMake\bin\cmake.exe -GNinja ..
CMake Error: CMake was unable to find a build program corresponding to "Ninja".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!

似乎CMake无法发现忍者生成器。不过,我不确定这是怎么回事。我需要安装扩展程序(如果是的话,安装哪一个)?我是否缺少配置步骤?

最终的问题是:如何使用Ninja生成器为基于CMake的项目设置Azure DevOps构建管道?

1 个答案:

答案 0 :(得分:0)

似乎在您的$PATH中找不到Ninja,您可能需要安装Ninja并设置$PATH系统变量...

但是目前还没有这样的Ninja Tool Installer,您可以尝试编写自己的扩展名...请参阅此线程:No CMake or Ninja Tool Installer,以获取更多信息。

对于托管代理,它们由Microsoft管理。通常,我们无法完全控制它们来设置功能...因此,建议您尝试deploying a private (self-hosted) agent,然后安装Ninja并重试。

下面的线程供您参考: