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