diff options
| author | Jaewoong Jung <jungjw@google.com> | 2019-01-17 15:41:06 -0800 |
|---|---|---|
| committer | Jaewoong Jung <jungjw@google.com> | 2019-01-17 15:46:50 -0800 |
| commit | 6a5aaca7bfa1bcbdc6bc373220cbb22ae871f490 (patch) | |
| tree | 5d829c1be35ee9d6c8de25d4d6f8d9cb0027dd40 /vndk | |
| parent | 9ed4f798d1a7b0c5439c9a2bfcf5a6a89256d9cd (diff) | |
| download | android_development-6a5aaca7bfa1bcbdc6bc373220cbb22ae871f490.tar.gz android_development-6a5aaca7bfa1bcbdc6bc373220cbb22ae871f490.tar.bz2 android_development-6a5aaca7bfa1bcbdc6bc373220cbb22ae871f490.zip | |
Use Soong to build to etc modules.
This is the final piece of mk to bp conversion effort for vndk.
Bug: 122332178
Test: Locally ran the test script and built the phony targets.
Change-Id: I9988cc840c0660cc4fb47129ea16cfacb4c0a7ba
Diffstat (limited to 'vndk')
| -rw-r--r-- | vndk/snapshot/gen_buildfiles.py | 57 | ||||
| -rw-r--r-- | vndk/snapshot/update.py | 4 | ||||
| -rw-r--r-- | vndk/snapshot/utils.py | 2 |
3 files changed, 32 insertions, 31 deletions
diff --git a/vndk/snapshot/gen_buildfiles.py b/vndk/snapshot/gen_buildfiles.py index 35697aa45..9a8d4de1b 100644 --- a/vndk/snapshot/gen_buildfiles.py +++ b/vndk/snapshot/gen_buildfiles.py @@ -25,9 +25,10 @@ import utils class GenBuildFile(object): - """Generates Android.mk and Android.bp for VNDK snapshot. + """Generates Android.bp for VNDK snapshot. VNDK snapshot directory structure under prebuilts/vndk/v{version}: + Android.bp {SNAPSHOT_ARCH}/ Android.bp arch-{TARGET_ARCH}-{TARGET_ARCH_VARIANT}/ @@ -52,7 +53,6 @@ class GenBuildFile(object): (various *.txt configuration files, e.g. ld.config.*.txt) ... (other {SNAPSHOT_ARCH}/ directories) common/ - Android.mk Android.bp NOTICE_FILES/ (license files, e.g. libfoo.so.txt) @@ -77,7 +77,7 @@ class GenBuildFile(object): self._vndk_version = vndk_version self._etc_paths = self._get_etc_paths() self._snapshot_archs = utils.get_snapshot_archs(install_dir) - self._mkfile = os.path.join(install_dir, utils.ANDROID_MK_PATH) + 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._vndk_core = self._parse_lib_list('vndkcore.libraries.txt') self._vndk_sp = self._parse_lib_list( @@ -122,10 +122,10 @@ class GenBuildFile(object): '*.txt')) return [os.path.splitext(os.path.basename(p))[0] for p in notice_paths] - def generate_android_mk(self): - """Autogenerates Android.mk.""" + def generate_root_android_bp(self): + """Autogenerates Android.bp.""" - logging.info('Generating Android.mk for snapshot v{}'.format( + logging.info('Generating Android.bp for snapshot v{}'.format( self._vndk_version)) etc_buildrules = [] for prebuilt in self.ETC_MODULES: @@ -137,15 +137,13 @@ class GenBuildFile(object): continue etc_buildrules.append(self._gen_etc_prebuilt(prebuilt)) - with open(self._mkfile, 'w') as mkfile: - mkfile.write(self._gen_autogen_msg('#')) - mkfile.write('\n') - mkfile.write('LOCAL_PATH := $(call my-dir)\n') - mkfile.write('\n') - mkfile.write('\n\n'.join(etc_buildrules)) - mkfile.write('\n') + with open(self._root_bpfile, 'w') as bpfile: + bpfile.write(self._gen_autogen_msg('/')) + bpfile.write('\n') + bpfile.write('\n'.join(etc_buildrules)) + bpfile.write('\n') - logging.info('Successfully generated {}'.format(self._mkfile)) + logging.info('Successfully generated {}'.format(self._root_bpfile)) def generate_common_android_bp(self): """Autogenerates common/Android.bp.""" @@ -266,19 +264,22 @@ class GenBuildFile(object): etc_path = self._etc_paths[prebuilt] etc_sub_path = etc_path[etc_path.index('/') + 1:] - return ('#######################################\n' - '# {prebuilt}\n' - 'include $(CLEAR_VARS)\n' - 'LOCAL_MODULE := {versioned_name}\n' - 'LOCAL_SRC_FILES := ../$(TARGET_ARCH)/{etc_sub_path}\n' - 'LOCAL_MODULE_CLASS := ETC\n' - 'LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)\n' - 'LOCAL_MODULE_STEM := $(LOCAL_MODULE)\n' - 'include $(BUILD_PREBUILT)\n'.format( - prebuilt=prebuilt, - versioned_name=self._get_versioned_name( - prebuilt, None, is_etc=True), - etc_sub_path=etc_sub_path)) + prebuilt_etc = ('prebuilt_etc {{\n' + '{ind}name: "{versioned_name}",\n' + '{ind}target: {{\n'.format( + ind=self.INDENT, + versioned_name=self._get_versioned_name( + prebuilt, None, is_etc=True))) + for arch in self._snapshot_archs: + prebuilt_etc += ('{ind}{ind}android_{arch}: {{\n' + '{ind}{ind}{ind}src: "{arch}/{etc_sub_path}",\n' + '{ind}{ind}}},\n'.format( + ind=self.INDENT, + arch=arch, + etc_sub_path=etc_sub_path)) + prebuilt_etc += ('{ind}}},\n' + '}}\n'.format(ind=self.INDENT)) + return prebuilt_etc def _gen_notice_filegroup(self, module): """Generates a notice filegroup build rule for a given module. @@ -524,7 +525,7 @@ def main(): utils.set_logging_config(args.verbose) buildfile_generator = GenBuildFile(install_dir, vndk_version) - buildfile_generator.generate_android_mk() + buildfile_generator.generate_root_android_bp() buildfile_generator.generate_common_android_bp() buildfile_generator.generate_android_bp() diff --git a/vndk/snapshot/update.py b/vndk/snapshot/update.py index 9f05a3306..051aac0c1 100644 --- a/vndk/snapshot/update.py +++ b/vndk/snapshot/update.py @@ -138,8 +138,8 @@ def revise_ld_config_txt_if_needed(vndk_version): def update_buildfiles(buildfile_generator): - logging.info('Generating Android.mk file...') - buildfile_generator.generate_android_mk() + logging.info('Generating root Android.bp file...') + buildfile_generator.generate_root_android_bp() logging.info('Generating common/Android.bp file...') buildfile_generator.generate_common_android_bp() diff --git a/vndk/snapshot/utils.py b/vndk/snapshot/utils.py index eae7b885a..7fed12819 100644 --- a/vndk/snapshot/utils.py +++ b/vndk/snapshot/utils.py @@ -25,9 +25,9 @@ import sys # Global Keys # All paths are relative to install_dir: prebuilts/vndk/v{version} +ROOT_BP_PATH = 'Android.bp' COMMON_DIR_NAME = 'common' COMMON_DIR_PATH = COMMON_DIR_NAME -ANDROID_MK_PATH = os.path.join(COMMON_DIR_PATH, 'Android.mk') COMMON_BP_PATH = os.path.join(COMMON_DIR_PATH, 'Android.bp') CONFIG_DIR_PATH_PATTERN = '*/configs' MANIFEST_FILE_NAME = 'manifest.xml' |
