|
|
@ -13,16 +13,24 @@ |
|
|
|
# See the License for the specific language governing permissions and |
|
|
|
# See the License for the specific language governing permissions and |
|
|
|
# limitations under the License. |
|
|
|
# limitations under the License. |
|
|
|
|
|
|
|
|
|
|
|
import json |
|
|
|
from __future__ import print_function |
|
|
|
import os |
|
|
|
import shutil |
|
|
|
import sys |
|
|
|
import sys |
|
|
|
|
|
|
|
import os |
|
|
|
import yaml |
|
|
|
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]), |
|
|
|
os.path.join(os.path.dirname(sys.argv[0]), |
|
|
|
'../../third_party/boringssl-with-bazel/sources.json')) |
|
|
|
'../../third_party/boringssl-with-bazel/src')) |
|
|
|
with open(sources_path, 'r') as s: |
|
|
|
sys.path.append(os.path.join(boring_ssl_root, 'util')) |
|
|
|
sources = json.load(s) |
|
|
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
|
|
|
import generate_build_files |
|
|
|
|
|
|
|
except ImportError: |
|
|
|
|
|
|
|
print(yaml.dump({})) |
|
|
|
|
|
|
|
sys.exit() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def map_dir(filename): |
|
|
|
def map_dir(filename): |
|
|
@ -30,19 +38,18 @@ def map_dir(filename): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Grpc(object): |
|
|
|
class Grpc(object): |
|
|
|
"""Adapter for boring-SSL json sources files. """ |
|
|
|
"""Implements a "platform" in the sense of boringssl's generate_build_files.py""" |
|
|
|
|
|
|
|
yaml = None |
|
|
|
def __init__(self, sources): |
|
|
|
|
|
|
|
self.yaml = None |
|
|
|
|
|
|
|
self.WriteFiles(sources) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def WriteFiles(self, files): |
|
|
|
def WriteFiles(self, files, asm_outputs): |
|
|
|
test_binaries = ['ssl_test', 'crypto_test'] |
|
|
|
test_binaries = ['ssl_test', 'crypto_test'] |
|
|
|
|
|
|
|
|
|
|
|
self.yaml = { |
|
|
|
self.yaml = { |
|
|
|
'#': |
|
|
|
'#': |
|
|
|
'generated with src/boringssl/gen_build_yaml.py', |
|
|
|
'generated with src/boringssl/gen_build_yaml.py', |
|
|
|
'raw_boringssl_build_output_for_debugging': { |
|
|
|
'raw_boringssl_build_output_for_debugging': { |
|
|
|
'files': files, |
|
|
|
'files': files, |
|
|
|
|
|
|
|
'asm_outputs': asm_outputs, |
|
|
|
}, |
|
|
|
}, |
|
|
|
'libs': [ |
|
|
|
'libs': [ |
|
|
|
{ |
|
|
|
{ |
|
|
@ -113,5 +120,29 @@ class Grpc(object): |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
grpc_platform = Grpc(sources) |
|
|
|
os.chdir(os.path.dirname(sys.argv[0])) |
|
|
|
print(yaml.dump(grpc_platform.yaml)) |
|
|
|
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') |
|
|
|