Merge "Add support for vndk llndk libraries in Android.bp" am: f205499be8
Original change: https://android-review.googlesource.com/c/platform/development/+/1706410 Change-Id: Ia3c4388f6e2c26885197611b737fa5fdb4946ae5
This commit is contained in:
@@ -102,6 +102,8 @@ class GenBuildFile(object):
|
||||
self._snapshot_archs = utils.get_snapshot_archs(install_dir)
|
||||
self._root_bpfile = os.path.join(install_dir, utils.ROOT_BP_PATH)
|
||||
self._common_bpfile = os.path.join(install_dir, utils.COMMON_BP_PATH)
|
||||
self._llndk = self._parse_lib_list(
|
||||
os.path.basename(self._etc_paths['llndk.libraries.txt']))
|
||||
self._vndk_core = self._parse_lib_list(
|
||||
os.path.basename(self._etc_paths['vndkcore.libraries.txt']))
|
||||
self._vndk_sp = self._parse_lib_list(
|
||||
@@ -232,15 +234,26 @@ class GenBuildFile(object):
|
||||
vndk_core_buildrules = self._gen_vndk_shared_prebuilts(
|
||||
self._vndk_core[arch],
|
||||
arch,
|
||||
is_llndk=False,
|
||||
is_vndk_sp=False,
|
||||
is_binder32=is_binder32,
|
||||
module_names=module_names)
|
||||
vndk_sp_buildrules = self._gen_vndk_shared_prebuilts(
|
||||
self._vndk_sp[arch],
|
||||
arch,
|
||||
is_llndk=False,
|
||||
is_vndk_sp=True,
|
||||
is_binder32=is_binder32,
|
||||
module_names=module_names)
|
||||
include_llndk = self._vndk_version > 30
|
||||
if include_llndk:
|
||||
llndk_buildrules = self._gen_vndk_shared_prebuilts(
|
||||
self._llndk[arch],
|
||||
arch,
|
||||
is_llndk=True,
|
||||
is_vndk_sp=False,
|
||||
is_binder32=is_binder32,
|
||||
module_names=module_names)
|
||||
|
||||
with open(bpfile_path, 'w') as bpfile:
|
||||
bpfile.write(self._gen_autogen_msg('/'))
|
||||
@@ -248,6 +261,9 @@ class GenBuildFile(object):
|
||||
bpfile.write('\n'.join(vndk_core_buildrules))
|
||||
bpfile.write('\n')
|
||||
bpfile.write('\n'.join(vndk_sp_buildrules))
|
||||
if include_llndk:
|
||||
bpfile.write('\n')
|
||||
bpfile.write('\n'.join(llndk_buildrules))
|
||||
|
||||
variant_include_path = os.path.join(variant_path, 'include')
|
||||
include_path = os.path.join(self._install_dir, arch, 'include')
|
||||
@@ -409,6 +425,7 @@ class GenBuildFile(object):
|
||||
def _gen_vndk_shared_prebuilts(self,
|
||||
prebuilts,
|
||||
arch,
|
||||
is_llndk,
|
||||
is_vndk_sp,
|
||||
is_binder32,
|
||||
module_names):
|
||||
@@ -417,6 +434,7 @@ class GenBuildFile(object):
|
||||
Args:
|
||||
prebuilts: list of VNDK shared prebuilts
|
||||
arch: string, VNDK snapshot arch (e.g. 'arm64')
|
||||
is_llndk: bool, True if the prebuilts are LLNDK stubs
|
||||
is_vndk_sp: bool, True if prebuilts are VNDK_SP libs
|
||||
is_binder32: bool, True if binder interface is 32-bit
|
||||
module_names: dict, module names for given prebuilts
|
||||
@@ -427,6 +445,7 @@ class GenBuildFile(object):
|
||||
bp_module = self._gen_vndk_shared_prebuilt(
|
||||
prebuilt,
|
||||
arch,
|
||||
is_llndk=is_llndk,
|
||||
is_vndk_sp=is_vndk_sp,
|
||||
is_binder32=is_binder32,
|
||||
module_names=module_names)
|
||||
@@ -437,6 +456,7 @@ class GenBuildFile(object):
|
||||
def _gen_vndk_shared_prebuilt(self,
|
||||
prebuilt,
|
||||
arch,
|
||||
is_llndk,
|
||||
is_vndk_sp,
|
||||
is_binder32,
|
||||
module_names):
|
||||
@@ -446,6 +466,7 @@ class GenBuildFile(object):
|
||||
Args:
|
||||
prebuilt: string, name of prebuilt object
|
||||
arch: string, VNDK snapshot arch (e.g. 'arm64')
|
||||
is_llndk: bool, True if prebuilt is a LLNDK stub
|
||||
is_vndk_sp: bool, True if prebuilt is a VNDK_SP lib
|
||||
is_binder32: bool, True if binder interface is 32-bit
|
||||
module_names: dict, module names for given prebuilts
|
||||
@@ -571,19 +592,31 @@ class GenBuildFile(object):
|
||||
|
||||
product_available = ''
|
||||
# if vndkproduct.libraries.txt is empty, make the VNDKs available to product by default.
|
||||
if not self._vndk_product[arch] or prebuilt in self._vndk_product[arch]:
|
||||
if not self._vndk_product[arch] or prebuilt in self._vndk_product[arch] or is_llndk:
|
||||
product_available = '{ind}product_available: true,\n'.format(
|
||||
ind=self.INDENT)
|
||||
|
||||
vndk_sp = ''
|
||||
if is_vndk_sp:
|
||||
vndk_sp = '{ind}{ind}support_system_process: true,\n'.format(
|
||||
ind=self.INDENT)
|
||||
vndk_props = ''
|
||||
if not is_llndk:
|
||||
vndk_sp = ''
|
||||
if is_vndk_sp:
|
||||
vndk_sp = '{ind}{ind}support_system_process: true,\n'.format(
|
||||
ind=self.INDENT)
|
||||
|
||||
vndk_private = ''
|
||||
if prebuilt in self._vndk_private[arch]:
|
||||
vndk_private = '{ind}{ind}private: true,\n'.format(
|
||||
ind=self.INDENT)
|
||||
vndk_private = ''
|
||||
if prebuilt in self._vndk_private[arch]:
|
||||
vndk_private = '{ind}{ind}private: true,\n'.format(
|
||||
ind=self.INDENT)
|
||||
|
||||
vndk_props = ('{ind}vndk: {{\n'
|
||||
'{ind}{ind}enabled: true,\n'
|
||||
'{vndk_sp}'
|
||||
'{vndk_private}'
|
||||
'{ind}}},\n'.format(
|
||||
ind=self.INDENT,
|
||||
product_available=product_available,
|
||||
vndk_sp=vndk_sp,
|
||||
vndk_private=vndk_private))
|
||||
|
||||
notice = get_notice_file(prebuilt)
|
||||
arch_props = get_arch_props(prebuilt, arch, src_paths)
|
||||
@@ -599,11 +632,7 @@ class GenBuildFile(object):
|
||||
'{binder32bit}'
|
||||
'{ind}vendor_available: true,\n'
|
||||
'{product_available}'
|
||||
'{ind}vndk: {{\n'
|
||||
'{ind}{ind}enabled: true,\n'
|
||||
'{vndk_sp}'
|
||||
'{vndk_private}'
|
||||
'{ind}}},\n'
|
||||
'{vndk_props}'
|
||||
'{notice}'
|
||||
'{arch_props}'
|
||||
'}}\n'.format(
|
||||
@@ -613,8 +642,7 @@ class GenBuildFile(object):
|
||||
target_arch=arch,
|
||||
binder32bit=binder32bit,
|
||||
product_available=product_available,
|
||||
vndk_sp=vndk_sp,
|
||||
vndk_private=vndk_private,
|
||||
vndk_props=vndk_props,
|
||||
notice=notice,
|
||||
arch_props=arch_props))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user