platform_build_soong/cc
Logan Chien f351174107 Support VNDK extensions
This commit adds `extends: "name"` property and provides basic support
to VNDK extensions.  This is the simplest example:

```
cc_library {
    name: "libvndk",
    vendor_available: true,
    vndk {
        enabled: true,
    },
}

cc_library {
    name: "libvndk_ext",
    vendor: true,
    vndk: {
        enabled: true,
        extends: "libvndk",
    },
}
```

A vndk extension library must extend an existing vndk library which has
`vendor_available: true`.  These two libraries must have the same
`support_system_process` property.

VNDK-ext libraries are installed to `/vendor/lib[64]/vndk` and
VNDK-SP-ext libraries are installed to `/vendor/lib[64]/vndk-sp` by
default.

If there is a matching abi-dumps in `prebuilts/abi-dumps`,
`header-abi-diff` will be invoked to check for ABI breakages.

Bug: 38340960

Test: lunch aosp_walleye-userdebug && make -j8   # runs unit tests

Test: lunch aosp_arm-userdebug && make -j8  # build a target w/o VNDK

Test: Create a lsdump for a vndk lib, add an exported API to vndk lib,
and build fails as expected.

Test: Create a lsdump for a vndk lib, create an vndk extension lib with
extra API, and build succeeds as expected.

Test: Create libutils_ext, add an extra function to libutils_ext, and
call it from a HIDL service.

Change-Id: Iba90e08848ee99814405457f047321e6b52b2df0
2018-01-23 01:40:54 +00:00
..
config Update NdkMaxPrebuiltVersionInt. 2018-01-18 13:25:41 -08:00
androidmk.go Add target_arch to vndk prebuilt module name 2018-01-04 11:02:39 +09:00
binary.go Replace ModuleContext.AConfig() with Config() 2017-11-30 00:44:18 +00:00
builder.go Support VNDK extensions 2018-01-23 01:40:54 +00:00
cc.go Support VNDK extensions 2018-01-23 01:40:54 +00:00
cc_test.go Support VNDK extensions 2018-01-23 01:40:54 +00:00
check.go Allow macro definition with space 2017-10-19 22:39:32 +09:00
cmakelists.go Make *Context.Config return a Config instead of a interface{} 2017-11-30 00:44:11 +00:00
compiler.go Add 'openmp' compiler property 2017-12-19 23:14:19 -08:00
coverage.go Add VisitDirectDepsWithTag 2018-01-02 18:23:43 -08:00
gen.go Switch to build-tools bison 2018-01-08 17:34:47 -08:00
gen_stub_libs.py Ignore 'extern "C++"' section in a version script 2017-11-21 20:31:48 +01:00
gen_test.go Fix using aidl files from filegroups 2017-11-17 11:22:08 -08:00
genrule.go Add cc_genrule 2017-09-18 23:33:25 -07:00
installer.go Change bool, and string properties to *bool, and *string for cc 2017-11-07 15:57:16 -08:00
kernel_headers.go Fix kernel_headers module registration 2017-07-10 12:30:35 -07:00
library.go Support VNDK extensions 2018-01-23 01:40:54 +00:00
library_test.go Add cc_library tests 2017-11-17 11:22:04 -08:00
linker.go Remove no_default_compiler_flags property 2017-11-03 22:28:57 -07:00
llndk_library.go Fix: duplicated definition of llndk_headers module 2017-12-14 21:28:53 +09:00
lto.go Propagate LTO type from binary/DSO to object files 2017-12-12 14:33:45 -08:00
makevars.go Switch back to llvm-ar (with crsD flags only). 2018-01-10 15:57:49 -08:00
ndk_headers.go Wrap PackageContext and SingletonContext 2017-11-29 05:04:30 +00:00
ndk_library.go Add compile-time pathDeps as implicit dependencies 2017-12-19 15:44:38 -08:00
ndk_prebuilt.go Remove support for stlport. 2018-01-05 10:59:33 -08:00
ndk_sysroot.go Allow NDK static libraries to use the NDK sysroot. 2017-12-14 14:13:56 -08:00
object.go Change bool, and string properties to *bool, and *string for cc 2017-11-07 15:57:16 -08:00
pgo.go Update profile_file discovery rules 2018-01-18 10:26:34 -08:00
prebuilt.go Move ModuleContext.ModuleBuild to ModuleContext.Build 2017-10-24 10:59:00 -07:00
proto.go When compiling with the lite protobuf option, pass the option to aprotoc to force the lite runtime. 2017-12-15 08:40:27 -08:00
pylintrc Don't warn for TODOish comments. 2016-08-01 14:36:22 -07:00
relocation_packer.go Replace ModuleContext.AConfig() with Config() 2017-11-30 00:44:18 +00:00
rs.go Add system_$(VER) 2017-12-01 00:41:59 +00:00
sabi.go Convert Visit*Deps from blueprint.Module to android.Module 2017-10-24 13:01:03 -07:00
sanitize.go Fix static_ndk_lib for sanitized libraries. 2018-01-22 12:40:13 -08:00
stl.go Disable availability macros in libc++ on Darwin. 2018-01-11 13:00:46 -08:00
strip.go Replace ModuleContext.AConfig() with Config() 2017-11-30 00:44:18 +00:00
test.go Remove support for gnustl. 2018-01-05 10:59:33 -08:00
test_data_test.go Let tests override environment 2017-10-10 23:28:43 -07:00
test_gen_stub_libs.py Add support for weak symbols in the NDK stubs. 2017-07-28 11:00:22 -07:00
tidy.go Call clang-tidy with -fno-caret-diagnostics by default. 2018-01-04 01:41:16 -08:00
toolchain_library.go Change bool, and string properties to *bool, and *string for cc 2017-11-07 15:57:16 -08:00
util.go Move string list utility functions to android package 2017-12-28 17:41:02 +00:00
vndk.go Support VNDK extensions 2018-01-23 01:40:54 +00:00
vndk_prebuilt.go VNDK snapshot modules must have vndk subdirectory 2018-01-19 12:19:24 +09:00