commit | 51512c558cb0f9ae414dd20cb2591d679aea1f02 | [log] [tgz] |
---|---|---|
author | Vic Yang <victoryang@google.com> | Mon Nov 12 20:16:26 2018 -0800 |
committer | Vic Yang <victoryang@google.com> | Wed Mar 20 10:23:04 2019 -0700 |
tree | 129e42be67dc388b3e633e27219aa9e75bb5514c | |
parent | 1b83413b5a765204e3def88ab758139df27123c2 [diff] |
Add support for no-vendor-variant VNDK When TARGET_VNDK_USE_CORE_VARIANT is set to true, the vendor variant of VNDK libraries are by default not installed. Instead, the core variant will be used by vendor binaries at runtime. To ensure the core variant of VNDK libraries are installed, we also add a flag LOCAL_VNDK_DEPEND_ON_CORE_VARIANT to indicate that the vendor variant module depends on the core variant module. This flag should be set by Soong for all VNDK libraries without the vendor variant installed. When the flag is set, the vendor variant binary is also compared against the core variant binary to ensure they are functionally identical. As we are merging the two variants for some libraries, we need a new link type to denote a module is usable as both native:vndk and native:platform. We add native:platform_vndk for this. Bug: 119423884 Test: With the corresponding Soong change, build with TARGET_VNDK_USE_CORE_VARIANT set to true. Test: Add a dummy VNDK library and a dummy vendor binary that depends on it. Build with no-vendor-variant VNDK and check the core variant is installed. Test: Add conditional compilation based on __ANDROID_VNDK__ in the dummy VNDK library and check build fails. Change-Id: I40000f2728e8193212113c1ee950e9d697f2d40d
This is the Makefile-based portion of the Android Build System.
For documentation on how to run a build, see Usage.txt
For a list of behavioral changes useful for Android.mk writers see Changes.md
For an outdated reference on Android.mk files, see build-system.html. Our Android.mk files look similar, but are entirely different from the Android.mk files used by the NDK build system. When searching for documentation elsewhere, ensure that it is for the platform build system -- most are not.
This Makefile-based system is in the process of being replaced with Soong, a new build system written in Go. During the transition, all of these makefiles are read by Kati, and generate a ninja file instead of being executed directly. That's combined with a ninja file read by Soong so that the build graph of the two systems can be combined and run as one.