blob: 5ea622f7b29a673f65a66c23e213511ee6e3d8bc [file] [log] [blame]
#!/usr/bin/env python
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from blinkbuild.name_style_converter import NameStyleConverter
import media_feature_symbol
import json5_generator
import template_expander
class MakeMediaFeaturesWriter(json5_generator.Writer):
default_metadata = {
'namespace': '',
'export': '',
}
filters = {
'symbol':
media_feature_symbol.getMediaFeatureSymbolWithSuffix(''),
# symbol[1:] removes the leading 'k' produced by the above function.
'to_function_name':
lambda symbol: NameStyleConverter(symbol[1:]).to_function_name(),
}
def __init__(self, json5_file_path, output_dir):
super(MakeMediaFeaturesWriter, self).__init__(json5_file_path,
output_dir)
self._outputs = {
('media_features.h'): self.generate_header,
}
self._template_context = {
'entries':
self.json5_file.name_dictionaries,
'input_files':
self._input_files,
'header_guard':
self.make_header_guard(self._relative_output_dir +
'media_features.h')
}
@template_expander.use_jinja(
'core/css/templates/media_features.h.tmpl', filters=filters)
def generate_header(self):
return self._template_context
if __name__ == '__main__':
json5_generator.Maker(MakeMediaFeaturesWriter).main()