This patch fixes a bug in WebIDL code generation that could be triggered
if an input file changed locations but the original file remained on
disk. When computing the set of source .webidl files to perform code
generation on, we failed to prune files that were no longer part of the
active set of input files. References to files in old locations would
get pulled in to the regeneration set, leading to a cryptic KeyError
during code generation.
--HG--
extra : rebase_source : 23f1b973133960cfa954d44b20175fc7a369169a
This prevents excessive dependencies on config.status. Those extra
dependencies make WebIDL developer workflow inefficient.
--HG--
extra : rebase_source : d656410da544d4d29eb926293d8be355cd3736db
Make blissfully ignores failures when processing targets of "include"
directives. This was causing failures of WebIDL codegen to be ignored
and causing make to get in a loop.
--HG--
extra : rebase_source : 1231255705315319b308b4303bc3fc41237fbfa0
extra : amend_source : cfd801d7a3490a2a712994a60e548e3482a4992e
Previously, the set of WebIDL example interfaces to build was hardcoded
in the mozwebidlcodegen Python package. Unfortunately, the example
interfaces in that set were dependent on test-only bindings files,
resulting in build failures when tests were disabled (because those
test-only bindings were defined in a test directory).
In this patch, we now declare example interfaces in moz.build files
so the set of example interfaces lives next to the set of defined
bindings files. The example interfaces are defined in a test moz.build
file - in the same file declaring the bindings files that contain the
interfaces - so the example interfaces only get picked up if the
corresponding bindings are defined.
We could probably switch WebIDL moz.build variables to use lists with
flags. That would be good followup fodder. For now, let's fix the build.
--HG--
extra : rebase_source : 00070a6d560625bc84ab9b10d6848ea037f8f5ed
extra : amend_source : 0890ecef444ba58533fcfaa333773d78deafd7f3
This prevents excessive dependencies on config.status. Those extra
dependencies make WebIDL developer workflow inefficient.
--HG--
extra : rebase_source : 37ba82773fe6d873e25fc8b61fef44ec9f191ebe
extra : amend_source : 3fa0796f096efdbe6a74138ea0258f68cbcf4071
WebIDL build system integration has been rewritten from the ground up.
Changes:
* GlobalGen.py, BindingGen.py, and ExampleGen.py have been removed in
favor of mozwebidl.py.
* Static .webidl files are now processed directly in their original location
and aren't copied to the object directory.
* Generated events <stem>.cpp files are now compiled into the unified
sources. Previously, only the <stem>Binding.cpp files were compiled
into unified sources.
* Exported .h files are now generated directly into their final location.
Previously, they were generated into the local directory then
installed in their final location.
* The list of globalgen-generated files now lives in Python and isn't
duplicated in 3 places.
* The make dependencies are much simpler as a result of using a single
command to perform all code generation. The auto-generated .pp file from
code generation sets up all dependencies necessary to reinvoke code
generation and Python takes care of dependency management.
--HG--
extra : rebase_source : e4918878274b22a412329c7cb18cc7138daf5dc6