microsoft / MixedReality-SpectatorView

Mixed reality spectator experiences
MIT License
194 stars 114 forks source link

Build Error: liblzma:x86-uwp failed with: BUILD_FAILED #368

Closed kogen00 closed 4 years ago

kogen00 commented 4 years ago

Hei Folks,

I've been trying to build the Dlls for two days now and I always end up with this build error. I've tried it on two PCs one with the Azure and Blackmagic plugins and one without them. The result is always the same, it is not successful building the package.

I believe it might have something to do with OpenCV but I have absolutely no idea how to fix this issue.

Any help on this would be appreciated.

I've also attached the log from the latest (failed) session, maybe that helps:

`Enabling symbolic links for the repository. Configuring the repository to use crlf line endings. Updating spectator view related submodules. Synchronizing submodule url for '../../external/Azure-Spatial-Anchors-Samples' Synchronizing submodule url for '../../external/MixedRealityToolkit-Unity' Synchronizing submodule url for '../../external/gamecapture' Synchronizing submodule url for '../../external/vcpkg' Fixing symbolic links for the following directory: D:\Professional\Unevis\MixedReality-SpectatorView-master\tools\Scripts....\src\SpectatorView.Unity\ Fixing symbolic links for the following directory: D:\Professional\Unevis\MixedReality-SpectatorView-master\tools\Scripts....\samples\Build2019Demo.Unity\ Directory: D:\Professional\Unevis\MixedReality-SpectatorView-master\external\MixedReality-QRCodePlugin Mode LastWriteTime Length Name


d----- 05-May-20 8:00 PM UnityFiles

Directory: D:\Professional\Unevis\MixedReality-SpectatorView-master\external\MixedReality-QRCodePlugin\UnityFiles\M
icrosoft.MixedReality.QR.0.5.2100

Mode LastWriteTime Length Name


d----- 05-May-20 8:00 PM Unity

Directory: D:\Professional\Unevis\MixedReality-SpectatorView-master\external\MixedReality-QRCodePlugin\UnityFiles\M
icrosoft.MixedReality.QR.0.5.2100\lib

Mode LastWriteTime Length Name


d----- 05-May-20 8:00 PM net46

Directory: D:\Professional\Unevis\MixedReality-SpectatorView-master\external\MixedReality-QRCodePlugin\UnityFiles\M
icrosoft.VCRTForwarders.140.1.0.5

Mode LastWriteTime Length Name


d----- 05-May-20 8:00 PM Unity WARNING: Blackmagic decklink resources weren't found at D:\Professional\Unevis\MixedReality-SpectatorView-master\tools\ci\scripts......\external\Blackmagic DeckLink SDK 10.9.11, Blackmagic decklink filming won't be included in the build. WARNING: Azure Kinect SDK wasn't found at C:\Program Files\Azure Kinect SDK v1.3.0, Azure Kinect filming won't be included in the build. WARNING: Azure Kinect Body Tracking SDK wasn't found at C:\Program Files\Azure Kinect Body Tracking SDK 1.0.0, Azure Kinect Body Tracking filming won't be included in the build.

Setting up external dependencies Succeeded: True

Setting up elgato dependencies Adding submodule:https://github.com/elgatosf/gamecapture.git at external\gamecapture From https://github.com/elgatosf/gamecapture

Adding elgato dependencies succeeded: True

Building OpenCV Updaing vcpkg submodule to master branch From https://github.com/microsoft/vcpkg

Building vcpkg.exe ...

pch.cpp archives.cpp checks.cpp chrono.cpp cofffilereader.cpp downloads.cpp enums.cpp files.cpp hash.cpp json.cpp machinetype.cpp parse.cpp strings.cpp stringview.cpp system.cpp system.print.cpp system.process.cpp unicode.cpp binarycaching.cpp binaryparagraph.cpp build.cpp cmakevars.cpp commands.autocomplete.cpp commands.buildexternal.cpp commands.cache.cpp commands.ci.cpp commands.contact.cpp commands.cpp commands.create.cpp commands.dependinfo.cpp commands.edit.cpp commands.env.cpp commands.exportifw.cpp commands.import.cpp commands.integrate.cpp commands.list.cpp commands.owns.cpp commands.porthistory.cpp commands.portsdiff.cpp commands.search.cpp commands.setinstalled.cpp commands.upgrade.cpp commands.version.cpp commands.xvsinstances.cpp dependencies.cpp export.cpp export.chocolatey.cpp export.prefab.cpp globalstate.cpp help.cpp input.cpp install.cpp logicexpression.cpp metrics.cpp packagespec.cpp paragraphparseresult.cpp paragraphs.cpp portfileprovider.cpp postbuildlint.buildtype.cpp postbuildlint.cpp remove.cpp sourceparagraph.cpp statusparagraph.cpp statusparagraphs.cpp tools.cpp triplet.cpp update.cpp userconfig.cpp vcpkgcmdarguments.cpp vcpkglib.cpp vcpkgpaths.cpp versiont.cpp visualstudio.cpp vcpkglib.vcxproj -> D:\Professional\Unevis\MixedReality-SpectatorView-master\external\vcpkg\toolsrc\msbuild.x86.relea se\vcpkglib.lib vcpkg.cpp Generating code Previous IPDB not found, fall back to full compilation. All 17571 functions were compiled because no usable IPDB/IOBJ from previous compilation was found. Finished generating code vcpkg.vcxproj -> D:\Professional\Unevis\MixedReality-SpectatorView-master\external\vcpkg\toolsrc\msbuild.x86.release\ vcpkg.exe vcpkgmetricsuploader.cpp Generating code Previous IPDB not found, fall back to full compilation. All 6749 functions were compiled because no usable IPDB/IOBJ from previous compilation was found. Finished generating code vcpkgmetricsuploader.vcxproj -> D:\Professional\Unevis\MixedReality-SpectatorView-master\external\vcpkg\toolsrc\msbui ld.x86.release\vcpkgmetricsuploader.exe

Building vcpkg.exe... done.

Telemetry

vcpkg collects usage data in order to help us improve your experience. The data collected by Microsoft is anonymous. You can opt-out of telemetry by re-running bootstrap-vcpkg.bat with -disableMetrics. Read more about vcpkg telemetry at docs/about/privacy.md

Setting vcpkg installs to be available to MSBuild Applied user-wide integration for this vcpkg root.

All MSBuild C++ projects can now #include any installed libraries. Linking will be handled automatically. Installing new libraries will make them instantly available.

CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=D:/Professional/Unevis/MixedReality-SpectatorView-master/external/vcpkg/scripts/buildsystems/vcpkg.cmake" Updating vcpkg Using local portfile versions. To update the local portfiles, use git pull. No packages need updating. Upgrading vcpkg A suitable version of cmake was not found (required v3.14.0). Downloading portable cmake v3.14.0... Downloading cmake... https://github.com/Kitware/CMake/releases/download/v3.14.0/cmake-3.14.0-win32-x86.zip -> D:\Professional\Unevis\MixedReality-SpectatorView-master\external\vcpkg\downloads\cmake-3.14.0-win32-x86.zip Extracting cmake... A suitable version of 7zip was not found (required v18.1.0). Downloading portable 7zip v18.1.0... Downloading 7zip... https://www.nuget.org/api/v2/package/7-Zip.CommandLine/18.1.0 -> D:\Professional\Unevis\MixedReality-SpectatorView-master\external\vcpkg\downloads\7-zip.commandline.18.1.0.nupkg Extracting 7zip... All installed packages are up-to-date with the local portfiles. Building OpenCV dependencies Computing installation plan... The following packages will be built and installed: protobuf[core]:x86-windows A suitable version of powershell-core was not found (required v6.2.1). Downloading portable powershell-core v6.2.1... Downloading powershell-core... https://github.com/PowerShell/PowerShell/releases/download/v6.2.1/PowerShell-6.2.1-win-x86.zip -> D:\Professional\Unevis\MixedReality-SpectatorView-master\external\vcpkg\downloads\PowerShell-6.2.1-win-x86.zip Extracting powershell-core... Starting package 1/1: protobuf:x86-windows Building package protobuf[core]:x86-windows... -- Downloading https://github.com/protocolbuffers/protobuf/archive/v3.11.4.tar.gz... -- Extracting source D:/Professional/Unevis/MixedReality-SpectatorView-master/external/vcpkg/downloads/protocolbuffers-protobuf-v3.11.4.tar.gz -- Applying patch fix-uwp.patch -- Using source at D:/Professional/Unevis/MixedReality-SpectatorView-master/external/vcpkg/buildtrees/protobuf/src/v3.11.4-b810bdabfd -- Configuring x86-windows -- Building x86-windows-dbg -- Building x86-windows-rel -- Installing: D:/Professional/Unevis/MixedReality-SpectatorView-master/external/vcpkg/packages/protobuf_x86-windows/tools/protobuf/protoc.exe -- Installing: D:/Professional/Unevis/MixedReality-SpectatorView-master/external/vcpkg/packages/protobuf_x86-windows/share/protobuf/copyright -- Performing post-build validation -- Performing post-build validation done Building package protobuf[core]:x86-windows... done Installing package protobuf[core]:x86-windows... Installing package protobuf[core]:x86-windows... done Elapsed time for package protobuf:x86-windows: 3.058 min

Total elapsed time: 3.464 min

The package protobuf:x86-windows provides CMake targets:

find_package(protobuf CONFIG REQUIRED)
target_link_libraries(main PRIVATE protobuf::libprotoc protobuf::libprotobuf protobuf::libprotobuf-lite)

Building OpenCV x86 UWP Computing installation plan... Warning: qualifier has changed meaning recently: windows The following packages will be built and installed:

Call Stack (most recent call first): scripts/cmake/vcpkg_configure_cmake.cmake:297 (vcpkg_execute_required_process) ports/liblzma/portfile.cmake:13 (vcpkg_configure_cmake) scripts/ports.cmake:90 (include)

Error: Building package liblzma:x86-uwp failed with: BUILD_FAILED Please ensure you're using the latest portfiles with .\vcpkg update, then submit an issue at https://github.com/Microsoft/vcpkg/issues including: Package: liblzma:x86-uwp Vcpkg version: 2020.02.04-nohash

Additionally, attach any relevant sections from the log files above. Building OpenCV x64 Windows Computing installation plan... The following packages will be built and installed:

Total elapsed time: 29.43 min

OpenCV Build Completed: x86 Dependencies Succeeded: True x86 UWP OpenCV Succeeded: False x64 Desktop OpenCV Succeeded: True

OpenCV Build Succeeded: False

Native Project Setup Suceeded: False

SpectatorView.Native Build Results: Setup Succeeded: False x86 Build Succeeded: False x64 Build Succeeded: False ARM Build Succeeded: False Copy Native Plugins Succeeded: False Included Compositor Components: Blackmagic Decklink: False Elgato: True Azure Kinect SDK: False Azure Kinect Body Tracking SDK: False

Build Succeeded: False

Creating package com.microsoft.mixedreality.spectatorview.0.0.1`

