| #!/bin/bash |
| |
| # Copyright (C) 2024 The Android Open Source Project |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| # Common script utilities |
| source $(cd $(dirname $BASH_SOURCE) &> /dev/null && pwd)/../../make/shell_utils.sh |
| source $ANDROID_BUILD_TOP/vendor/lineage/build/soong/bin/hmm |
| |
| cat <<EOF |
| |
| Run "m help" for help with the build system itself. |
| |
| Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment: |
| - lunch: lunch <product_name>-<release_type>-<build_variant> |
| Selects <product_name> as the product to build, and <build_variant> as the variant to |
| build, and stores those selections in the environment to be read by subsequent |
| invocations of 'm' etc. |
| - 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|riscv64|x86_64|arm64_only|x86_64only] [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. |
| - m: Makes from the top of the tree. |
| - mm: Builds and installs all of the modules in the current directory, and their |
| dependencies. |
| - mmm: Builds and installs all of the modules in the supplied directories, and their |
| dependencies. |
| To limit the modules being built use the syntax: mmm dir/:target1,target2. |
| - mma: Same as 'mm' |
| - mmma: Same as 'mmm' |
| - provision: Flash device with all required partitions. Options will be passed on to fastboot. |
| - cgrep: Greps on all local C/C++ files. |
| - ggrep: Greps on all local Gradle files. |
| - gogrep: Greps on all local Go files. |
| - jgrep: Greps on all local Java files. |
| - jsongrep: Greps on all local Json files. |
| - ktgrep: Greps on all local Kotlin files. |
| - resgrep: Greps on all local res/*.xml files. |
| - mangrep: Greps on all local AndroidManifest.xml files. |
| - mgrep: Greps on all local Makefiles and *.bp files. |
| - owngrep: Greps on all local OWNERS files. |
| - rsgrep: Greps on all local Rust files. |
| - sepgrep: Greps on all local sepolicy files. |
| - sgrep: Greps on all local source files. |
| - tomlgrep: Greps on all local Toml files. |
| - pygrep: Greps on all local Python files. |
| - godir: Go to the directory containing a file. |
| - allmod: List all modules. |
| - gomod: Go to the directory containing a module. |
| - pathmod: Get the directory containing a module. |
| - outmod: Gets the location of a module's installed outputs with a certain extension. |
| - dirmods: Gets the modules defined in a given directory. |
| - installmod: Adb installs a module's built APK. |
| - refreshmod: Refresh list of modules for allmod/gomod/pathmod/outmod/installmod. |
| - syswrite: Remount partitions (e.g. system.img) as writable, rebooting if necessary. |
| |
| EOF |
| |
| __print_lineage_functions_help |
| |
| cat <<EOF |
| |
| Environment options: |
| - SANITIZE_HOST: Set to 'address' to use ASAN for all host modules. |
| - ANDROID_QUIET_BUILD: set to 'true' to display only the essential messages. |
| |
| Look at the source to view more functions. The complete list is: |
| EOF |
| T=$(gettop) |
| A="" |
| for i in `cat $T/build/envsetup.sh $T/vendor/lineage/build/envsetup.sh | sed -n "/^[[:blank:]]*function /s/function \([a-z_]*\).*/\1/p" | sort | uniq`; do |
| A="$A $i" |
| done |
| echo $A |
| |