Merge changes I2407997f,I9386bd66,I6912df70,Iad2ab990,I5786a1ab, ...

* changes:
  gn2bp: Remove code for gen_version_module
  gn2bp: Remove code for proto_descriptor_module
  gn2bp: Remove code for gen_amalgamated_sql_metrics
  gn2bp: Remove TARGET in update_results.sh
  gn2bp: Remove unnecessary conversion for write_native_libraries_java.py
  gn2bp: Remove crbug_908819 related conversion
  gn2bp: Remove unnecessary conversion for grit action
  gn2bp: Remove unnecessary hack for build_config_gen
This commit is contained in:
Mohannad Farrag
2022-11-25 11:17:59 +00:00
committed by Gerrit Code Review
2 changed files with 4 additions and 199 deletions

View File

@@ -41,6 +41,7 @@ ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Default targets to translate to the blueprint file.
default_targets = [
'//components/cronet/android:cronet',
'//components/cronet:cronet_package',
]
# Defines a custom init_rc argument to be applied to the corresponding output
@@ -554,57 +555,6 @@ def create_proto_modules(blueprint, gn, target):
return source_module
def create_amalgamated_sql_metrics_module(blueprint, target):
bp_module_name = label_to_module_name(target.name)
module = Module('genrule', bp_module_name, target.name)
module.tool_files.add('tools/gen_amalgamated_sql_metrics.py')
module.cmd = ' '.join([
'$(location tools/gen_amalgamated_sql_metrics.py)',
'--cpp_out=$(out)',
'$(in)',
])
module.genrule_headers.add(module.name)
module.out.update(target.outputs)
module.srcs.update(gn_utils.label_to_path(src) for src in target.inputs)
blueprint.add_module(module)
return module
def create_cc_proto_descriptor_module(blueprint, target):
bp_module_name = label_to_module_name(target.name)
module = Module('genrule', bp_module_name, target.name)
module.tool_files.add('tools/gen_cc_proto_descriptor.py')
module.cmd = ' '.join([
'$(location tools/gen_cc_proto_descriptor.py)', '--gen_dir=$(genDir)',
'--cpp_out=$(out)', '$(in)'
])
module.genrule_headers.add(module.name)
module.srcs.update(
':' + label_to_module_name(dep) for dep in target.proto_deps)
module.srcs.update(
gn_utils.label_to_path(src)
for src in target.inputs
if "tmp.gn_utils" not in src)
module.out.update(target.outputs)
blueprint.add_module(module)
return module
def create_gen_version_module(blueprint, target, bp_module_name):
module = Module('genrule', bp_module_name, gn_utils.GEN_VERSION_TARGET)
script_path = gn_utils.label_to_path(target.script)
module.genrule_headers.add(bp_module_name)
module.tool_files.add(script_path)
module.out.update(target.outputs)
module.srcs.update(gn_utils.label_to_path(src) for src in target.inputs)
module.cmd = ' '.join([
'python3 $(location %s)' % script_path, '--no_git',
'--changelog=$(location CHANGELOG)', '--cpp_out=$(out)'
])
blueprint.add_module(module)
return module
def create_proto_group_modules(blueprint, gn, module_name, target_names):
# TODO(lalitm): today, we're only adding a Java lite module because that's
# the only one used in practice. In the future, if we need other target types
@@ -623,36 +573,6 @@ def create_proto_group_modules(blueprint, gn, module_name, target_names):
blueprint.add_module(module)
# HACK: Need to support build_cofig_gen flexibly instead of hardcoding
# build_config_gen generates srcjar by executing gcc via gcc_preprocess.py but gcc is not
# available in genrule sandbox. Also gcc path is not configurable.
# Under the //net:net, gcc_preprocess.py is only used for build_config_gen.
# So, for now, hardcoding BuildConfig.java and generates srcjar by soong_zip.
def override_build_config_gen(module):
module.tool_files.clear()
module.tools.add("soong_zip")
cmd = [
"echo",
"\\\"package org.chromium.build;\\n",
"public class BuildConfig {\\n",
"public static boolean IS_MULTIDEX_ENABLED ;\\n",
"public static boolean ENABLE_ASSERTS = true;\\n",
"public static boolean IS_UBSAN ;\\n",
"public static boolean IS_CHROME_BRANDED ;\\n",
"public static int R_STRING_PRODUCT_VERSION ;\\n",
"public static int MIN_SDK_VERSION = 1;\\n",
"public static boolean BUNDLES_SUPPORTED ;\\n",
"public static boolean IS_INCREMENTAL_INSTALL ;\\n",
"public static boolean ISOLATED_SPLITS_ENABLED ;\\n",
"public static boolean IS_FOR_TEST ;\\n",
"}\\n\\\"",
"> $(genDir)/BuildConfig.java &&",
"$(location soong_zip) -o $(out) -srcjar -f $(genDir)/BuildConfig.java"
]
NEWLINE = ' " +\n "'
module.cmd = NEWLINE.join(cmd)
return module
def create_action_foreach_modules(blueprint, target):
""" The following assumes that rebase_path exists in the args.
The args of an action_foreach contains hints about which output files are generated
@@ -758,103 +678,6 @@ def create_action_module(blueprint, target):
# It might be better to remove sources by '--sources-exclusions'
target.args[i] = ''
target.args[i + 1] = ''
elif target.script == '//build/android/gyp/write_build_config.py':
for i, val in enumerate(target.args):
if val == '--depfile':
# Depfile is not used, so no need to generate it.
target.args[i] = ''
target.args[i + 1] = ''
elif val in ['--deps-configs', '--bundled-srcjars']:
args = target.args[i + 1]
if args == '[]':
continue
# strip surrounding [] and split by ", "
args = args.strip('[]').split(', ')
# strip surrounding ""
args = [arg.strip('"') for arg in args]
# remove leading gen/
args = [re.sub('^gen/', '', arg) for arg in args]
# wrap filename in \"$(location filename)\"
args = ['\"$(location %s)\"' % arg for arg in args]
# join args with ", " and wrap in []
target.args[i + 1] = '[%s]' % ', '.join(args)
elif val == '--public-deps-configs':
# TODO: implement.
pass
elif val == '--build-config':
# json output of this script
target.args[i + 1] = re.sub('^gen', '$(genDir)', target.args[i + 1])
elif val in ['--unprocessed-jar-path', '--interface-jar-path',
'--device-jar-path', '--host-jar-path']:
# jar path can be within sources (../../) or output generated by
# another genrule (obj/)
filename = re.sub('^\.\./\.\./', '', target.args[i + 1])
filename = re.sub('^obj/', '', target.args[i + 1])
target.args[i + 1] = '$(location %s)' % filename
elif val == '--proguard-configs':
args = target.args[i + 1]
if args == '[]':
continue
# TODO: consider adding helpers to deal with argument lists
# strip surrounding [] and split by ", ", then strip surrounding ""
args = args.strip('[]').split(', ')
args = [arg.strip('"') for arg in args]
# remove leading ../../
args = [re.sub('^\.\./\.\./', '', arg) for arg in args]
# add dependency on proguard config file, so a $(location) wrapper can be used.
module.tool_files.update(args)
# wrap filename in \"$(location filename)\"
args = ['$(location %s)' % arg for arg in args]
target.args[i + 1] = '[%s]' % ', '.join(args)
elif target.script == "//build/android/gyp/write_native_libraries_java.py":
for i, val in enumerate(target.args):
if val == '--output':
target.args[i + 1] = '$(out)'
elif target.script == "//tools/grit/stamp_grit_sources.py":
target.outputs = [re.sub('^\/\/', '', out) for out in target.outputs]
# Directory that contains grit scripts
target.args[0] = '`dirname $(location tools/grit/grit.py)`'
# Path to the stamp file
target.args[1] = '$(out)'
# Script tries to create args[2] file but this is not in the output.
# Specifying file under $(genDir) so that parent directory exists.
# If this file is used by other module, we may need to add this file to the outputs.
target.args[2] = '$(genDir)/' + target.args[2].split('/')[-1]
elif target.script == "//tools/grit/grit.py":
for i, val in enumerate(target.args):
if val == '-i':
# Delete leading ../..
filename = re.sub('^\.\./\.\./', '', target.args[i + 1])
target.args[i + 1] = '$(location %s)' % filename
elif val == '-o':
filename = re.sub('^gen/', '', target.args[i + 1])
if filename == "net":
# This is a directory not a file
target.args[i + 1] = '$(genDir)/net'
else:
# This is an output fil
target.args[i + 1] = '$(location %s)' % filename
elif val == '--depfile':
# The depfile is replaced by adding /tools/**/*.py to the tools_files
# This is basically just globbing all the needed sources by hardcoding.
module.tool_files.update([
"tools/grit/**/*.py",
"third_party/six/src/six.py" # This is not picked up by default. Must be added
])
# Delete the depfile argument
target.args[i] = ' '
target.args[i + 1] = ' '
elif val == '--input':
# Delete leading ../..
filename = re.sub('^\.\./\.\./', '', target.args[i + 1])
# This is an output file so use $(location %s)
target.args[i + 1] = '$(location %s)' % filename
elif target.script == "//net/tools/dafsa/make_dafsa.py":
# This script generates .cc files but source (registry_controlled_domain.cc) in the target that
# depends on this target includes .cc file this script generates.
@@ -918,12 +741,7 @@ def create_action_module(blueprint, target):
module.out.update(target.outputs)
if target.name == "//build/android:build_config_gen":
module = override_build_config_gen(module)
elif target.script == "//tools/grit/stamp_grit_sources.py":
# stamp_grit_sources.py is not executable
module.cmd = "python " + module.cmd
elif target.script == "//base/android/jni_generator/jni_generator.py":
if target.script == "//base/android/jni_generator/jni_generator.py":
# android_jar.classes should be part of the tools as it list implicit classes
# for the script to generate JNI headers.
module.tool_files.add("base/android/jni_generator/android_jar.classes")
@@ -1030,14 +848,6 @@ def create_modules_from_target(blueprint, gn, gn_target_name):
if module is None:
return None
elif target.type == 'action':
if 'gen_amalgamated_sql_metrics' in target.name:
module = create_amalgamated_sql_metrics_module(blueprint, target)
elif re.match('.*gen_cc_.*_descriptor$', target.name):
module = create_cc_proto_descriptor_module(blueprint, target)
elif target.type == 'action' and \
target.name == gn_utils.GEN_VERSION_TARGET:
module = create_gen_version_module(blueprint, target, bp_module_name)
else:
module = create_action_module(blueprint, target)
elif target.type == 'action_foreach':
module = create_action_foreach_modules(blueprint, target)

View File

@@ -11,10 +11,5 @@
set -eux
TARGETS=(
"//components/cronet/android:cronet"
"//components/cronet:cronet_package"
)
BASEDIR=$(dirname "$0")
$BASEDIR/gen_android_bp --desc $BASEDIR/desc_x64.json --desc $BASEDIR/desc_x86.json --out $BASEDIR/Android.bp ${TARGETS[@]}
$BASEDIR/gen_android_bp --desc $BASEDIR/desc_x64.json --desc $BASEDIR/desc_x86.json --out $BASEDIR/Android.bp