Fix build with MSVC 2019+, and New SDK

This commit is contained in:
EAZYBLACK 2026-09-12 19:43:14 +03:00
commit f317c71c16
No known key found for this signature in database
GPG key ID: 7B9A0770947E7D15
2 changed files with 22 additions and 1 deletions

View file

@ -84,7 +84,14 @@ def get_sdk_dirs(sdk, subdir):
include_dirs['winv6.3'] = include_dirs['include']
del include_dirs['include']
valid_versions = sorted(set(include_dirs) & set(lib_dirs), reverse=True)
def build_num(v):
parts = v.split('.')
try:
return int(parts[2]) if len(parts) >= 3 else 0
except ValueError:
return 0
valid_versions = sorted((v for v in set(include_dirs) & set(lib_dirs)
if build_num(v) <= 19041), reverse=True)
if valid_versions:
return namespace(
path=sdk,
@ -136,6 +143,13 @@ def valid_windows_sdk_dir(compiler, windows_sdk_dir, target_version,
'WINDOWSSDKDIR (%s). Please verify it contains a valid and '
'complete SDK installation.' % windows_sdk_dir_env)
def sdk_build(path):
parts = os.path.basename(path).split('.')
try:
return int(parts[2]) if len(parts) >= 3 else 0
except ValueError:
return 0
sdks = {k: v for k, v in sdks.items() if sdk_build(k) <= 19041}
valid_sdks = sorted(sdks, key=lambda x: sdks[x][0], reverse=True)
if valid_sdks:
biggest_version, sdk = sdks[valid_sdks[0]]
@ -226,6 +240,7 @@ def valid_ucrt_sdk_dir(windows_sdk_dir, windows_sdk_dir_env):
'The SDK in WINDOWSSDKDIR (%s) does not contain the Universal '
'CRT.' % windows_sdk_dir_env)
sdks = {k: v for k, v in sdks.items() if int(str(v[0]).split('.')[2]) <= 19041}
valid_sdks = sorted(sdks, key=lambda x: sdks[x][0], reverse=True)
if not valid_sdks:
raise FatalCheckError('Cannot find the Universal CRT SDK. '

View file

@ -33,6 +33,12 @@
#define MOZALLOC_HAVE_XMALLOC
/* Workaround build problems with v142+ MSVC*/
#if defined(_MSC_VER)
#pragma warning(push)
#pragma warning(disable: 5043)
#endif
/* Workaround build problem with Sun Studio 12 */
#if defined(__SUNPRO_C) || defined(__SUNPRO_CC)
# undef MOZ_MUST_USE