2016-01-05 100 views
1

我想用incredibuild加快编译cmake项目的命令行,用Visual Studio 2013编译。 我可以使用命令编译和安装库:用incredibuild运行CMake安装目标

BuildConsole zlib.sln /prj=INSTALL /cfg="Debug|x64" 

但会跳过安装部分:

Microsoft Visual Studio 2013 Version 12.0.40629.0. 
Copyright (C) Microsoft Corp. All rights reserved. 
1>------ Skipped Build: Project: INSTALL, Configuration: Debug x64 ------ 
1>Project not selected to build for this solution configuration 

但是,如果我从Visual Studio执行它,它工作正常:

Initializing... 

Microsoft Visual Studio 2013 Version 12.0.40629.0. 
Copyright (C) Microsoft Corp. All rights reserved. 
1>------ Build started: Project: INSTALL, Configuration: Debug x64 ------ 
1>Build started 1/6/2016 4:52:09 PM. 
1>PrepareForBuild: 
1> Creating directory "x64\Debug\INSTALL\INSTALL.tlog\". 
1>InitializeBuildStatus: 
1> Creating "x64\Debug\INSTALL\INSTALL.tlog\unsuccessfulbuild" because  "AlwaysCreate" was specified. 
1>PostBuildEvent: 
1> -- Install configuration: "Debug" 
1>-- Installing: C:/work/dev/workspace/thirdparty/tmp/install/zlib/lib/zlibd.lib 
1>-- Installing: C:/work/dev/workspace/thirdparty/tmp/install/zlib/bin/zlibd.dll 
1>-- Installing: C:/work/dev/workspace/thirdparty/tmp/install/zlib/lib/zlibstaticd.lib 
1>-- Installing:  C:/work/dev/workspace/thirdparty/tmp/install/zlib/include/zconf.h 
1>-- Installing: C:/work/dev/workspace/thirdparty/tmp/install/zlib/include/zlib.h 
1>-- Installing: C:/work/dev/workspace/thirdparty/tmp/install/zlib/share/man/man3/zlib.3 
1>-- Installing: C:/work/dev/workspace/thirdparty/tmp/install/zlib/share/pkgconfig/zlib.pc 
1> ... 
1> 
1>FinalizeBuildStatus: 
1> Deleting file "x64\Debug\INSTALL\INSTALL.tlog\unsuccessfulbuild". 
1> Touching "x64\Debug\INSTALL\INSTALL.tlog\INSTALL.lastbuildstate". 
1> 
1>Build succeeded. 
1> 
1>Time Elapsed 00:00:00.40 
========== Build: 1 succeeded, 0 failed, 6 up-to-date, 0 skipped ========== 

任何线索?

谢谢! Emmanuel

回答

0

本回复来自IncrediBuild团队: 我们在本实验室中下载并试用了与Microsoft Visual Studio 2013相同版本的zlib-1.2.8。 我们发现,默认情况下,在zlib中,使用cmake生成.sln和.vcxproj文件时,生成的INSTALL项目不包含在构建配置“Debug | x64”中。 当为“Debug | x64”构建生成的zlib.sln时,它不会构建INSTALL项目,不会通过VS IDE,也不会通过BuildConsole命令构建 - 这很好,因为该项目未包含在构建配置中。 将INSTALL项目标记为选中以构建“Debug | x64” 配置后,不会有问题被跳过并且项目构建正确。 要么选择为“Debug | x64”显式构建此项目,要么修复zlib cmake以包含要在“Debug | x64”中构建的项目来解决问题。

免责声明:本文作者是IncrediBuild员工

+0

zlib中的错误?你提交了补丁还是提供了补丁? – usr1234567

+0

我不相信这是一个合适的解决方案,因为CMAKE不支持使用INSTALL设置为已选择的解决方案来生成解决方案,并且我们必须经常重新生成CMAKE,而这正在构建服务器上进行。构建服务器的重点在很大程度上会丢失,当有人必须去手动登录并重新检查每次cmake重新生成时的复选框 –

0

为我的作品的解决方案是第一次运行的MSBuild的解决方案,然后在单独的Install.vcxproj。尽管这与IncrediBuild完全无关,但我只使用普通的MSBuild。我想可以在解决方案上使用IncrediBuild,然后在安装项目上使用MSBuild。

实际上,在我的情况下(没有IncrediBuild),只需在Install.vcxproj上运行MSBuild就足够了,它会检测依赖项并在安装项目之前构建其他项目。

+0

是的,我最终还是用incredibuild做了同样的事情。我想知道为什么MSBuild不能像构建安装项目所做的一切的VS UI一样。 – CanardMoussant