buildbot和cmake无法创建vs2010生成器

kin*_*u02 1 windows cmake buildbot

我使用buildbot安装了一个连续的集成平台,该项目使用cmake生成visual studio 2010解决方案.

出于测试目的,我使用我的windows dev vm for buildslave,cmake die出现了一个奇怪的错误

CMake错误:无法创建命名生成器"Visual Studio 10"

但如果我手工制作cmake,它的工作正常

cmake -G"Visual Studio 10"源代码

这个buildslave的配置:

factoryWin = BuildFactory()
factoryWin.addStep(SVN(svnurl=repo_url, mode='copy', username=svn_user, password=svn_passwd))
factoryWin.addStep(ShellCommand(command=['cmake', '-G"Visual Studio 10"', 'source']))


c['builders'].append(
BuilderConfig(name="runtests-win",
slavenames=["win-slave"],
factory=factoryWin)
Run Code Online (Sandbox Code Playgroud)

你有什么想法吗?

Vla*_*oub 6

确保你没有意外使用cygwin的cmake(如果你碰巧安装了cygwin)

这一个无法构建VS.


小智 5

对于我的情况,我不得不使用环境变量来解决这个问题.然后该命令变为:

factoryWin.addStep(ShellCommand(command=['cmake', '-G%CMAKEGENERATOR%', 'source'],
     env={"CMAKEGENERATOR": "\"Visual Studio 10\""}))
Run Code Online (Sandbox Code Playgroud)

我认为这可以阻止扭曲的runprocess来操纵字符串.在我的情况下,我还想设置Visual Studio命令环境,所以我的命令是:

factoryWin.addStep(ShellCommand(command=["c:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\VC\\bin\\vcvars32.bat", "x86",
     "&&", "cmake", "-G%CMAKEGENERATOR%", "..\\src"],
     env={"CMAKEGENERATOR": "\"Visual Studio 10\""}))
Run Code Online (Sandbox Code Playgroud)

显然我的构建目录和src目录之间的相对路径不同但结果是相同的,即cmake生成的Visual Studio解决方案.