diff options
Diffstat (limited to 'chromium/third_party/WebKit/Source/build/scripts/make_runtime_features.py')
-rwxr-xr-x | chromium/third_party/WebKit/Source/build/scripts/make_runtime_features.py | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/chromium/third_party/WebKit/Source/build/scripts/make_runtime_features.py b/chromium/third_party/WebKit/Source/build/scripts/make_runtime_features.py index c9656c8d129..37fb09c8917 100755 --- a/chromium/third_party/WebKit/Source/build/scripts/make_runtime_features.py +++ b/chromium/third_party/WebKit/Source/build/scripts/make_runtime_features.py @@ -27,21 +27,23 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -import os.path import sys -from in_file import InFile import in_generator +import name_utilities from name_utilities import lower_first import template_expander class RuntimeFeatureWriter(in_generator.Writer): class_name = 'RuntimeEnabledFeatures' + filters = { + 'enable_conditional': name_utilities.enable_conditional_if_endif, + } # FIXME: valid_values and defaults should probably roll into one object. valid_values = { - 'status': ['stable', 'experimental', 'test'], + 'status': ['stable', 'experimental', 'test', 'deprecated'], } defaults = { 'condition' : None, @@ -50,37 +52,42 @@ class RuntimeFeatureWriter(in_generator.Writer): 'status': None, } + _status_aliases = { + 'deprecated': 'test', + } + def __init__(self, in_file_path): super(RuntimeFeatureWriter, self).__init__(in_file_path) - self._outputs = {(self.class_name + ".h"): self.generate_header, - (self.class_name + ".cpp"): self.generate_implementation, + self._outputs = {(self.class_name + '.h'): self.generate_header, + (self.class_name + '.cpp'): self.generate_implementation, } self._features = self.in_file.name_dictionaries # Make sure the resulting dictionaries have all the keys we expect. for feature in self._features: feature['first_lowered_name'] = lower_first(feature['name']) + feature['status'] = self._status_aliases.get(feature['status'], feature['status']) # Most features just check their isFooEnabled bool # but some depend on more than one bool. - enabled_condition = "is%sEnabled" % feature['name'] + enabled_condition = 'is%sEnabled' % feature['name'] for dependant_name in feature['depends_on']: - enabled_condition += " && is%sEnabled" % dependant_name + enabled_condition += ' && is%sEnabled' % dependant_name feature['enabled_condition'] = enabled_condition self._non_custom_features = filter(lambda feature: not feature['custom'], self._features) def _feature_sets(self): # Another way to think of the status levels is as "sets of features" # which is how we're referring to them in this generator. - return self.valid_values['status'] + return [status for status in self.valid_values['status'] if status not in self._status_aliases] - @template_expander.use_jinja(class_name + ".h.tmpl") + @template_expander.use_jinja(class_name + '.h.tmpl', filters=filters) def generate_header(self): return { 'features': self._features, 'feature_sets': self._feature_sets(), } - @template_expander.use_jinja(class_name + ".cpp.tmpl") + @template_expander.use_jinja(class_name + '.cpp.tmpl', filters=filters) def generate_implementation(self): return { 'features': self._features, @@ -88,5 +95,5 @@ class RuntimeFeatureWriter(in_generator.Writer): } -if __name__ == "__main__": +if __name__ == '__main__': in_generator.Maker(RuntimeFeatureWriter).main(sys.argv) |