# HG changeset patch # User Tom Ritter # Date 1546982199 21600 # Node ID 763f90cc2fac67d6c5598df0fc3af3a335680382 # Parent 10f3b4731e9e145f58c3ecc91418f7b937fe04d2 Bug 1460620 - Have MinGW look for d3dcompiler_47.dll (so it will be packaged) r=froydnj diff --git a/old-configure.in b/old-configure.in --- a/old-configure.in +++ b/old-configure.in @@ -2158,22 +2158,27 @@ if test -n "$MOZ_ANGLE_RENDERER"; then AC_MSG_ERROR([Couldn't determine MOZ_D3D_CPU_SUFFIX.]) fi ###################################### # Find _46+ for use by Vista+. # Find a D3D compiler DLL in a Windows SDK. MOZ_D3DCOMPILER_VISTA_DLL= - case "$MOZ_WINSDK_MAXVER" in - 0x0603*|0x0A00*) + if test "$OS_ARCH" != "$HOST_OS_ARCH"; then MOZ_D3DCOMPILER_VISTA_DLL=d3dcompiler_47.dll - AC_MSG_RESULT([Found D3D compiler in Windows SDK.]) - ;; - esac + AC_MSG_RESULT([Assuming D3D compiler will be in fxc2.]) + else + case "$MOZ_WINSDK_MAXVER" in + 0x0603*|0x0A00*) + MOZ_D3DCOMPILER_VISTA_DLL=d3dcompiler_47.dll + AC_MSG_RESULT([Found D3D compiler in Windows SDK.]) + ;; + esac + fi if test -n "$MOZ_D3DCOMPILER_VISTA_DLL"; then # We have a name, now track down the path. if test -n "$WINDOWSSDKDIR"; then MOZ_D3DCOMPILER_VISTA_DLL_PATH="$WINDOWSSDKDIR/Redist/D3D/$MOZ_D3D_CPU_SUFFIX/$MOZ_D3DCOMPILER_VISTA_DLL" if test -f "$MOZ_D3DCOMPILER_VISTA_DLL_PATH"; then AC_MSG_RESULT([Found MOZ_D3DCOMPILER_VISTA_DLL_PATH: $MOZ_D3DCOMPILER_VISTA_DLL_PATH]) MOZ_HAS_WINSDK_WITH_D3D=1 @@ -2181,23 +2186,30 @@ if test -n "$MOZ_ANGLE_RENDERER"; then AC_MSG_RESULT([AArch64 Windows includes d3dcompiler DLLs]) MOZ_D3DCOMPILER_VISTA_DLL_PATH= else AC_MSG_RESULT([MOZ_D3DCOMPILER_VISTA_DLL_PATH doesn't exist: $MOZ_D3DCOMPILER_VISTA_DLL_PATH]) AC_MSG_ERROR([Windows SDK at "$WINDOWSSDKDIR" appears broken. Try updating to MozillaBuild 1.9 final or higher.]) MOZ_D3DCOMPILER_VISTA_DLL_PATH= fi else - AC_MSG_RESULT([Windows SDK not found.]) + MOZ_D3DCOMPILER_VISTA_DLL_PATH="$(dirname $FXC)/$MOZ_D3DCOMPILER_VISTA_DLL" + if test -f "$MOZ_D3DCOMPILER_VISTA_DLL_PATH"; then + AC_MSG_RESULT([Found MOZ_D3DCOMPILER_VISTA_DLL_PATH: $MOZ_D3DCOMPILER_VISTA_DLL_PATH]) + else + AC_MSG_RESULT([MOZ_D3DCOMPILER_VISTA_DLL_PATH doesn't exist: $MOZ_D3DCOMPILER_VISTA_DLL_PATH]) + AC_MSG_ERROR([fxc2 or "$MOZ_D3DCOMPILER_VISTA_DLL" seem to be missing from the expected location.]) + MOZ_D3DCOMPILER_VISTA_DLL_PATH= + fi fi else if test "$OS_ARCH" = "$HOST_OS_ARCH"; then AC_MSG_ERROR([Couldn't find Windows SDK 8.1 or higher needed for ANGLE.]) else - AC_MSG_RESULT([Windows SDK not needed for ANGLE in Linux MinGW build.]) + AC_MSG_ERROR([We should need "$MOZ_D3DCOMPILER_VISTA_DLL" for ANGLE in Linux MinGW build, but we didn't look for it.]) fi fi if test -z "$MOZ_D3DCOMPILER_VISTA_DLL_PATH"; then MOZ_D3DCOMPILER_VISTA_DLL= fi # On mingw, check if headers are provided by toolchain. @@ -2209,20 +2221,18 @@ if test -n "$MOZ_ANGLE_RENDERER"; then # Check that we found what we needed. MOZ_FOUND_A_D3D_COMPILER= if test -n "$MOZ_D3DCOMPILER_VISTA_DLL"; then MOZ_FOUND_A_D3D_COMPILER=1 AC_MSG_RESULT([Found d3dcompiler DLL for Vista+: $MOZ_D3DCOMPILER_VISTA_DLL]) fi - if test -z "$CROSS_COMPILE"; then - if test -z "MOZ_FOUND_A_D3D_COMPILER"; then - AC_MSG_ERROR([Couldn't find an acceptable D3D compiler DLL.]) - fi + if test -z "MOZ_FOUND_A_D3D_COMPILER"; then + AC_MSG_ERROR([Couldn't find an acceptable D3D compiler DLL.]) fi fi # MOZ_ANGLE_RENDERER dnl ======================================================== dnl Gamepad support dnl ======================================================== dnl Moved gamepad platform check to moz.build, linux header check still needed here. diff --git a/toolkit/moz.configure b/toolkit/moz.configure --- a/toolkit/moz.configure +++ b/toolkit/moz.configure @@ -1169,16 +1169,17 @@ set_config('MOZ_UNSIGNED_SYSTEM_SCOPE', # Shader Compiler for Windows (and MinGW Cross Compile) # ============================================================== with only_when(compile_environment): fxc = check_prog('FXC', ('fxc.exe', 'fxc2.exe'), when=depends(target) (lambda t: t.kernel == 'WINNT')) + add_old_configure_assignment('FXC', fxc) wine = check_prog('WINE', ['wine'], when=depends(target, host) (lambda t, h: t.kernel == 'WINNT' and h.kernel == 'Linux')) # VPX # === with only_when(compile_environment):