diff --git a/ports/geckolib/gecko_bindings/tools/regen.py b/ports/geckolib/gecko_bindings/tools/regen.py index 15c2a916bd4..6be27a22bae 100755 --- a/ports/geckolib/gecko_bindings/tools/regen.py +++ b/ports/geckolib/gecko_bindings/tools/regen.py @@ -21,7 +21,7 @@ COMPILATION_TARGETS = { # Flags common for all the targets. COMMON_BUILD_KEY: { "flags": [ - "-x", "c++", "-std=gnu++0x", + "-x", "c++", "-std=c++14", "-allow-unknown-types", "-no-bitfield-methods", "-no-type-renaming", "-no-namespaced-constants", "-DTRACING=1", "-DIMPL_LIBXUL", "-DMOZ_STYLO_BINDINGS=1", @@ -71,10 +71,11 @@ COMPILATION_TARGETS = { "gfxFontFamilyList.h", "gfxFontFeatures.h", "imgRequestProxy.h", "nsIRequest.h", "imgIRequest.h", "CounterStyleManager.h", "nsStyleConsts.h", "nsCSSValue.h", "SheetType.h", "nsIPrincipal.h", - "nsDataHashtable.h", "nsCSSScanner.h", "utility", "nsTArray", + "nsDataHashtable.h", "nsCSSScanner.h", "nsTArray", "pair", "SheetParsingMode.h", "StaticPtr.h", "nsProxyRelease.h", "mozilla/dom/AnimationEffectReadOnlyBinding.h", "/Types.h", # <- Disallow UnionTypes.h + "/utility", # <- Disallow xutility "nsINode.h", # <- For `NodeFlags`. ], "blacklist": [ @@ -140,6 +141,27 @@ def platform_dependent_defines(): ret.append("-DOS_LINUX=1") elif system == "Darwin": ret.append("-DOS_MACOSX=1") + elif system == "Windows": + ret.append("-DOS_WIN=1") + ret.append("-DWIN32=1") + ret.append("-use-msvc-mangling") + msvc_platform = os.environ["PLATFORM"] + if msvc_platform == "X86": + ret.append("--target=i686-pc-win32") + elif msvc_platform == "X64": + ret.append("--target=x86_64-pc-win32") + else: + raise Exception("Only MSVC builds are supported on Windows") + # For compatibility with MSVC 2015 + ret.append("-fms-compatibility-version=19") + # To enable the builtin __builtin_offsetof so that CRT wouldn't + # use reinterpret_cast in offsetof() which is not allowed inside + # static_assert(). + ret.append("-D_CRT_USE_BUILTIN_OFFSETOF") + # Enable hidden attribute (which is not supported by MSVC and + # thus not enabled by default with a MSVC-compatibile build) + # to exclude hidden symbols from the generated file. + ret.append("-DHAVE_VISIBILITY_HIDDEN_ATTRIBUTE=1") else: raise Exception("Unknown platform")