From 52cde540a4768eea7a7a1ad0f21c99f6b51eedf7 Mon Sep 17 00:00:00 2001 From: Karthik Ravi Shankar Date: Tue, 28 Jul 2020 12:10:58 -0700 Subject: [PATCH] Revert "Uses sources.json from BoringSSL" --- src/boringssl/gen_build_yaml.py | 59 +++++++++++++++++++++++++-------- 1 file changed, 45 insertions(+), 14 deletions(-) diff --git a/src/boringssl/gen_build_yaml.py b/src/boringssl/gen_build_yaml.py index eb4a59ae8b7..b54f53df095 100755 --- a/src/boringssl/gen_build_yaml.py +++ b/src/boringssl/gen_build_yaml.py @@ -13,16 +13,24 @@ # See the License for the specific language governing permissions and # limitations under the License. -import json -import os +from __future__ import print_function +import shutil import sys +import os import yaml -sources_path = os.path.abspath( +sys.dont_write_bytecode = True + +boring_ssl_root = os.path.abspath( os.path.join(os.path.dirname(sys.argv[0]), - '../../third_party/boringssl-with-bazel/sources.json')) -with open(sources_path, 'r') as s: - sources = json.load(s) + '../../third_party/boringssl-with-bazel/src')) +sys.path.append(os.path.join(boring_ssl_root, 'util')) + +try: + import generate_build_files +except ImportError: + print(yaml.dump({})) + sys.exit() def map_dir(filename): @@ -30,19 +38,18 @@ def map_dir(filename): class Grpc(object): - """Adapter for boring-SSL json sources files. """ - - def __init__(self, sources): - self.yaml = None - self.WriteFiles(sources) + """Implements a "platform" in the sense of boringssl's generate_build_files.py""" + yaml = None - def WriteFiles(self, files): + def WriteFiles(self, files, asm_outputs): test_binaries = ['ssl_test', 'crypto_test'] + self.yaml = { '#': 'generated with src/boringssl/gen_build_yaml.py', 'raw_boringssl_build_output_for_debugging': { 'files': files, + 'asm_outputs': asm_outputs, }, 'libs': [ { @@ -113,5 +120,29 @@ class Grpc(object): } -grpc_platform = Grpc(sources) -print(yaml.dump(grpc_platform.yaml)) +os.chdir(os.path.dirname(sys.argv[0])) +os.mkdir('src') +try: + for f in os.listdir(boring_ssl_root): + os.symlink(os.path.join(boring_ssl_root, f), os.path.join('src', f)) + + grpc_platform = Grpc() + # We use a hack to run boringssl's util/generate_build_files.py as part of this script. + # The call will populate "grpc_platform" with boringssl's source file metadata. + # As a side effect this script generates err_data.c and crypto_test_data.cc (requires golang) + # Both of these files are already available under third_party/boringssl-with-bazel + # so we don't need to generate them again, but there's no option to disable that behavior. + # - crypto_test_data.cc is required to run boringssl_crypto_test but we already + # use the copy under third_party/boringssl-with-bazel so we just delete it + # - err_data.c is already under third_party/boringssl-with-bazel so we just delete it + generate_build_files.main([grpc_platform]) + + print(yaml.dump(grpc_platform.yaml)) + +finally: + # we don't want err_data.c and crypto_test_data.cc (see comment above) + if os.path.exists('err_data.c'): + os.remove('err_data.c') + if os.path.exists('crypto_test_data.cc'): + os.remove('crypto_test_data.cc') + shutil.rmtree('src')