mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
3b19e0751d
Another implementation option would be to put all the dictionaries in a single file and have a static global set of ids which works across all dictionaries and is initialized once at startup or so. That would also handle cross-file dictionary inheritance better. One problem that remains is the fake descriptor business. At the moment this does not allow interface types inside dictionaries. We could probably work around this by either refactoring code to make it possible to get the declType independently of the actual conversion template (whether because it lives in a separate function or because the conversion template generator knows to just return an empty string when the fake descriptor provirder is passed) or by figuring out a way to pass an actual descriptor provider to dictionary codegen.
154 lines
4.3 KiB
Makefile
154 lines
4.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 = ../..
|
|
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
|
|
|
|
# Define USE_JSOP_ACCESSORS to a nonempty string like "yes" to use them
|
|
USE_JSOP_ACCESSORS =
|
|
ifdef USE_JSOP_ACCESSORS
|
|
DEFINES += -DUSE_JSOP_ACCESSORS
|
|
ACCESSOR_OPT = --use-jsop-accessors
|
|
else
|
|
ACCESSOR_OPT =
|
|
endif
|
|
|
|
# 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)
|
|
# 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 \
|
|
$(NULL)
|
|
|
|
CPPSRCS = \
|
|
$(linked_binding_cpp_files) \
|
|
$(filter %.cpp, $(globalgen_targets)) \
|
|
BindingUtils.cpp \
|
|
$(NULL)
|
|
|
|
EXPORTS_NAMESPACES = $(binding_include_path) mozilla
|
|
|
|
EXPORTS_mozilla = \
|
|
ErrorResult.h \
|
|
$(NULL)
|
|
|
|
EXPORTS_$(binding_include_path) = \
|
|
DOMJSClass.h \
|
|
PrototypeList.h \
|
|
RegisterBindings.h \
|
|
Nullable.h \
|
|
TypedArray.h \
|
|
BindingUtils.h \
|
|
$(exported_binding_headers) \
|
|
$(NULL)
|
|
|
|
LOCAL_INCLUDES += -I$(topsrcdir)/js/xpconnect/src \
|
|
-I$(topsrcdir)/js/xpconnect/wrappers \
|
|
-I$(topsrcdir)/content/html/content/src
|
|
|
|
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)
|
|
|
|
$(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 $(ACCESSOR_OPT) 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 $(ACCESSOR_OPT) cpp \
|
|
$(srcdir)/Bindings.conf $*Binding \
|
|
$*.webidl
|
|
|
|
$(globalgen_targets): ParserResults.pkl
|
|
|
|
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 $(ACCESSOR_OPT) $(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 \
|
|
$(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) |