chrisfromwork commented 4 years ago

Yeah this looks like its an issue with installing opencv for x86 uwp using vcpkg. Our native project build script doesn't kick off if opencv fails. We could change the native build to still kick off if setup fails here: https://github.com/microsoft/MixedReality-SpectatorView/blob/e816d072b8406010fc7a86764acdc7ac2f15f3fc/tools/ci/scripts/buildNativeProjectLocal.ps1#L47

WARNING: Blackmagic decklink resources weren't found at D:\Professional\Unevis\MixedReality-SpectatorView-master\tools\ci\scripts......\external\Blackmagic DeckLink SDK 10.9.11, Blackmagic decklink filming won't be included in the build. WARNING: Azure Kinect SDK wasn't found at C:\Program Files\Azure Kinect SDK v1.3.0, Azure Kinect filming won't be included in the build. WARNING: Azure Kinect Body Tracking SDK wasn't found at C:\Program Files\Azure Kinect Body Tracking SDK 1.0.0, Azure Kinect Body Tracking filming won't be included in the build.

None of the above dependencies are needed unless you are trying to specifically use them for video camera filming. Was this run on the PC that doesn't have them installed?

In regards to the opencv failure, x86 opencv dlls are only used by HoloLens 1 marker detection experiences. If you are building for HoloLens 2, this shouldn't be necessary, but you may need to manually create and copy the dlls you care about to the src\SpectatorView.Unity\Assets\SpectatorView.Native folder. Our best bet for troubleshooting this issue will be filing an additional issues against vcpkg owners. I will kick off a native build locally to see if I can repro the issue you are seeing.

