Я обновляю свою машину сборки до Windows 10 (ранее Windows Server 2008), и моя сборка использует Jenkins для запуска cmake, который строится с использованием Visual Studio (msbuild). Он работал на старом компьютере с использованием Visual Studio 2012. Однако на новом компьютере с использованием Visual Studio 2019 (только инструменты сборки, без IDE) он не работает:
CMake Error at CMakeLists.txt:3 (project):
Failed to run MSBuild command:
C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/MSBuild/Current/Bin/MSBuild.exe
to get the value of VCTargetsPath:
Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.
Build started 17/06/2020 16:58:51.
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Microsoft\VC\v160\Microsoft.Cpp.ToolsetLocation.props(52,3): warning MSB4011: "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Microsoft\VC\v160\Microsoft.Cpp.props" cannot be imported again. It was already imported at "E:\JenkinsMIDEBLD\workspace\btaylor-new_build_node_CYC-268_2\CyclopsInstall\build\polyphemus_build_tmp\CMakeFiles\3.15.4\VCTargetsPath.vcxproj (24,2)". This is most likely a build authoring error. This subsequent import will be ignored.
Project "E:\JenkinsMIDEBLD\workspace\btaylor-new_build_node_CYC-268_2\CyclopsInstall\build\polyphemus_build_tmp\CMakeFiles\3.15.4\VCTargetsPath.vcxproj" on node 1 (default targets).
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(777,5): error : The OutputPath property is not set for project 'VCTargetsPath.vcxproj'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Debug' Platform='x64'. You may be seeing this message because you are trying to build a project without a solution file, and have specified a non-default Configuration or Platform that doesn't exist for this project. [E:\JenkinsMIDEBLD\workspace\btaylor-new_build_node_CYC-268_2\CyclopsInstall\build\polyphemus_build_tmp\CMakeFiles\3.15.4\VCTargetsPath.vcxproj]
Ошибка говорит о том, что комбинация конфигурации и платформа (Debug | x64) могут быть неправильными, но похоже, что они должны быть правильными, потому что это единственная комбинация, присутствующая в файле vcxproj. Это даже не мои настройки сборки, создающие VCTargetsPath.vcxproj, который, кажется, является вспомогательной сборкой, добавленной Visual Studio 2019, потому что кажется, что это так - его нет в моей сборке VS 2012. Если я изменю свою конфигурацию на Debug | x64, это не даст никакого эффекта.
Команда cmake, выполняющая вызов, выглядит так:
set RELEASE_TYPE=Release
%CMAKE_ROOT%\bin\cmake.exe ^
%POLYPHEMUS_SOURCE% ^
-DCMAKE_BUILD_TYPE=%RELEASE_TYPE% ^
-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE ^
-DCMAKE_INSTALL_PREFIX=%INSTALL_PREFIX%/polyphemus ^
-DBOOST_ROOT=%BOOST_ROOT% ^
-DBoost_USE_STATIC_LIBS=ON ^
-DNANOMSG_INCLUDE_PATH=%NANOMSG_ROOT%/build/include/nanomsg ^
-DNANOMSG_LIB=%NANOMSG_ROOT%/build/lib/nanomsg.lib ^
-DFLATBUFFERS_INCLUDE_PATH=%FLATBUFFERS_ROOT%/include ^
-DFLATBUFFERS_SOURCE_PATH=%FLATBUFFERS_ROOT%/src 2>&1 || goto BUILDFAIL
Я пробовал разные вещи (-A x64, настройку Debug configuration, установка компонентов UWP Visual Studio), но пока ничего не работает. Глядя в Интернет, у меня складывается впечатление, что эта проблема возникает только с Visual Studio 2019, поэтому, возможно, я смогу исправить ее, понизив версию, но я бы предпочел использовать самую последнюю версию, если это возможно. мысли?