diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2015-12-16 21:06:37 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2015-12-16 21:06:37 +0530 |
commit | d1ea209f0fb4951ee7cd773e448ee65968968d38 (patch) | |
tree | e878862f0dfae8d2e50b396f579f2bd60da8ec8d /components/script/dom/bindings/codegen | |
parent | 54a608b65e7ef117488640d5853390323e8f448f (diff) | |
parent | 2522cfe53942421892aa2c4741e7e9237db7c828 (diff) | |
download | servo-d1ea209f0fb4951ee7cd773e448ee65968968d38.tar.gz servo-d1ea209f0fb4951ee7cd773e448ee65968968d38.zip |
Auto merge of #8996 - nox:rm-empty-modules, r=frewsxcv
Do not create modules from files with nothing to codegen (fixes #8711)
Fixes #8711.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8996)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/bindings/codegen')
-rw-r--r-- | components/script/dom/bindings/codegen/BindingGen.py | 6 | ||||
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 20 |
2 files changed, 16 insertions, 10 deletions
diff --git a/components/script/dom/bindings/codegen/BindingGen.py b/components/script/dom/bindings/codegen/BindingGen.py index 5debf3e1f0f..6b1f10c44e2 100644 --- a/components/script/dom/bindings/codegen/BindingGen.py +++ b/components/script/dom/bindings/codegen/BindingGen.py @@ -18,8 +18,10 @@ def generate_binding_rs(config, outputprefix, webidlfile): """ filename = outputprefix + ".rs" - root = CGBindingRoot(config, outputprefix, webidlfile) - if replaceFileIfChanged(filename, root.define()): + module = CGBindingRoot(config, outputprefix, webidlfile).define() + if not module: + print "Skipping empty module: %s" % (filename) + elif replaceFileIfChanged(filename, module): print "Generating binding implementation: %s" % (filename) diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index c84be59ad7c..c4bd53c42c1 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -5258,17 +5258,23 @@ class CGBindingRoot(CGThing): descriptors.extend(config.getDescriptors(webIDLFile=webIDLFile, hasInterfaceObject=False, isCallback=False)) - dictionaries = config.getDictionaries(webIDLFile=webIDLFile) - cgthings = [] + dictionaries = config.getDictionaries(webIDLFile=webIDLFile) mainCallbacks = config.getCallbacks(webIDLFile=webIDLFile) callbackDescriptors = config.getDescriptors(webIDLFile=webIDLFile, isCallback=True) - # Do codegen for all the enums - cgthings = [CGEnum(e) for e in config.getEnums(webIDLFile)] + enums = config.getEnums(webIDLFile) + + if not (descriptors or dictionaries or mainCallbacks or callbackDescriptors or enums): + self.root = None + return + # Do codegen for all the enums. + cgthings = [CGEnum(e) for e in enums] + + # Do codegen for all the dictionaries. cgthings.extend([CGDictionary(d, config.getDescriptorProvider()) for d in dictionaries]) @@ -5288,10 +5294,6 @@ class CGBindingRoot(CGThing): # And make sure we have the right number of newlines at the end curr = CGWrapper(CGList(cgthings, "\n\n"), post="\n\n") - # Wrap all of that in our namespaces. - # curr = CGNamespace.build(['dom'], - # CGWrapper(curr, pre="\n")) - # Add imports curr = CGImports(curr, descriptors + callbackDescriptors, mainCallbacks, [ 'js', @@ -5390,6 +5392,8 @@ class CGBindingRoot(CGThing): self.root = curr def define(self): + if not self.root: + return None return stripTrailingWhitespace(self.root.define()) |