Closed Bug 1014633 Opened 10 years ago Closed 10 years ago

MozillaBuild uses Windows SDK 8.0 included with MSVC2012 even if 8.1 is installed

Categories

(Firefox Build System :: MozillaBuild, task)

x86
Windows 8.1
task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: RyanVM, Assigned: RyanVM)

References

Details

Attachments

(1 file)

I have MSVC 2012, which installs the Win 8.0 SDK. I also manually installed the Win 8.1 SDK. Both live in their respective directories within C:\Program Files (x86)\Windows Kits.

When I start MozillaBuild, it says that it's using the Win 8.1 SDK. I have ac_add_options --enable-winsdk-directx set in my .mozconfig. Per the mach log below, it appears that the build system finds the 8.0 SDK first and defaults to d3dcompiler_46.dll even though d3dcompiler_47.dll is also available.

[1400773297.069, "build_output", {"line": "Found D3D compiler in Windows SDK 8.0."}]
[1400773297.069, "build_output", {"line": "Found MOZ_D3DCOMPILER_VISTA_DLL_PATH: C:\\Program Files (x86)\\Windows Kits\\8.0\\/Redist/D3D/x64/d3dcompiler_46.dll"}]
[1400773297.212, "build_output", {"line": "ERROR: Invalid key name."}]
[1400773297.213, "build_output", {"line": "Type \"REG QUERY /?\" for usage."}]
[1400773297.239, "build_output", {"line": "DirectX SDK not found."}]
[1400773297.24, "build_output", {"line": "Couldn't find an acceptable DirectX SDK for ANGLE, needed for d3dcompiler_43."}]
[1400773297.24, "build_output", {"line": "  Either ignore, install DirectX SDK (June 2010 version or newer), or reconfigure with --disable-webgl."}]
[1400773297.241, "build_output", {"line": "Found d3dcompiler DLL for Vista+: d3dcompiler_46.dll"}]

Maybe I'm doing something wrong here, but it seems like it should be preferring the 8.1 SDK if available and falling back onto 8.0 otherwise?
When I start a MozillaBuild console, I see:
Windows SDK directory: C:\Program Files (x86)\Windows Kits\8.1\
Windows SDK version: 8.1

Yet according to config.status, MOZ_WINSDK_MAXVER is set to 0x06020000, which doesn't make sense. Still investigating, but it looks like there's a build system issue of some sort here.
Component: Canvas: WebGL → Build Config
Summary: Build defaults to d3dcompiler_46.dll even if Win 8.1 SDK is installed → Build system detecting Windows SDK 8.0 even though 8.1 is installed
Though the next line is relevant here too:
Using VC 2012 built-in SDK
...which is of course exactly what MozillaBuild is designed to do.
Component: Build Config → MozillaBuild
Product: Core → mozilla.org
Version: unspecified → other
In the start-shell-msvc2010 batch files, we have logic to explicitly override the included MSVC PSDK with 8.0 if found. We should have similar logic in start-shell-msvc2012 for 8.1.
Assignee: nobody → ryanvm
Summary: Build system detecting Windows SDK 8.0 even though 8.1 is installed → MozillaBuild uses Windows SDK 8.0 included with MSVC2012 even if 8.1 is installed
Attached patch patchSplinter Review
This copies the logic from the msvc2010 bat file over to the msvc 2012 bat file. It also cleans up some duplicated logic and gives more consistent output from the various start files. I've confirmed locally that at least the 2012 start files work correctly.
Attachment #8428198 - Flags: review?(ted)
Attachment #8428198 - Flags: review?(ted) → review+
http://hg.mozilla.org/mozilla-build/rev/efb71fed5c28
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Product: mozilla.org → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: