gecko-dev/dom/bindings/moz.build
Xidorn Quan a8cc0738f6 Bug 1452542 part 6 - Replace uses of PythonCSSProps.h with the data file generated from Servo. r=froydnj
Some content in Makefile.in is removed because after this change, the
scripts no longer invoke the preprocessor and thus don't have unknown
dependencies anymore outside what is provided in their inputs array.

The order of exports.PREFERENCES in properties-db changes because the
data file has shorthands placed after longhands. The only usage of it
is in test_css-properties-db.js which doesn't care about the order.

MozReview-Commit-ID: AMjzTRf2HYN

--HG--
extra : rebase_source : 7976e48e7c7bba467d77a34ab0d7709cde1ecdf4
2018-04-17 14:40:12 +10:00

184 lines
4.8 KiB
Python

# -*- 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")
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',
'BindingDeclarations.h',
'BindingUtils.h',
'CallbackFunction.h',
'CallbackInterface.h',
'CallbackObject.h',
'Date.h',
'DOMJSClass.h',
'DOMJSProxyHandler.h',
'DOMString.h',
'Errors.msg',
'Exceptions.h',
'FakeString.h',
'IterableIterator.h',
'JSSlots.h',
'NonRefcountedDOMObject.h',
'Nullable.h',
'PrimitiveConversions.h',
'ReadableStream.h',
'Record.h',
'RootedDictionary.h',
'SimpleGlobalObject.h',
'SpiderMonkeyInterface.h',
'StructuredClone.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/webspeech/recognition',
'/dom/svg',
'/dom/xbl',
'/dom/xml',
'/dom/xslt/base',
'/dom/xslt/xpath',
'/dom/xul',
'/js/xpconnect/src',
'/js/xpconnect/wrappers',
'/layout/generic',
'/layout/style',
'/layout/xul/tree',
'/media/mtransport',
'/media/webrtc/',
'/media/webrtc/signaling/src/common/time_profiling',
'/media/webrtc/signaling/src/peerconnection',
'/media/webrtc/trunk/',
]
DEFINES['GOOGLE_PROTOBUF_NO_RTTI'] = True
DEFINES['GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER'] = True
UNIFIED_SOURCES += [
'BindingUtils.cpp',
'CallbackInterface.cpp',
'CallbackObject.cpp',
'Date.cpp',
'DOMJSProxyHandler.cpp',
'Exceptions.cpp',
'IterableIterator.cpp',
'nsScriptError.cpp',
'nsScriptErrorWithStack.cpp',
'SimpleGlobalObject.cpp',
'ToJSValue.cpp',
'WebIDLGlobalNameHash.cpp',
]
SOURCES += [
'StructuredClone.cpp',
]
# Tests 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/TestInterfaceIterableDouble.h",
"test/TestInterfaceIterableDoubleUnion.h",
"test/TestInterfaceIterableSingle.h",
"test/TestInterfaceMaplike.h",
"test/TestInterfaceMaplikeObject.h",
"test/TestInterfaceSetlike.h",
"test/TestInterfaceSetlikeNode.h"
]
UNIFIED_SOURCES += [
"test/TestFunctions.cpp",
"test/TestInterfaceIterableDouble.cpp",
"test/TestInterfaceIterableDoubleUnion.cpp",
"test/TestInterfaceIterableSingle.cpp",
"test/TestInterfaceMaplike.cpp",
"test/TestInterfaceMaplikeObject.cpp",
"test/TestInterfaceSetlike.cpp",
"test/TestInterfaceSetlikeNode.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']
if CONFIG['MOZ_BUILD_APP'] in ['browser', 'mobile/android', 'xulrunner']:
# This is needed for Window.webidl
DEFINES['HAVE_SIDEBAR'] = True
PYTHON_UNITTEST_MANIFESTS += [
'mozwebidlcodegen/test/python.ini',
]
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
CXXFLAGS += ['-Wno-error=shadow']
# Suppress warnings in third-party code.
CXXFLAGS += [
'-Wno-maybe-uninitialized',
]
if CONFIG['COMPILE_ENVIRONMENT']:
GENERATED_FILES += ['CSS2Properties.webidl']
css_props = GENERATED_FILES['CSS2Properties.webidl']
css_props.script = 'GenerateCSS2PropertiesWebIDL.py:generate'
css_props.inputs = [
'/dom/webidl/CSS2Properties.webidl.in',
'!/layout/style/ServoCSSPropList.py',
]