用incredibuild运行CMake安装目标
我想用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
本回复来自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员工
为我的作品的解决方案是第一次运行的MSBuild的解决方案,然后在单独的Install.vcxproj。尽管这与IncrediBuild完全无关,但我只使用普通的MSBuild。我想可以在解决方案上使用IncrediBuild,然后在安装项目上使用MSBuild。
实际上,在我的情况下(没有IncrediBuild),只需在Install.vcxproj上运行MSBuild就足够了,它会检测依赖项并在安装项目之前构建其他项目。
是的,我最终还是用incredibuild做了同样的事情。我想知道为什么MSBuild不能像构建安装项目所做的一切的VS UI一样。 – CanardMoussant
zlib中的错误?你提交了补丁还是提供了补丁? – usr1234567
我不相信这是一个合适的解决方案,因为CMAKE不支持使用INSTALL设置为已选择的解决方案来生成解决方案,并且我们必须经常重新生成CMAKE,而这正在构建服务器上进行。构建服务器的重点在很大程度上会丢失,当有人必须去手动登录并重新检查每次cmake重新生成时的复选框 –