Add a JSON output to generate_build_files.py.

gRPC are currently importing generate_build_files.py, injecting a
custom printer, and running into problems with the symlinks they set up
to make this work, as well as needing to delete duplicate generated
files.
53a5ad34c0/src/boringssl/gen_build_yaml.py (L130)
https://boringssl-review.googlesource.com/c/boringssl/+/42164

Rather than layer on more hacks, add a JSON output to
generate_build_files.py. This outputs a sources.json file that folks
with especially custom builds can consume. (Looks like gRPC converts to
some home-grown YAML format which I imagine is further processed by some
other generator?) We can then add it to master-with-bazel's output.

Change-Id: I82b4ea0647386ca6c76a977f057b9962f40d41c8
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/42204
Reviewed-by: Adam Langley <agl@google.com>
chromium-5359
David Benjamin 5 years ago committed by Adam Langley
parent 83b74c6a7a
commit 8c0a6ebfc2
  1. 40
      util/generate_build_files.py

@ -618,6 +618,14 @@ endif()
''')
class JSON(object):
def WriteFiles(self, files, asm_outputs):
sources = dict(files)
for ((osname, arch), asm_files) in asm_outputs:
sources['crypto_%s_%s' % (osname, arch)] = asm_files
with open('sources.json', 'w+') as f:
json.dump(sources, f, sort_keys=True, indent=2)
def FindCMakeFiles(directory):
"""Returns list of all CMakeLists.txt files recursively in directory."""
cmakefiles = []
@ -947,10 +955,20 @@ def main(platforms):
return 0
ALL_PLATFORMS = {
'android': Android,
'android-cmake': AndroidCMake,
'bazel': Bazel,
'cmake': CMake,
'eureka': Eureka,
'gn': GN,
'gyp': GYP,
'json': JSON,
}
if __name__ == '__main__':
parser = optparse.OptionParser(usage='Usage: %prog [--prefix=<path>]'
' [android|android-cmake|bazel|eureka|gn|gyp]')
parser = optparse.OptionParser(usage='Usage: %%prog [--prefix=<path>] [%s]' %
'|'.join(sorted(ALL_PLATFORMS.keys())))
parser.add_option('--prefix', dest='prefix',
help='For Bazel, prepend argument to all source files')
parser.add_option(
@ -967,22 +985,10 @@ if __name__ == '__main__':
platforms = []
for s in args:
if s == 'android':
platforms.append(Android())
elif s == 'android-cmake':
platforms.append(AndroidCMake())
elif s == 'bazel':
platforms.append(Bazel())
elif s == 'eureka':
platforms.append(Eureka())
elif s == 'gn':
platforms.append(GN())
elif s == 'gyp':
platforms.append(GYP())
elif s == 'cmake':
platforms.append(CMake())
else:
platform = ALL_PLATFORMS.get(s)
if platform is None:
parser.print_help()
sys.exit(1)
platforms.append(platform())
sys.exit(main(platforms))

Loading…
Cancel
Save