summaryrefslogtreecommitdiffstats
path: root/dom/bindings/moz.build
diff options
context:
space:
mode:
Diffstat (limited to 'dom/bindings/moz.build')
-rw-r--r--dom/bindings/moz.build204
1 files changed, 204 insertions, 0 deletions
diff --git a/dom/bindings/moz.build b/dom/bindings/moz.build
new file mode 100644
index 0000000000..c9746d2330
--- /dev/null
+++ b/dom/bindings/moz.build
@@ -0,0 +1,204 @@
+# -*- 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/.
+
+with Files("**"):
+ BUG_COMPONENT = ("Core", "DOM: Bindings (WebIDL)")
+
+TEST_DIRS += ["test"]
+
+XPIDL_SOURCES += ["nsIScriptError.idl"]
+
+XPIDL_MODULE = "dom_bindings"
+
+EXPORTS.ipc += [
+ "ErrorIPCUtils.h",
+]
+
+EXPORTS.mozilla += [
+ "ErrorResult.h",
+ "RootedOwningNonNull.h",
+ "RootedRefPtr.h",
+]
+
+EXPORTS.mozilla.dom += [
+ "AtomList.h",
+ "BindingCallContext.h",
+ "BindingDeclarations.h",
+ "BindingIPCUtils.h",
+ "BindingUtils.h",
+ "CallbackFunction.h",
+ "CallbackInterface.h",
+ "CallbackObject.h",
+ "DOMExceptionNames.h",
+ "DOMJSClass.h",
+ "DOMJSProxyHandler.h",
+ "DOMString.h",
+ "Errors.msg",
+ "Exceptions.h",
+ "FakeString.h",
+ "IterableIterator.h",
+ "JSSlots.h",
+ "NonRefcountedDOMObject.h",
+ "Nullable.h",
+ "ObservableArrayProxyHandler.h",
+ "PinnedStringId.h",
+ "PrimitiveConversions.h",
+ "ProxyHandlerUtils.h",
+ "Record.h",
+ "RemoteObjectProxy.h",
+ "RootedDictionary.h",
+ "RootedRecord.h",
+ "RootedSequence.h",
+ "SimpleGlobalObject.h",
+ "SpiderMonkeyInterface.h",
+ "ToJSValue.h",
+ "TypedArray.h",
+ "UnionMember.h",
+ "WebIDLGlobalNameHash.h",
+ "XrayExpandoClass.h",
+]
+
+
+# Generated bindings reference *Binding.h, not mozilla/dom/*Binding.h. And,
+# since we generate exported bindings directly to $(DIST)/include, we need
+# to add that path to the search list.
+#
+# Ideally, binding generation uses the prefixed header file names.
+# Bug 932082 tracks.
+LOCAL_INCLUDES += [
+ "!/dist/include/mozilla/dom",
+]
+
+LOCAL_INCLUDES += [
+ "/dom/base",
+ "/dom/battery",
+ "/dom/canvas",
+ "/dom/geolocation",
+ "/dom/html",
+ "/dom/indexedDB",
+ "/dom/media/webaudio",
+ "/dom/media/webrtc",
+ "/dom/media/webrtc/common/time_profiling",
+ "/dom/media/webrtc/jsapi",
+ "/dom/media/webrtc/libwebrtcglue",
+ "/dom/media/webrtc/transport",
+ "/dom/media/webspeech/recognition",
+ "/dom/svg",
+ "/dom/xml",
+ "/dom/xslt/base",
+ "/dom/xslt/xpath",
+ "/dom/xul",
+ "/js/xpconnect/src",
+ "/js/xpconnect/wrappers",
+ "/layout/generic",
+ "/layout/style",
+ "/layout/xul/tree",
+ "/media/webrtc/",
+ "/netwerk/base/",
+ "/third_party/libwebrtc",
+ "/third_party/libwebrtc/third_party/abseil-cpp",
+]
+
+LOCAL_INCLUDES += ["/third_party/msgpack/include"]
+
+DEFINES["GOOGLE_PROTOBUF_NO_RTTI"] = True
+DEFINES["GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER"] = True
+
+UNIFIED_SOURCES += [
+ "BindingUtils.cpp",
+ "CallbackInterface.cpp",
+ "CallbackObject.cpp",
+ "DOMJSProxyHandler.cpp",
+ "Exceptions.cpp",
+ "IterableIterator.cpp",
+ "nsScriptError.cpp",
+ "nsScriptErrorWithStack.cpp",
+ "ObservableArrayProxyHandler.cpp",
+ "RemoteObjectProxy.cpp",
+ "SimpleGlobalObject.cpp",
+ "ToJSValue.cpp",
+ "WebIDLGlobalNameHash.cpp",
+]
+
+# Some tests, including those for for maplike and setlike, require bindings
+# to be built, which means they must be included in libxul. This breaks the
+# "no test classes are exported" rule stated in the test/ directory, but it's
+# the only way this will work. Test classes are only built in debug mode, and
+# all tests requiring use of them are only run in debug mode.
+if CONFIG["MOZ_DEBUG"] and CONFIG["ENABLE_TESTS"]:
+ EXPORTS.mozilla.dom += [
+ "test/TestFunctions.h",
+ "test/TestInterfaceAsyncIterableDouble.h",
+ "test/TestInterfaceAsyncIterableDoubleUnion.h",
+ "test/TestInterfaceAsyncIterableSingle.h",
+ "test/TestInterfaceAsyncIterableSingleWithArgs.h",
+ "test/TestInterfaceIterableDouble.h",
+ "test/TestInterfaceIterableDoubleUnion.h",
+ "test/TestInterfaceIterableSingle.h",
+ "test/TestInterfaceLength.h",
+ "test/TestInterfaceMaplike.h",
+ "test/TestInterfaceMaplikeJSObject.h",
+ "test/TestInterfaceMaplikeObject.h",
+ "test/TestInterfaceObservableArray.h",
+ "test/TestInterfaceSetlike.h",
+ "test/TestInterfaceSetlikeNode.h",
+ "test/TestTrialInterface.h",
+ "test/WrapperCachedNonISupportsTestInterface.h",
+ ]
+ UNIFIED_SOURCES += [
+ "test/TestFunctions.cpp",
+ "test/TestInterfaceAsyncIterableDouble.cpp",
+ "test/TestInterfaceAsyncIterableDoubleUnion.cpp",
+ "test/TestInterfaceAsyncIterableSingle.cpp",
+ "test/TestInterfaceAsyncIterableSingleWithArgs.cpp",
+ "test/TestInterfaceIterableDouble.cpp",
+ "test/TestInterfaceIterableDoubleUnion.cpp",
+ "test/TestInterfaceIterableSingle.cpp",
+ "test/TestInterfaceLength.cpp",
+ "test/TestInterfaceMaplike.cpp",
+ "test/TestInterfaceMaplikeJSObject.cpp",
+ "test/TestInterfaceMaplikeObject.cpp",
+ "test/TestInterfaceObservableArray.cpp",
+ "test/TestInterfaceSetlike.cpp",
+ "test/TestInterfaceSetlikeNode.cpp",
+ "test/TestTrialInterface.cpp",
+ "test/WrapperCachedNonISupportsTestInterface.cpp",
+ ]
+
+include("/ipc/chromium/chromium-config.mozbuild")
+
+FINAL_LIBRARY = "xul"
+
+SPHINX_TREES["webidl"] = "docs"
+
+with Files("docs/**"):
+ SCHEDULES.exclusive = ["docs"]
+
+SPHINX_PYTHON_PACKAGE_DIRS += ["mozwebidlcodegen"]
+
+with Files("mozwebidlcodegen/**.py"):
+ SCHEDULES.inclusive += ["docs"]
+
+
+PYTHON_UNITTEST_MANIFESTS += [
+ "mozwebidlcodegen/test/python.ini",
+]
+
+if CONFIG["CC_TYPE"] == "gcc":
+ CXXFLAGS += [
+ "-Wno-maybe-uninitialized",
+ ]
+
+if CONFIG["COMPILE_ENVIRONMENT"]:
+ GeneratedFile(
+ "CSS2Properties.webidl",
+ script="GenerateCSS2PropertiesWebIDL.py",
+ entry_point="generate",
+ inputs=[
+ "/dom/webidl/CSS2Properties.webidl.in",
+ "!/layout/style/ServoCSSPropList.py",
+ ],
+ )