зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset a4a381f85dc8 (bug 1290026)
This commit is contained in:
Родитель
2b84fbf042
Коммит
8321d9897b
|
@ -151,113 +151,6 @@ add_old_configure_assignment(
|
||||||
lambda x: '0x%04X0000' % x.version if x else None))
|
lambda x: '0x%04X0000' % x.version if x else None))
|
||||||
|
|
||||||
|
|
||||||
@imports(_from='mozbuild.shellutil', _import='quote')
|
|
||||||
def valid_ucrt_sdk_dir_result(value):
|
|
||||||
if value:
|
|
||||||
return '%s in %s' % (value.version, quote(value.path))
|
|
||||||
|
|
||||||
@depends_win(windows_sdk_dir, 'WINDOWSSDKDIR')
|
|
||||||
@checking('for Universal CRT SDK', valid_ucrt_sdk_dir_result)
|
|
||||||
@imports(_from='__builtin__', _import='sorted')
|
|
||||||
def valid_ucrt_sdk_dir(windows_sdk_dir, windows_sdk_dir_env):
|
|
||||||
if windows_sdk_dir_env:
|
|
||||||
windows_sdk_dir_env = windows_sdk_dir_env[0]
|
|
||||||
sdks = {}
|
|
||||||
for d in windows_sdk_dir:
|
|
||||||
ucrt_dir = get_include_dir(d, 'ucrt')
|
|
||||||
if ucrt_dir:
|
|
||||||
version = os.path.basename(os.path.dirname(ucrt_dir))
|
|
||||||
# We're supposed to always find a version in the directory, because
|
|
||||||
# the 8.1 SDK, which doesn't have a version in the directory, doesn't
|
|
||||||
# contain the Universal CRT SDK. When the main SDK is 8.1, there
|
|
||||||
# is, however, supposed to be a reduced install of the SDK 10
|
|
||||||
# with the UCRT.
|
|
||||||
if version != 'include':
|
|
||||||
sdks[d] = Version(version)
|
|
||||||
continue
|
|
||||||
if d == windows_sdk_dir_env:
|
|
||||||
raise FatalCheckError(
|
|
||||||
'The SDK in WINDOWSSDKDIR (%s) does not contain the Universal '
|
|
||||||
'CRT.' % windows_sdk_dir_env)
|
|
||||||
|
|
||||||
valid_sdks = sorted(sdks, key=lambda x: sdks[x], reverse=True)
|
|
||||||
if not valid_sdks:
|
|
||||||
raise FatalCheckError('Cannot find the Universal CRT SDK. '
|
|
||||||
'Please install it.')
|
|
||||||
|
|
||||||
return namespace(
|
|
||||||
path=valid_sdks[0],
|
|
||||||
version=sdks[valid_sdks[0]],
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@depends_win(c_compiler)
|
|
||||||
@imports('os')
|
|
||||||
def vc_path(c_compiler):
|
|
||||||
if c_compiler.type != 'msvc':
|
|
||||||
return
|
|
||||||
# Normally, we'd start from c_compiler.compiler, but for now, it's not the
|
|
||||||
# ideal full path to the compiler. At least, we're guaranteed find_program
|
|
||||||
# will get us the one we found in toolchain.configure.
|
|
||||||
cl = find_program(c_compiler.compiler)
|
|
||||||
result = os.path.dirname(cl)
|
|
||||||
while True:
|
|
||||||
next, p = os.path.split(result)
|
|
||||||
if next == result:
|
|
||||||
die('Cannot determine the Visual C++ directory the compiler (%s) '
|
|
||||||
'is in' % cl)
|
|
||||||
result = next
|
|
||||||
if p.lower() == 'bin':
|
|
||||||
break
|
|
||||||
return result
|
|
||||||
|
|
||||||
|
|
||||||
@depends_win(vc_path)
|
|
||||||
@checking('for the Debug Interface Access SDK', lambda x: x or 'not found')
|
|
||||||
def dia_sdk_dir(vc_path):
|
|
||||||
if vc_path:
|
|
||||||
path = os.path.join(os.path.dirname(vc_path), 'DIA SDK')
|
|
||||||
if os.path.isdir(path):
|
|
||||||
return path
|
|
||||||
|
|
||||||
|
|
||||||
@depends_win(vc_path, valid_windows_sdk_dir, valid_ucrt_sdk_dir, dia_sdk_dir)
|
|
||||||
@imports('os')
|
|
||||||
def include_path(vc_path, windows_sdk_dir, ucrt_sdk_dir, dia_sdk_dir):
|
|
||||||
if not vc_path:
|
|
||||||
return
|
|
||||||
atlmfc_dir = os.path.join(vc_path, 'atlmfc', 'include')
|
|
||||||
if not os.path.isdir(atlmfc_dir):
|
|
||||||
die('Cannot find the ATL/MFC headers in the Visual C++ directory (%s). '
|
|
||||||
'Please install them.' % vc_path)
|
|
||||||
|
|
||||||
winrt_dir = get_include_dir(windows_sdk_dir.path, 'winrt')
|
|
||||||
if not os.path.isdir(winrt_dir):
|
|
||||||
die('Cannot find the WinRT headers in the Windows SDK directory (%s). '
|
|
||||||
'Please install them.' % windows_sdk_dir.path)
|
|
||||||
|
|
||||||
includes = []
|
|
||||||
include_env = os.environ.get('INCLUDE')
|
|
||||||
if include_env:
|
|
||||||
includes.append(include_env)
|
|
||||||
includes.extend((
|
|
||||||
os.path.join(vc_path, 'include'),
|
|
||||||
atlmfc_dir,
|
|
||||||
get_include_dir(windows_sdk_dir.path, 'shared'),
|
|
||||||
get_include_dir(windows_sdk_dir.path, 'um'),
|
|
||||||
winrt_dir,
|
|
||||||
get_include_dir(ucrt_sdk_dir.path, 'ucrt'),
|
|
||||||
))
|
|
||||||
if dia_sdk_dir:
|
|
||||||
includes.append(os.path.join(dia_sdk_dir, 'include'))
|
|
||||||
# Set in the environment for old-configure
|
|
||||||
includes = os.pathsep.join(includes)
|
|
||||||
os.environ['INCLUDE'] = includes
|
|
||||||
return includes
|
|
||||||
|
|
||||||
set_config('INCLUDE', include_path)
|
|
||||||
|
|
||||||
|
|
||||||
option(env='MT', nargs=1, help='Path to the Microsoft Manifest Tool')
|
option(env='MT', nargs=1, help='Path to the Microsoft Manifest Tool')
|
||||||
|
|
||||||
@depends_win(valid_windows_sdk_dir)
|
@depends_win(valid_windows_sdk_dir)
|
||||||
|
|
|
@ -358,12 +358,6 @@ ifdef MACOSX_DEPLOYMENT_TARGET
|
||||||
export MACOSX_DEPLOYMENT_TARGET
|
export MACOSX_DEPLOYMENT_TARGET
|
||||||
endif # MACOSX_DEPLOYMENT_TARGET
|
endif # MACOSX_DEPLOYMENT_TARGET
|
||||||
|
|
||||||
# Export to propagate to cl and submake for third-party code.
|
|
||||||
# Eventually, we'll want to just use -I.
|
|
||||||
ifdef INCLUDE
|
|
||||||
export INCLUDE
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef MOZ_USING_CCACHE
|
ifdef MOZ_USING_CCACHE
|
||||||
ifdef CLANG_CXX
|
ifdef CLANG_CXX
|
||||||
export CCACHE_CPP2=1
|
export CCACHE_CPP2=1
|
||||||
|
|
Загрузка…
Ссылка в новой задаче