2016-01-05 73 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