1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- # 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/.
- # This file takes the .mk files from an upstream opus repo and generates the
- # sources.mozbuild file. It is invoked as part of update.sh
- import sys
- import re
- def add_value(values, text):
- text = text.replace('\\', '')
- text = text.strip()
- if text:
- values.append(text)
- def write_values(output, values):
- for value in sorted(values, key=lambda x: x.lower()):
- output.write(" '%s',\n" % value)
- output.write(']\n\n')
- def generate_sources_mozbuild(path):
- makefiles = [
- 'celt_sources.mk',
- 'opus_sources.mk',
- 'silk_sources.mk',
- ]
- var_definition = re.compile('([A-Z0-9_]*) = (.*)')
- with open('sources.mozbuild', 'w') as output:
- output.write('# THIS FILE WAS AUTOMATICALLY GENERATED BY %s. DO NOT EDIT.\n' % sys.argv[0])
- for makefile in makefiles:
- values = []
- definition_started = False
- with open('%s/%s' % (path, makefile), 'r') as mk:
- for line in mk:
- line = line.rstrip()
- result = var_definition.match(line)
- if result:
- if definition_started:
- write_values(output, values)
- values = []
- definition_started = True
- # Some variable definitions have the first entry on the
- # first line. Eg:
- #
- # CELT_SOURCES = celt/bands.c
- #
- # So we treat the first group as the variable name and
- # the second group as a potential value.
- #
- # Note that we write the variable name in lower case (so
- # "CELT_SOURCES" in the .mk file becomes "celt_sources"
- # in the .mozbuild file) because moz.build reserves
- # upper-case variable names for build system outputs.
- output.write('%s = [\n' % result.group(1).lower())
- add_value(values, result.group(2))
- else:
- add_value(values, line)
- write_values(output, values)
- if __name__ == '__main__':
- if len(sys.argv) != 2:
- print "Usage: %s /path/to/opus" % (sys.argv[0])
- sys.exit(1)
- generate_sources_mozbuild(sys.argv[1])
|