forked from openkylin/platform_build
Add new user setup command banchan for module building.
It currently uses TARGET_BUILD_APPS just like tapas, but the use case is different and it may diverge more in the future. Test: banchan com.android.art Test: banchan help Test: banchan Test: hmm Bug: 179779520 Change-Id: Iae718e65a2a7212c741c397e03c6f9a6d5ee8951
This commit is contained in:
parent
5f2d88bee8
commit
f692c756f7
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# locate some directories
|
||||||
|
cd "$(dirname $0)"
|
||||||
|
SCRIPT_DIR="${PWD}"
|
||||||
|
cd ../..
|
||||||
|
TOP="${PWD}"
|
||||||
|
|
||||||
|
message='usage: banchan <module> ... [arm|x86|arm64|x86_64] [eng|userdebug|user]
|
||||||
|
|
||||||
|
banchan selects individual APEX modules to be built by the Android build system.
|
||||||
|
Like "tapas", "banchan" does not request the building of images for a device but
|
||||||
|
instead configures it for an unbundled build of the given modules, suitable for
|
||||||
|
installing on any api-compatible device.
|
||||||
|
|
||||||
|
The difference from "tapas" is that "banchan" sets the appropriate products etc
|
||||||
|
for building APEX modules rather than apps (APKs).
|
||||||
|
|
||||||
|
The module names should match apex{} modules in Android.bp files, typically
|
||||||
|
starting with "com.android.".
|
||||||
|
|
||||||
|
The usage of the other arguments matches that of the rest of the platform
|
||||||
|
build system and can be found by running `m help`'
|
||||||
|
|
||||||
|
echo "$message"
|
55
envsetup.sh
55
envsetup.sh
|
@ -9,6 +9,9 @@ Invoke ". build/envsetup.sh" from your shell to add the following functions to y
|
||||||
build, and stores those selections in the environment to be read by subsequent
|
build, and stores those selections in the environment to be read by subsequent
|
||||||
invocations of 'm' etc.
|
invocations of 'm' etc.
|
||||||
- tapas: tapas [<App1> <App2> ...] [arm|x86|arm64|x86_64] [eng|userdebug|user]
|
- tapas: tapas [<App1> <App2> ...] [arm|x86|arm64|x86_64] [eng|userdebug|user]
|
||||||
|
Sets up the build environment for building unbundled apps (APKs).
|
||||||
|
- banchan: banchan <module1> [<module2> ...] [arm|x86|arm64|x86_64] [eng|userdebug|user]
|
||||||
|
Sets up the build environment for building unbundled modules (APEXes).
|
||||||
- croot: Changes directory to the top of the tree, or a subdirectory thereof.
|
- croot: Changes directory to the top of the tree, or a subdirectory thereof.
|
||||||
- m: Makes from the top of the tree.
|
- m: Makes from the top of the tree.
|
||||||
- mm: Builds and installs all of the modules in the current directory, and their
|
- mm: Builds and installs all of the modules in the current directory, and their
|
||||||
|
@ -791,6 +794,58 @@ function tapas()
|
||||||
destroy_build_var_cache
|
destroy_build_var_cache
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Configures the build to build unbundled Android modules (APEXes).
|
||||||
|
# Run banchan with one or more module names (from apex{} modules).
|
||||||
|
function banchan()
|
||||||
|
{
|
||||||
|
local showHelp="$(echo $* | xargs -n 1 echo | \grep -E '^(help)$' | xargs)"
|
||||||
|
local arch="$(echo $* | xargs -n 1 echo | \grep -E '^(arm|x86|arm64|x86_64)$' | xargs)"
|
||||||
|
local variant="$(echo $* | xargs -n 1 echo | \grep -E '^(user|userdebug|eng)$' | xargs)"
|
||||||
|
local apps="$(echo $* | xargs -n 1 echo | \grep -E -v '^(user|userdebug|eng|arm|x86|arm64|x86_64)$' | xargs)"
|
||||||
|
|
||||||
|
if [ "$showHelp" != "" ]; then
|
||||||
|
$(gettop)/build/make/banchanHelp.sh
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $(echo $arch | wc -w) -gt 1 ]; then
|
||||||
|
echo "banchan: Error: Multiple build archs supplied: $arch"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
if [ $(echo $variant | wc -w) -gt 1 ]; then
|
||||||
|
echo "banchan: Error: Multiple build variants supplied: $variant"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
if [ -z "$apps" ]; then
|
||||||
|
echo "banchan: Error: No modules supplied"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local product=module_arm
|
||||||
|
case $arch in
|
||||||
|
x86) product=module_x86;;
|
||||||
|
arm64) product=module_arm64;;
|
||||||
|
x86_64) product=module_x86_64;;
|
||||||
|
esac
|
||||||
|
if [ -z "$variant" ]; then
|
||||||
|
variant=eng
|
||||||
|
fi
|
||||||
|
|
||||||
|
export TARGET_PRODUCT=$product
|
||||||
|
export TARGET_BUILD_VARIANT=$variant
|
||||||
|
export TARGET_BUILD_DENSITY=alldpi
|
||||||
|
export TARGET_BUILD_TYPE=release
|
||||||
|
|
||||||
|
# This setup currently uses TARGET_BUILD_APPS just like tapas, but the use
|
||||||
|
# case is different and it may diverge in the future.
|
||||||
|
export TARGET_BUILD_APPS=$apps
|
||||||
|
|
||||||
|
build_build_var_cache
|
||||||
|
set_stuff_for_environment
|
||||||
|
printconfig
|
||||||
|
destroy_build_var_cache
|
||||||
|
}
|
||||||
|
|
||||||
function gettop
|
function gettop
|
||||||
{
|
{
|
||||||
local TOPFILE=build/make/core/envsetup.mk
|
local TOPFILE=build/make/core/envsetup.mk
|
||||||
|
|
Loading…
Reference in New Issue