diff options
Diffstat (limited to 'accessible/interfaces/ia2/moz.build')
-rw-r--r-- | accessible/interfaces/ia2/moz.build | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/accessible/interfaces/ia2/moz.build b/accessible/interfaces/ia2/moz.build new file mode 100644 index 0000000000..e3861a2fa2 --- /dev/null +++ b/accessible/interfaces/ia2/moz.build @@ -0,0 +1,131 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +GeckoSharedLibrary("IA2Marshal", linkage=None) + +DEFINES["REGISTER_PROXY_DLL"] = True + +DEFFILE = "IA2Marshal.def" + +OS_LIBS += [ + "uuid", + "kernel32", + "rpcrt4", + "ole32", + "oleaut32", +] + +midl_enums = [ + "AccessibleEventId", + "AccessibleRole", + "AccessibleStates", + "IA2CommonTypes", +] + +midl_interfaces = [ + "Accessible2", + "Accessible2_2", + "Accessible2_3", + "AccessibleAction", + "AccessibleApplication", + "AccessibleComponent", + "AccessibleDocument", + "AccessibleEditableText", + "AccessibleHyperlink", + "AccessibleHypertext", + "AccessibleHypertext2", + "AccessibleImage", + "AccessibleRelation", + "AccessibleTable", + "AccessibleTable2", + "AccessibleTableCell", + "AccessibleText", + "AccessibleText2", + "AccessibleValue", +] + +for enum in midl_enums: + GeneratedFile( + enum + ".h", + inputs=["/other-licenses/ia2/" + enum + ".idl"], + script="/build/midl.py", + entry_point="midl", + flags=["-app_config", "-I", TOPSRCDIR + "/other-licenses/ia2"], + ) + + EXPORTS += ["!" + enum + ".h"] + +for iface in midl_interfaces: + GeneratedFile( + iface + ".h", + iface + "_p.c", + iface + "_i.c", + iface + "_dlldata.c", + inputs=["/other-licenses/ia2/" + iface + ".idl"], + script="/build/midl.py", + entry_point="midl", + flags=[ + "-app_config", + "-I", + TOPSRCDIR + "/other-licenses/ia2", + "-dlldata", + OBJDIR + "/" + iface + "_dlldata.c", + ], + ) + + EXPORTS += ["!" + iface + ".h", "!" + iface + "_i.c"] + + for p in [iface + "_p.c", iface + "_i.c"]: + SOURCES += ["!%s" % p] + + # Give some symbols a unique name in each translation unit, to avoid + # collisions caused by https://llvm.org/pr41817. + if CONFIG["CC_TYPE"] == "clang-cl": + SOURCES["!%s" % p].flags += [ + "-DObject_StubDesc=Object_StubDesc__%s" % p[:-2] + ] + SOURCES["!%s" % p].flags += [ + "-DUserMarshalRoutines=UserMarshalRoutines__%s" % p[:-2] + ] + +# Warning: the build system doesn't know about the dependency of IA2Marshal.rc on +# IA2Typelib.tlb. We rely on the IA2Typelib.h output forcing the command to run +# during export, before rc files are treated during compile. +GeneratedFile( + "IA2Typelib.h", + "IA2Typelib_i.c", + "IA2Typelib.tlb", + inputs=["IA2Typelib.idl"], + script="/build/midl.py", + entry_point="midl", + flags=[ + "-app_config", + "-I", + TOPSRCDIR + "/other-licenses/ia2", + "-D", + "_MIDL_DECLARE_WIREM_HANDLE", + ], +) + +GeneratedFile( + "dlldata.c", + inputs=["!" + iface + "_dlldata.c" for iface in midl_interfaces], + script="/build/midl.py", + entry_point="merge_dlldata", +) + +SOURCES += ["!dlldata.c"] + +RCINCLUDE = "IA2Marshal.rc" + +# Suppress warnings from the MIDL generated code. +if CONFIG["CC_TYPE"] == "clang-cl": + CFLAGS += [ + "-Wno-extern-initializer", + "-Wno-incompatible-pointer-types", + "-Wno-missing-braces", + "-Wno-unused-const-variable", + ] |