platform_build_soong/scripts/Android.bp
Jooyung Han 7113b19be8 Add a host tool to create an APEX bundle
Even though the soong build system generates a bundle module for an
apex, the bundle module itself should be further processed to be an
AppBundle (.aab) file which can be uploaded to Play.

This script fills the gap by invoking bundletool to create an
AppBundle (.aab) file out of soong-built bundle module for an apex.
(Note: uploading APEX bundle (.aab) to Play is not supported yet.)

You can create an .aab file by:
- TARGET_BUILD_APPS={apex name} m dist
- m build-apex-bundle
- build-apex-bundle --output out.aab out/dist/{apex name}-base.zip

For now it creates a single-ABI APEX bundle. In the future it can be
extended to support multiple-ABI APEX bundles.

Bug: 236673372
Test: m build-apex-bundle
Test: TARGET_BUILD_APPS=com.google.cf.bt m dist
Test: build-apex-bundle --output bt.aab out/dist/com.google.cf.bt-base.zip
Change-Id: Id321efcd42c0fe60294a8348047c9ebbf7acf391
2022-09-21 13:27:49 +09:00

222 lines
3.9 KiB
Text

package {
default_applicable_licenses: ["Android-Apache-2.0"],
default_visibility: ["//build/soong:__subpackages__"],
}
python_binary_host {
name: "check_boot_jars",
main: "check_boot_jars/check_boot_jars.py",
srcs: [
"check_boot_jars/check_boot_jars.py",
],
}
python_binary_host {
name: "manifest_fixer",
main: "manifest_fixer.py",
srcs: [
"manifest_fixer.py",
],
libs: [
"manifest_utils",
],
}
python_test_host {
name: "manifest_fixer_test",
main: "manifest_fixer_test.py",
srcs: [
"manifest_fixer_test.py",
"manifest_fixer.py",
],
version: {
py3: {
embedded_launcher: true,
},
},
libs: [
"manifest_utils",
],
test_options: {
unit_test: true,
},
}
python_library_host {
name: "manifest_utils",
srcs: [
"manifest.py",
],
visibility: ["//system/apex/apexer:__pkg__"],
}
python_binary_host {
name: "manifest_check",
main: "manifest_check.py",
srcs: [
"manifest_check.py",
],
libs: [
"manifest_utils",
],
}
python_test_host {
name: "manifest_check_test",
main: "manifest_check_test.py",
srcs: [
"manifest_check_test.py",
"manifest_check.py",
],
libs: [
"manifest_utils",
],
test_options: {
unit_test: true,
},
}
python_binary_host {
name: "jsonmodify",
main: "jsonmodify.py",
srcs: [
"jsonmodify.py",
],
}
python_test_host {
name: "jsonmodify_test",
main: "jsonmodify_test.py",
srcs: [
"jsonmodify_test.py",
"jsonmodify.py",
],
test_suites: ["general-tests"],
}
python_binary_host {
name: "test_config_fixer",
main: "test_config_fixer.py",
srcs: [
"test_config_fixer.py",
],
libs: [
"manifest_utils",
],
}
python_test_host {
name: "test_config_fixer_test",
main: "test_config_fixer_test.py",
srcs: [
"test_config_fixer_test.py",
"test_config_fixer.py",
],
libs: [
"manifest_utils",
],
test_suites: ["general-tests"],
}
python_binary_host {
name: "construct_context",
main: "construct_context.py",
srcs: [
"construct_context.py",
],
libs: [
"manifest_utils",
],
}
python_test_host {
name: "construct_context_test",
main: "construct_context_test.py",
srcs: [
"construct_context_test.py",
"construct_context.py",
],
libs: [
"manifest_utils",
],
test_suites: ["general-tests"],
}
python_library_host {
name: "ninja_rsp",
srcs: ["ninja_rsp.py"],
}
python_binary_host {
name: "lint_project_xml",
main: "lint_project_xml.py",
srcs: [
"lint_project_xml.py",
],
libs: ["ninja_rsp"],
}
python_test_host {
name: "lint_project_xml_test",
main: "lint_project_xml_test.py",
srcs: [
"lint_project_xml_test.py",
"lint_project_xml.py",
],
libs: ["ninja_rsp"],
test_suites: ["general-tests"],
}
python_binary_host {
name: "gen-kotlin-build-file",
main: "gen-kotlin-build-file.py",
srcs: [
"gen-kotlin-build-file.py",
],
libs: ["ninja_rsp"],
}
python_binary_host {
name: "conv_linker_config",
srcs: [
"conv_linker_config.py",
],
version: {
py3: {
embedded_launcher: true,
},
},
libs: [
"linker_config_proto",
],
}
python_binary_host {
name: "get_clang_version",
main: "get_clang_version.py",
srcs: [
"get_clang_version.py",
],
}
python_binary_host {
name: "build-apex-bundle",
main: "build-apex-bundle.py",
srcs: [
"build-apex-bundle.py",
],
required: [
"bundletool",
],
}
sh_binary_host {
name: "list_image",
src: "list_image.sh",
}
filegroup {
name: "rustfmt.toml",
srcs: ["rustfmt.toml"],
visibility: ["//visibility:public"],
}