chrisfromwork commented 4 years ago

It looks like if I just run vcpkg install liblzma[core]:x86-uwp on its own in my local setup things succeed:

E:\chrisfromwork\MixedReality-SpectatorView\external\vcpkg>vcpkg install liblzma[core]:x86-uwp Computing installation plan... The following packages will be built and installed: liblzma[core]:x86-uwp Starting package 1/1: liblzma:x86-uwp Building package liblzma[core]:x86-uwp... -- Using community triplet x86-uwp. This triplet configuration is not guaranteed to succeed. -- [COMMUNITY] Loading triplet configuration from: E:\chrisfromwork\MixedReality-SpectatorView\external\vcpkg\triplets\community\x86-uwp.cmake -- Using cached E:/chrisfromwork/MixedReality-SpectatorView/external/vcpkg/downloads/xz-mirror-xz-v5.2.4.tar.gz -- Using source at E:/chrisfromwork/MixedReality-SpectatorView/external/vcpkg/buildtrees/liblzma/src/v5.2.4-66bfe33102 -- Configuring x86-uwp -- Building x86-uwp-dbg -- Building x86-uwp-rel -- Installing: E:/chrisfromwork/MixedReality-SpectatorView/external/vcpkg/packages/liblzma_x86-uwp/share/liblzma/copyright -- Performing post-build validation -- Performing post-build validation done Building package liblzma[core]:x86-uwp... done Installing package liblzma[core]:x86-uwp... Installing package liblzma[core]:x86-uwp... done Elapsed time for package liblzma:x86-uwp: 1.471 min

Total elapsed time: 1.472 min

The package liblzma:x86-uwp provides CMake targets:

find_package(LibLZMA CONFIG REQUIRED) target_link_libraries(main PRIVATE LibLZMA::LibLZMA)

What commit are you using for the vcpkg submodule (you can view this by cd'ing into the vcpkg submodule directory and running git log)? I used d4a415b7fa3f0d0ea14a789d5778abfc666ef2d0 for todays build

kogen00 commented 4 years ago

Hei Chris,

thanks for your reply and for looking into the problem. I've also found out that this worked when I used the long way: Downloading everything separately and compiling the libraries piece by piece. I also stumbled accross different other errors like that the libs like elgato AND blackmagic have to be present, but this error is gone now. Thanks.