mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-29 21:25:35 +00:00
dd82a0d964
We mark constructors as static in the parser because they are. This allows us to just use the isStatic() for the IDLMember to mark our declarations static. To generate an example interface implementation, just "make interfacename-example" in $objdir/dom/bindings. This will place files called interfacename-example.h and interfacename-example.cpp in that directory. For example, "make XMLHttpRequest-example" will get you $objdir/dom/bindings/XMLHttpRequest-example.h and $objdir/dom/bindings/XMLHttpRequest-example.cpp. Attribute getters currently default to const methods, while setters and operations default to non-const methods. --HG-- rename : dom/bindings/BindingGen.py => dom/bindings/ExampleGen.py
180 lines
5.3 KiB
Makefile
180 lines
5.3 KiB
Makefile
# 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/.
|
|
|
|
DEPTH = @DEPTH@
|
|
topsrcdir = @top_srcdir@
|
|
srcdir = @srcdir@
|
|
VPATH = @srcdir@
|
|
|
|
MODULE = dom
|
|
LIBRARY_NAME = dombindings_s
|
|
LIBXUL_LIBRARY = 1
|
|
FORCE_STATIC_LIB = 1
|
|
EXPORT_LIBRARY = 1
|
|
|
|
include $(topsrcdir)/config/config.mk
|
|
include $(topsrcdir)/ipc/chromium/chromium-config.mk
|
|
|
|
# Need this to find all our DOM source files.
|
|
include $(topsrcdir)/dom/dom-config.mk
|
|
|
|
include $(topsrcdir)/dom/webidl/WebIDL.mk
|
|
|
|
binding_include_path := mozilla/dom
|
|
all_webidl_files = $(webidl_files) $(generated_webidl_files)
|
|
# Set exported_binding_headers before adding the test IDL to the mix
|
|
exported_binding_headers := $(subst .webidl,Binding.h,$(all_webidl_files))
|
|
# Set linked_binding_cpp_files before adding the test IDL to the mix
|
|
linked_binding_cpp_files := $(subst .webidl,Binding.cpp,$(all_webidl_files))
|
|
|
|
all_webidl_files += $(test_webidl_files)
|
|
|
|
binding_header_files := $(subst .webidl,Binding.h,$(all_webidl_files))
|
|
binding_cpp_files := $(subst .webidl,Binding.cpp,$(all_webidl_files))
|
|
|
|
globalgen_targets := \
|
|
PrototypeList.h \
|
|
RegisterBindings.h \
|
|
RegisterBindings.cpp \
|
|
UnionTypes.h \
|
|
UnionConversions.h \
|
|
$(NULL)
|
|
|
|
CPPSRCS = \
|
|
$(linked_binding_cpp_files) \
|
|
$(filter %.cpp, $(globalgen_targets)) \
|
|
BindingUtils.cpp \
|
|
DOMJSProxyHandler.cpp \
|
|
$(NULL)
|
|
|
|
EXPORTS_NAMESPACES = $(binding_include_path) mozilla
|
|
|
|
EXPORTS_mozilla = \
|
|
ErrorResult.h \
|
|
$(NULL)
|
|
|
|
EXPORTS_$(binding_include_path) = \
|
|
BindingUtils.h \
|
|
DOMJSClass.h \
|
|
DOMJSProxyHandler.h \
|
|
Errors.msg \
|
|
NonRefcountedDOMObject.h \
|
|
Nullable.h \
|
|
PrimitiveConversions.h \
|
|
PrototypeList.h \
|
|
RegisterBindings.h \
|
|
TypedArray.h \
|
|
UnionConversions.h \
|
|
UnionTypes.h \
|
|
$(exported_binding_headers) \
|
|
$(NULL)
|
|
|
|
LOCAL_INCLUDES += -I$(topsrcdir)/js/xpconnect/src \
|
|
-I$(topsrcdir)/js/xpconnect/wrappers \
|
|
-I$(topsrcdir)/content/canvas/src \
|
|
-I$(topsrcdir)/content/html/content/src \
|
|
-I$(topsrcdir)/media/webrtc/signaling/src/peerconnection \
|
|
-I$(topsrcdir)/dom/base \
|
|
$(NULL)
|
|
|
|
include $(topsrcdir)/config/rules.mk
|
|
|
|
# If you change bindinggen_dependencies here, change it in
|
|
# dom/bindings/test/Makefile.in too.
|
|
bindinggen_dependencies := \
|
|
BindingGen.py \
|
|
Bindings.conf \
|
|
Configuration.py \
|
|
Codegen.py \
|
|
parser/WebIDL.py \
|
|
ParserResults.pkl \
|
|
$(GLOBAL_DEPS) \
|
|
$(NULL)
|
|
|
|
CSS2Properties.webidl: $(topsrcdir)/layout/style/nsCSSPropList.h \
|
|
$(topsrcdir)/layout/style/nsCSSPropAliasList.h \
|
|
$(webidl_base)/CSS2Properties.webidl.in \
|
|
$(webidl_base)/CSS2PropertiesProps.h \
|
|
$(srcdir)/GenerateCSS2PropertiesWebIDL.py \
|
|
$(GLOBAL_DEPS)
|
|
$(CPP) $(DEFINES) $(ACDEFINES) -I$(topsrcdir)/layout/style $(webidl_base)/CSS2PropertiesProps.h | \
|
|
PYTHONDONTWRITEBYTECODE=1 $(PYTHON) \
|
|
$(srcdir)/GenerateCSS2PropertiesWebIDL.py $(webidl_base)/CSS2Properties.webidl.in > CSS2Properties.webidl
|
|
|
|
$(webidl_files): %: $(webidl_base)/%
|
|
$(INSTALL) $(IFLAGS1) $(webidl_base)/$* .
|
|
|
|
$(test_webidl_files): %: $(srcdir)/test/%
|
|
$(INSTALL) $(IFLAGS1) $(srcdir)/test/$* .
|
|
|
|
$(binding_header_files): %Binding.h: $(bindinggen_dependencies) \
|
|
%.webidl \
|
|
$(NULL)
|
|
PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \
|
|
$(PLY_INCLUDE) -I$(srcdir)/parser \
|
|
$(srcdir)/BindingGen.py header \
|
|
$(srcdir)/Bindings.conf $*Binding \
|
|
$*.webidl
|
|
|
|
$(binding_cpp_files): %Binding.cpp: $(bindinggen_dependencies) \
|
|
%.webidl \
|
|
$(NULL)
|
|
PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \
|
|
$(PLY_INCLUDE) -I$(srcdir)/parser \
|
|
$(srcdir)/BindingGen.py cpp \
|
|
$(srcdir)/Bindings.conf $*Binding \
|
|
$*.webidl
|
|
|
|
$(globalgen_targets): ParserResults.pkl
|
|
|
|
%-example: $(bindinggen_dependencies) \
|
|
$(all_webidl_files) \
|
|
$(NULL)
|
|
PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \
|
|
$(PLY_INCLUDE) -I$(srcdir)/parser \
|
|
$(srcdir)/ExampleGen.py \
|
|
$(srcdir)/Bindings.conf $*
|
|
|
|
CACHE_DIR = _cache
|
|
|
|
globalgen_dependencies := \
|
|
GlobalGen.py \
|
|
Bindings.conf \
|
|
Configuration.py \
|
|
Codegen.py \
|
|
parser/WebIDL.py \
|
|
$(CACHE_DIR)/.done \
|
|
$(GLOBAL_DEPS) \
|
|
$(NULL)
|
|
|
|
$(CACHE_DIR)/.done:
|
|
$(MKDIR) -p $(CACHE_DIR)
|
|
@$(TOUCH) $@
|
|
|
|
ParserResults.pkl: $(globalgen_dependencies) \
|
|
$(all_webidl_files)
|
|
PYTHONDONTWRITEBYTECODE=1 $(PYTHON) $(topsrcdir)/config/pythonpath.py \
|
|
$(PLY_INCLUDE) -I$(srcdir)/parser \
|
|
$(srcdir)/GlobalGen.py $(srcdir)/Bindings.conf . \
|
|
--cachedir=$(CACHE_DIR) \
|
|
$(all_webidl_files)
|
|
|
|
GARBAGE += \
|
|
$(binding_header_files) \
|
|
$(binding_cpp_files) \
|
|
$(all_webidl_files) \
|
|
$(globalgen_targets) \
|
|
ParserResults.pkl \
|
|
webidlyacc.py \
|
|
parser.out \
|
|
$(wildcard *-example.h) \
|
|
$(wildcard *-example.cpp) \
|
|
$(NULL)
|
|
|
|
# Make sure all binding header files are created during the export stage, so we
|
|
# don't have issues with .cpp files being compiled before we've generated the
|
|
# headers they depend on. This is really only needed for the test files, since
|
|
# the non-test headers are all exported above anyway.
|
|
export:: $(binding_header_files)
|