Visual studio 2013 使用IncredBuild运行CMake安装目标

Visual studio 2013 使用IncredBuild运行CMake安装目标,visual-studio-2013,cmake,incredibuild,Visual Studio 2013,Cmake,Incredibuild,我正在尝试使用IncredBuild加速命令行中cmake项目的编译,使用Visual Studio 2013进行编译。 我可以使用以下命令编译和安装库: 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>-

我正在尝试使用IncredBuild加速命令行中cmake项目的编译,使用Visual Studio 2013进行编译。 我可以使用以下命令编译和安装库:

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

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


免责声明:作者是IncredBuild员工

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


免责声明:编写者是不可信的build员工

对我有效的解决方案是首先在解决方案上运行MSBuild,然后分别在Install.vcxproj上运行。但这与IncredBuild完全无关,我只使用普通的MSBuild。我假设可以在解决方案上使用IncredBuild,然后在安装项目上使用MSBuild


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

对我有效的解决方案是首先在解决方案上运行MSBuild,然后在Install.vcxproj上单独运行。但这与IncredBuild完全无关,我只使用普通的MSBuild。我假设可以在解决方案上使用IncredBuild,然后在安装项目上使用MSBuild


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

zlib中的Bug?您是否已提交或提供了修补程序?我不认为这是一个合适的修复程序,因为CMAKE不支持生成已将INSTALL设置为selected的解决方案,并且我们必须经常重新生成CMAKE,而这是在构建服务器上发生的。如果每次cmake在zlib中重新生成Bug时都需要有人手动登录并重新检查复选框,那么构建服务器的意义就大大丧失了?您是否已提交或提供了修补程序?我不认为这是一个合适的修复程序,因为CMAKE不支持生成已将INSTALL设置为selected的解决方案,并且我们必须经常重新生成CMAKE,而这是在构建服务器上发生的。当有人不得不去手动登录并在每次cmake重新生成时重新检查复选框时,构建服务器的意义基本上就消失了,因为我最终对incredibuild执行了相同的操作。我想知道为什么MSBuild与VS UI的功能不同,在VS UI中,生成安装项目可以完成所有工作。是的,我最终对IncredBuild执行了相同的操作。我想知道为什么MSBuild与VSUI的功能不同,在VSUI中构建安装项目可以完成所有工作。