mumble-voip/mumble-releng

libogg now requires Windows 8 SDK

Closed this issue · 9 comments

I just updated to after the libogg update in 4e05eff, and the build fails with

Project "C:\MumbleBuild\win64-static-no-ltcg-1.3.x-2017-04-14-ae22412-856.build\libogg-1.3.2\win32\VS2010\libogg_static.sln" (1) is building "C:\MumbleBuild\win64-static-no-ltcg-1.3.x-2017-04-14-ae22412-856.build\libogg-1.3.2\win32\VS2010\libogg_static.vcxproj" (2) on node 1 (default targets).
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\x64\PlatformToolsets\v140\Toolset.targets(36,5): error
 MSB8036: The Windows SDK version 8.1 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution". [C:\MumbleBuild\win64-static-no-ltcg-1.3.x-2017-04-14-ae22412-856.build\libogg-1.3.2\win32\VS2010\libogg_static.vcxproj]

I am on Windows 10, so I have the Windows 10 SDK installed, and the Windows 7 SDK for Overlay x86 XP support (which we require).

I didn't see this because the builders and my own machine both have old(er) Windows 8 SDKs...

I tried some stuff out, but couldn't figure out how to make it use the Windows 10 SDK.

When I revert the change from 4e05eff (changed --host on ./configure), it fails with error

checking for non-GNU ld... no
configure: error: no acceptable ld found in $PATH

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.WindowsSDK.props

defines the Windows 8 SDK as a fallback DefaultWindowsSDKVersion, but SDKVersion to 10.0 later. So I don't really see why it wouldn't (be able to) use the installed Windows 10 SDK.

No MSDN library article on the error MSB8036. Didn't find specific info on specifying the SDK version (without Visual Studio GUI).

My Windows SDK switcher displays the 8 SDK, even tho it is not installed. I had uninstalled it, but still had a Windows 8 SDK directory, which I removed manually (before I uninstalled all of them and all VS).

Setting the SDK in the project with VS 2017 sets the property

<Project …>
<PropertyGroup Label="Globals">
    <WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion>
# Set Windows SDK Version to prevent use of version 8 when it is not installed
sed -i -e "s,<Keyword>Win32Proj</Keyword>,<Keyword>Win32Proj</Keyword>\n    <WindowsTargetPlatformVersion>${WindowsSDKVersion}</WindowsTargetPlatformVersion>,g" libogg_static.vcxproj

I think my installation is broken. It seems my setting is set to use the Windows 8 SDK that no longer exists, but I can't change it with the "Windows SDK Configuration Tool" because that requires an old VS installed.

Although that probably wouldn't even fix it, as I'm using the CLI tools. Dog knows where it chooses the 8 SDK.

Fuck all these Windows installer shits. 😠

I installed the 8.1 SDK, but it still won't find it.
Also, it does not show up in the list of installed applications.

/e: I actually found it (it seems they removed the old program with the Win10 creators update. The new one is not very good UI wise, wasting space…).

Not sure if this is because of an utterly broken system now. Guess I'm gonna be using my last buildenv for a while again.

A test on a clean(er) system should answer that…

I'll close this as "out-of-date" for now. If the problem persists, we can open it again.