commit | ffa89fd0a094d58bc548aa024e54e3fd35ae69c2 | [log] [tgz] |
---|---|---|
author | Paul Duffin <paulduffin@google.com> | Wed Mar 16 13:06:42 2022 +0000 |
committer | Paul Duffin <paulduffin@google.com> | Wed Mar 23 15:45:15 2022 +0000 |
tree | eac27349be03fe8e5607e62ed621bf20fdf8b431 | |
parent | 726f9ab1bfff7e727dd2abd7fa6fc99cf7339e31 [diff] |
Generate sdk snapshots for the R build This change replicates the behavior of the generate_ml_bundle.sh that creates an Android.bp file along with the necessary file structure for an R build. It adds the information needed to a ForRBuild object which is set on those MainlineModules that need to provide SDKs for R. That includes a list of SdkLibrary objects each of which has a name and a flag that indicates whether it is a shared library. The R BuildRelease creator function builds the sdk snapshots as normal and then extracts information from those snapshot files to construct snapshots suitable for an R build. It then passes the directory containing those new snapshot files to populate_dist() which will then copy them into the correct location in the dist directory. For each MainlineModule that provides an SDK for R the following is created in the out/soong/mainline-sdks/for-R-build directory: * A sub-directory using the apex name containing: * An Android.bp file with definitions for each SdkLibrary. * A file structure containing API txt file, removed API txt file, a srcjar containing the stub sources and a stubs jar. * A zip file containing the contents of the previous directory whose name is <sdk-name>-current.zip, to match the files that are generated by Soong when building sdk snapshots. As R does not support the Soong config boilerplate code that transformation is disabled for R. Test: atest --host mainline_modules_sdks_test packages/modules/common/build/mainline_modules_sdks.sh pyformat -s 4 --force_quote_type double -i build/mainline_modules_sdks*.py /usr/bin/pylint --rcfile $ANDROID_BUILD_TOP/tools/repohooks/tools/pylintrc build/mainline_modules_sdks*.py Change-Id: I70001782496a3e9805bf56181c0e08419e31e191
This project includes mainline build and other utility code. Any library code intended for use by modules should go in frameworks/libs/modules-utils
instead.
This project uses a single source path for java code. All java code should go in the java
directory with subdirectories corresponding to the java package. Android.bp
files should go alongside the java source files, and should only include java source for a single java package to encourage good code hygiene.
Tests for java code should go in the javatests
directory and follow the same structure.