# 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/. abs_dist := $(abspath $(DIST)) webidl_base := $(topsrcdir)/dom/webidl # Generated by moz.build include webidlsrcs.mk ifdef GNU_CC OS_CXXFLAGS += -Wno-uninitialized endif # These come from webidlsrcs.mk. # TODO Write directly into backend.mk. CPPSRCS += $(globalgen_sources) $(unified_binding_cpp_files) # 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 932092 tracks. LOCAL_INCLUDES += -I$(DIST)/include/mozilla/dom include $(topsrcdir)/config/rules.mk # TODO This list should be emitted to a .pp file via # GenerateCSS2PropertiesWebIDL.py. css2properties_dependencies = \ $(topsrcdir)/layout/style/nsCSSPropList.h \ $(topsrcdir)/layout/style/nsCSSPropAliasList.h \ $(webidl_base)/CSS2Properties.webidl.in \ $(topsrcdir)/layout/style/PythonCSSProps.h \ $(srcdir)/GenerateCSS2PropertiesWebIDL.py \ $(GLOBAL_DEPS) \ $(NULL) CSS2Properties.webidl: $(css2properties_dependencies) $(CPP) $(DEFINES) $(ACDEFINES) -I$(topsrcdir)/layout/style \ $(topsrcdir)/layout/style/PythonCSSProps.h | \ PYTHONDONTWRITEBYTECODE=1 $(PYTHON) \ $(srcdir)/GenerateCSS2PropertiesWebIDL.py \ $(webidl_base)/CSS2Properties.webidl.in > $@ # Most of the logic for dependencies lives inside Python so it can be # used by multiple build backends. We simply have rules to generate # and include the .pp file. # # The generated .pp file contains all the important dependencies such as # changes to .webidl or .py files should result in code generation being # performed. But we do pull in file-lists.jon to catch file additions. codegen_dependencies := \ file-lists.json \ $(nonstatic_webidl_files) \ $(GLOBAL_DEPS) \ $(NULL) # The 1 is to make codegen.pp not optional. $(call include_deps,codegen.pp,1) codegen.pp: $(codegen_dependencies) $(call py_action,webidl,$(srcdir)) @$(TOUCH) $@ .PHONY: compiletests compiletests: $(call SUBMAKE,libs,test) GARBAGE += \ codegen.pp \ codegen.json \ parser.out \ WebIDLGrammar.pkl \ $(wildcard *.h) \ $(wildcard *Binding.cpp) \ $(wildcard *Event.cpp) \ $(wildcard *-event.cpp) \ $(wildcard *.webidl) \ $(NULL) DIST_GARBAGE += \ file-lists.json \ $(NULL)