Merge changes I7728eb4f,Ia31285bd,I7d08e055,I492d40ff
* changes: gn2bp: Remove hardcoded arch support gn2bp: Remove .h files from srcs gn2bp: Update protoc tool name gn2bp: Make local_include_dir order deterministic
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -291,7 +291,6 @@ class Module(object):
|
|||||||
self.stubs = {}
|
self.stubs = {}
|
||||||
self.cppflags = set()
|
self.cppflags = set()
|
||||||
self.rtti = False
|
self.rtti = False
|
||||||
self.arch = dict()
|
|
||||||
|
|
||||||
def to_string(self, output):
|
def to_string(self, output):
|
||||||
if self.comment:
|
if self.comment:
|
||||||
@@ -340,7 +339,6 @@ class Module(object):
|
|||||||
self._output_field(output, 'cppflags')
|
self._output_field(output, 'cppflags')
|
||||||
if self.rtti:
|
if self.rtti:
|
||||||
self._output_field(output, 'rtti')
|
self._output_field(output, 'rtti')
|
||||||
self._output_field(output, 'arch')
|
|
||||||
|
|
||||||
target_out = []
|
target_out = []
|
||||||
for arch, target in sorted(self.target.items()):
|
for arch, target in sorted(self.target.items()):
|
||||||
@@ -406,10 +404,6 @@ def label_to_module_name(label):
|
|||||||
module = re.sub(r'^//:?', '', label)
|
module = re.sub(r'^//:?', '', label)
|
||||||
module = re.sub(r'[^a-zA-Z0-9_]', '_', module)
|
module = re.sub(r'[^a-zA-Z0-9_]', '_', module)
|
||||||
|
|
||||||
# If it's required to support multi toolchain for more targets, it's better to avoid hardcoding.
|
|
||||||
if label == "//third_party/boringssl:boringssl_asm(//build/toolchain/android:android_clang_x86)":
|
|
||||||
module += "_x86"
|
|
||||||
|
|
||||||
if not module.startswith(module_prefix):
|
if not module.startswith(module_prefix):
|
||||||
return module_prefix + module
|
return module_prefix + module
|
||||||
return module
|
return module
|
||||||
@@ -437,7 +431,7 @@ def create_proto_modules(blueprint, gn, target):
|
|||||||
"""
|
"""
|
||||||
assert (target.type == 'proto_library')
|
assert (target.type == 'proto_library')
|
||||||
|
|
||||||
protoc_gn_target_name = "//third_party/protobuf:protoc(//build/toolchain/linux:clang_x64)"
|
protoc_gn_target_name = gn.get_target('//third_party/protobuf:protoc').name
|
||||||
protoc_module_name = label_to_module_name(protoc_gn_target_name)
|
protoc_module_name = label_to_module_name(protoc_gn_target_name)
|
||||||
tools = {protoc_module_name}
|
tools = {protoc_module_name}
|
||||||
cpp_out_dir = '$(genDir)/%s/%s/' % (tree_path, target.proto_in_dir)
|
cpp_out_dir = '$(genDir)/%s/%s/' % (tree_path, target.proto_in_dir)
|
||||||
@@ -1035,8 +1029,10 @@ def create_modules_from_target(blueprint, gn, gn_target_name):
|
|||||||
|
|
||||||
# Add arch-specific properties
|
# Add arch-specific properties
|
||||||
for arch_name, arch in target.arch.items():
|
for arch_name, arch in target.arch.items():
|
||||||
module.target[arch_name].srcs.update(gn_utils.label_to_path(src)
|
module.target[arch_name].srcs.update(
|
||||||
for src in arch.sources)
|
gn_utils.label_to_path(src)
|
||||||
|
for src in arch.sources
|
||||||
|
if is_supported_source_file(src) and not src.startswith("//out/test"))
|
||||||
|
|
||||||
local_include_dirs_set = set()
|
local_include_dirs_set = set()
|
||||||
if target.type in gn_utils.LINKER_UNIT_TYPES:
|
if target.type in gn_utils.LINKER_UNIT_TYPES:
|
||||||
@@ -1066,7 +1062,7 @@ def create_modules_from_target(blueprint, gn, gn_target_name):
|
|||||||
# Order matters for some targets. For example, base/time/time_exploded_icu.cc
|
# Order matters for some targets. For example, base/time/time_exploded_icu.cc
|
||||||
# in //base:base needs to have sysroot include after icu/source/common
|
# in //base:base needs to have sysroot include after icu/source/common
|
||||||
# include. So adding sysroot include at the end.
|
# include. So adding sysroot include at the end.
|
||||||
for flag in target.cflags:
|
for flag in sorted(target.cflags):
|
||||||
if '--sysroot' in flag:
|
if '--sysroot' in flag:
|
||||||
sysroot = flag[len('--sysroot=../../'):]
|
sysroot = flag[len('--sysroot=../../'):]
|
||||||
if sysroot == "build/linux/debian_bullseye_amd64-sysroot":
|
if sysroot == "build/linux/debian_bullseye_amd64-sysroot":
|
||||||
@@ -1150,25 +1146,6 @@ def create_modules_from_target(blueprint, gn, gn_target_name):
|
|||||||
raise Error('Unknown dep %s (%s) for target %s' %
|
raise Error('Unknown dep %s (%s) for target %s' %
|
||||||
(dep_module.name, dep_module.type, module.name))
|
(dep_module.name, dep_module.type, module.name))
|
||||||
|
|
||||||
# TODO: support arch difference in generic way
|
|
||||||
# Currently, it is expected that only a couple of modules (e.g. partition_alloc, boringssl)
|
|
||||||
# need arch condition. So, for now, hardcoding arch condition
|
|
||||||
if module.name == "cronet_aml_base_allocator_partition_allocator_partition_alloc":
|
|
||||||
x86_srcs = module.srcs.copy()
|
|
||||||
x86_srcs.discard(
|
|
||||||
"base/allocator/partition_allocator/starscan/stack/asm/x64/push_registers_asm.cc")
|
|
||||||
x86_srcs.add("base/allocator/partition_allocator/starscan/stack/asm/x86/push_registers_asm.cc")
|
|
||||||
module.arch['x86'] = {'srcs': x86_srcs}
|
|
||||||
module.arch['x86_64'] = {'srcs': module.srcs.copy()}
|
|
||||||
module.srcs.clear()
|
|
||||||
elif module.name == "cronet_aml_third_party_boringssl_boringssl":
|
|
||||||
x86_srcs = module.srcs.copy()
|
|
||||||
x86_srcs.discard(":cronet_aml_third_party_boringssl_boringssl_asm")
|
|
||||||
x86_srcs.add(":cronet_aml_third_party_boringssl_boringssl_asm_x86")
|
|
||||||
module.arch['x86'] = {'srcs': x86_srcs}
|
|
||||||
module.arch['x86_64'] = {'srcs': module.srcs.copy()}
|
|
||||||
module.srcs.clear()
|
|
||||||
|
|
||||||
return module
|
return module
|
||||||
|
|
||||||
def create_java_module(blueprint, gn):
|
def create_java_module(blueprint, gn):
|
||||||
@@ -1230,14 +1207,6 @@ def create_blueprint_for_targets(gn, desc, targets):
|
|||||||
for target in targets:
|
for target in targets:
|
||||||
create_modules_from_target(blueprint, gn, target)
|
create_modules_from_target(blueprint, gn, target)
|
||||||
|
|
||||||
# Currently, multi tool chain is not supported for all targets and create_modules_from_target can
|
|
||||||
# not reach to this target by following the dependency.
|
|
||||||
# So it's required to specify explicitly.
|
|
||||||
boringssl_gn_target_name = ('//third_party/boringssl:boringssl_asm' +
|
|
||||||
'(//build/toolchain/android:android_clang_x86)')
|
|
||||||
gn.parse_gn_desc(desc, boringssl_gn_target_name)
|
|
||||||
create_modules_from_target(blueprint, gn, boringssl_gn_target_name)
|
|
||||||
|
|
||||||
create_java_module(blueprint, gn)
|
create_java_module(blueprint, gn)
|
||||||
update_jni_registration_module(blueprint, gn)
|
update_jni_registration_module(blueprint, gn)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user