# 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/.
STANDALONE_MAKEFILE := 1
include $(topsrcdir)/config/rules.mk
# Building XPIDLs effectively consists of two steps:
java.lang.NullPointerException # 1) Staging all .idl files to a common directory. # 2) Doing everything with the .idl files.
java.lang.NullPointerException # Each .idl file is processed into a .h file and typelib information. # The .h file shares the same stem as the input file and is installed # in the common headers include directory.
java.lang.NullPointerException # XPIDL files are logically grouped together by modules. The typelib # information for all XPIDLs in the same module is linked together into # an .xpt file having the name of the module.
java.lang.NullPointerException # As an optimization to reduce overall CPU usage, we process all .idl # belonging to a module with a single command invocation. This prevents # redundant parsing of .idl files and significantly reduces CPU cycles.
# TODO we should use py_action, but that would require extra directories to be # in the virtualenv.
%.xpt:
$(REPORT_BUILD)
$(call BUILDSTATUS,START_xpt $@)
$(PYTHON3) $(process_py) --depsdir $(idl_deps_dir) \
--bindings-conf $(topsrcdir)/dom/bindings/Bindings.conf \
$(foreach dir,$(all_idl_dirs),-I $(dir)) \
$(dist_include_dir) $(dist_xpcrs_dir) $(@D) \
$(basename $(notdir $@)) $($(basename $(notdir $@))_deps) # When some IDL is added or removed, if the actual IDL file was already, or # still is, in the tree, simple dependencies can't detect that the XPT needs # to be rebuilt. # Add the current value of $($(xpidl_module)_deps) in the depend file, such that # we can later check if the value has changed since last build, which will # indicate whether IDLs were added or removed. # Note that removing previously built files is not covered.
@echo $(basename $(notdir $@))_deps_built = $($(basename $(notdir $@))_deps) >> $(idl_deps_dir)/$(basename $(notdir $@)).pp
$(call BUILDSTATUS,END_xpt $@)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.