aboutsummaryrefslogtreecommitdiffstats
path: root/Android.bp
Commit message (Collapse)AuthorAgeFilesLines
* Add basic tests for java modulesColin Cross2017-07-191-0/+3
| | | | | | | | Java modules have been unused for a few years, add a few very basic tests to exercise the modules as they are brought up to date. Test: java_test.go Change-Id: Ib23fc065674a61308333130ff1a992525b92e705
* Install VNDK libs in /system instead of /vendorJustin Yun2017-07-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | If BOARD_VNDK_VERSION is set, and a module is set to `vendor_available: true` it is installed in /system and /vendor. However, if the module is a VNDK library, it must be installed at `/system/${LIB}/vndk` instead of /vendor/${LIB}. For those modules, need following to set. vendor_available: true, vndk: { enabled: true, support_system_process: true, }, `support_system_process` is optional to define. If it is defined to true, the module is regarded as vndk-sp. link-type check for VNDK modules is added to make sure that VNDK modules only link to other VNDK shared libraries or LL-NDKs. move the ABI checks to VNDK from all of vendor_available. Bug: 38304436 Test: attempt to compile with BOARD_VNDK_VERSION:=current Test: Use `vendor_available_vndk: true` for VNDK modules and compile with BOARD_VNDK_VERSION:=current Change-Id: I409268e0b7f05a9d01697bf9f9f4726b5aac631f
* Add integration testing infrastructureColin Cross2017-07-141-0/+1
| | | | | | | | | | | | | | | | | | | | | Fix mutator registration for tests to allow different tests in the same package to register different mutators. Allow tests to track the resulting ModuleBuildParams objects to use in assertions, and provide helpers for getting them. For example: config := android.TestConfig(buildDir) ctx := android.NewTestContext() ctx.RegisterModuleType(...) ctx.MockFileSystem(...) ctx.ParseBlueprintsFile("Android.bp") ctx.PrepareBuildActions(config) ctx.Register() // Get the Inputs value passed to the javac rule for the foo module inputs := ctx.ModuleForTests("foo".Rule("javac").Inputs Test: java_test.go Change-Id: I10c82967f5f3586d2c176f169906b571ed82fc73
* add device_kernel_headers module for vendor-specific kernel headersJiyong Park2017-07-081-0/+7
| | | | | | | | | | | | | | | | | | | | | | device_kernel_headers is a built-in heder-only lib that provides device-specific kernel headers. The header path is configured via a new product variable SystemIncludeDirs, which is currently the mirror of TARGET_PROJECT_SYSTEM_INCLUDES in the make world. Note: generic kernel headers (bionic/libc/kernel) have been added to the include path by default. "device_kernel_headers" module is for device-specific kernel headers such as /device/*/*/kernel-headers. Note 2: this is opt-in for Android.bp modules (i.e. header_libs : ["device_kernel_headers"] required.) while it is always provided to Android.mk modules. Bug: 62939405 Test: choosecombo to aosp_sailfish (or any other Pixel/Nexus targets) BOARD_VNDK_VERSION=current m -j gralloc.msm8996 (or any other vendor libs using vendor-specific kernel headers) Change-Id: I81c60abc13942c89fff723d1544b27a81b300db0
* Add java config and share it with makeColin Cross2017-06-231-0/+14
| | | | | | | | Add a java/config package to hold config information, and share it with make through makevars. Test: builds Change-Id: I46c088bda0fe97a1823bfdd80fa692d0bf61da1b
* Revert "Revert "Initial implementation of bpfix""Jeff Gaston2017-06-191-0/+1
| | | | | | | | | Bug: 38351765 Test: bpfix Android.bp This reverts commit a8cc9c53fa5eb7004bc07c5c0ca8613761afd49b. Change-Id: I60f02a8dd920346aa17b9044f834ffe94fa693c6
* Have Soong try to enforce that genrules declare all their outputs.Jeff Gaston2017-06-091-12/+9
| | | | | | | | | | | This causes Soong to put the outputs of each genrule into a temporary location and copy the declared outputs back to the output directory. This gets the process closer to having an actual sandbox. Bug: 35562758 Test: make Change-Id: I8048fbf1a3899a86fb99d71b60669b6633b07b3e
* Revert "Initial implementation of bpfix"Jeff Gaston2017-05-261-1/+0
| | | | | | | | This reverts commit de4b0463f220c069af1aa10d594b39ceafdfa78b. Reason for revert: postsubmit build broken Change-Id: If68a4af22e517b7be0876343a81c1319fa4d7046
* Initial implementation of bpfixJeff Gaston2017-05-241-0/+1
| | | | | | | Bug: 38351765 Test: bpfix Android.bp Change-Id: Ia94602f93bc40db3d006174c39102ac5fd29a64c
* Add python_test_host module.Nan Zhang2017-05-171-0/+3
| | | | | | bug: 31676493 Test: created py_test modules in real folder. and ran 'mma'. Change-Id: I22aa2fad74b11e4a31ea7a4c4a4f0ea64cd3fc94
* Support .rs and .fs files in cc_* module srcs listsColin Cross2017-05-051-0/+1
| | | | | | | Translate .rs and .fs files to .cpp files using llvm-rs-cc. Test: builds Change-Id: I242cea0d09c9985730a512cec7705c3f1479f4ed
* Support %s in product variable propertiesColin Cross2017-05-051-0/+1
| | | | | | | | Support using strings as product variable substitutions, and add tests for printfIntoProperty. Test: varaible_test.go Change-Id: I06cfadfb1d3fc81da72fb71323706df20426c8b7
* Supported python build in host side.Nan Zhang2017-05-051-0/+19
| | | | | | | | | | | | | | | The base module handles all the common functionalites, such as version compatibilty check, version variations split, source file format check, source/data file duplicate check. The library/binary module focuses on how to generate binary build actions, such as setting up stub script, zipping, filling in __init__.py in runfiles dir tree. Bug: b/31676493 Test: go test under python package Change-Id: I06608369f350f7195873d459e1c8d1bdb811e77e
* Add header-abi-checker for Vndk abi checks.Jayant Chowdhary2017-04-141-0/+1
| | | | | | | | | | | | | | | | header-abi-dumper: dumps abi exported by source files for Vndk. header-abi-linker: links abi dumps produced by header-abi-dumper. header-abi-diff: compares linked dumps. Test: mm -j64 showcommands > make_log in bionic/libc. This produced linked dumps in out/soong/.intermediates. Copied these dumps to prebuilts/abi-dumps/ndk/current/arm64/source-based/. Changed the abi and re-ran mm -j64 showcommands > make_log confirmed that the build reported compatibility breakge without actually failing (advisory mode). Change-Id: Iccad6908fe68a80f47230751671d156893b96ead
* Split /system and /vendor modules, allow multi-installationDan Willemsen2017-04-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Nothing changes if BOARD_VNDK_VERSION isn't set. When the VNDK is enabled (BOARD_VNDK_VERSION in Make), this will split /system and /vendor modules into two different variant spaces that can't link to each other. There are a few interfaces between the two variant spaces: The `llndk_library` stubs will be available in the /vendor variant, but won't be installed, so at runtime the /system variant will be used. Setting `vendor_available: true` will split a module into both variants. The /system (or "core") variant will compile just like today. The /vendor ("vendor") variant will compile against everything else in the vendor space (so LL-NDK instead of libc/liblog/etc). There will be two copies of these libraries installed onto the final device. Since the available runtime interfaces for vendor modules may be reduced, and your dependencies may not expose their private interfaces, we allow the vendor variants to reduce their compilation set, and export a different set of headers: cc_library { name: "libfoo", srcs: ["common.cpp", "private_impl.cpp"], export_include_dirs: ["include"], target: { vendor: { export_include_dirs: ["include_vndk"], exclude_srcs: ["private_impl.cpp"], srcs: ["vendor_only.cpp"], }, }, } So the "core" variant would compile with both "common.cpp" and "private_impl.cpp", and export "include". The "vendor" variant would compile "common.cpp" and "vendor_only.cpp", and export "include_vndk". Bug: 36426473 Bug: 36079834 Test: out/soong/build.ninja, out/soong/Android- only changes due to _core addition and .llndk -> .vendor Test: attempt to compile with BOARD_VNDK_VERSION:=current Change-Id: Idef28764043bf6c33dc0d2e7e2026c38867ff769
* Add LLNDK support for the VNDKDan Willemsen2017-04-071-0/+2
| | | | | | | | | | | Instead of using the NDK headers and libraries, add LL-NDK specific headers and library stubs for VNDK users. This allows us to provide an expanded liblog interface. Test: aosp_arm; m -j Test: Enable BOARD_VNDK_VERSION on aosp_arm; m -j Test: Inspect out/soong/build.ninja before/after (w/o vndk) Change-Id: Ic85f07fa10c695b5baab10c41f5e0ad38700bf3d
* Generate file to map codenames to API levels.Dan Albert2017-03-311-0/+1
| | | | | | | | | | | The NDK stub library generator needs to know what unreleased API levels exist and what the ordering is between them. This singleton will later be expanded to generate api-level.h to cut down on duplication. Test: make out/soong/api_levels.json && cat out/soong/api_levels.json Bug: None Change-Id: I53126dd2cacb67c331c44f7d7c77c98b176b93cd
* Revert "install *.so in different paths for their types"Dan Willemsen2017-03-161-2/+0
| | | | | | | | | This reverts commit 4c48f724e1b339128447ab1dafd656a9557557f5. It's causing test failures, warnings and complaints, so backing it out and we'll resolve those before putting it back in. Bug: 33681361 Test: m -j
* Add LinuxBionic toolchain and switchDan Willemsen2017-03-151-0/+1
| | | | | | | | | | | | | | | | This adds a toolchain definition for LinuxBionic that only supports Clang/64-bit. It pulls pieces from the x86_linux_host and x86_64_device configs, and uses the android clang triple, with some manual overrides. To enable building this, set your soong.config file to: {"Host_bionic": true} Bug: 31559095 Test: out/soong/{Android,make-vars}-aosp_arm64.mk the same with or without host bionic turned on Test: No change to out/soong/build.ninja before/after this change Change-Id: Id97dda8bd9aa670c32aed31fbe6aaa8175e70b59
* install *.so in different paths for their typesJiyong Park2017-03-141-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Shared libraries are now installed to different directories depending on their types. * NDK libraries: /system/lib/ndk * VNDK libraries: /system/lib/vndk * VNDK-ext libraries: /system/lib/vndk-ext * Framework-only libraries: /system/lib * Vendor-only libraries: /vendor/lib * Same-process HALs: /vendor/lib/sameprocess In addition, a new module type vndk_ext_library is added. It is almost identical to cc_shared_library but it introduces another attribute 'extends'. This is use to reference the vndk library that this vndk-ext library is extending. For example, in order to extend a vndk library libFoo: cc_library { name: "libFoo", srcs: [...] } --------------------- vndk_ext_library { name: "libFoo-extended", srcs: [...] extends: "libFoo" } Then, libFoo will be installed as /system/lib/vndk/libFoo.so and libFoo-extended will be installed as /system/lib/vndk-ext/libFoo.so. Note that file name of the latter is libFoo.so, not libFoo-extended.so: file name of an extending module is automatically set to that of the extended module. Bug: 33681361 Test: build & run. Libraries must be in the correct directories. Change-Id: Ia1eb3940605d582a252c78da0f3a5b36fdab062b
* Add libwinpthread, link it into win32 binaries.Josh Gao2017-02-231-0/+11
| | | | | | | Bug: http://b/31665213 Test: wine adb.exe Test: wine fastboot.exe Change-Id: I6d6ff69f0c016e2654119a09161685841cbccc7e
* Native Coverage support in Soong (gcov)Dan Willemsen2017-02-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is configured the same as make -- a global NATIVE_COVERAGE=true flag to allow native coverage, then COVERAGE_PATHS=path1,path2,... to turn it on for certain paths. There are .gcnodir files exported to Make and saved in $OUT/coverage/... files which are `ar` archives containing all of the compiler-produced .gcno files for a particular executable / shared library. Unlike the Make implementation, this only passes links the helper library (automatically through --coverage) when one of the object files or static libraries being used actually has coverage enabled. Host support is currently disabled, since we set -nodefaultlibs, which prevents libclang_rt.profile-*.a from being picked up automatically. Bug: 32749731 Test: NATIVE_COVERAGE=true COVERAGE_PATHS=system/core/libcutils m -j libbacktrace libutils tombstoned $OUT/coverage/system/lib*/libcutils.gcnodir looks correct (self) $OUT/coverage/system/lib*/libbacktrace.gcnodir looks correct (static) $OUT/coverage/system/lib*/libutils.gcnodir doesn't exist (shared) $OUT/coverage/system/bin/tombstoned.gcnodir looks correct (executable) Test: NATIVE_COVERAGE=true COVERAGE_PATHS=external/libcxxabi m -j libc++ Confirm that $OUT/coverage/system/lib*/libc++.gcnodir looks correct (whole_static_libs) Change-Id: I48aaa0ba8d76e50e9c2d1151421c0c6dc8ed79a9
* Add support for CMakefile generationFabien Sanglard2017-02-071-0/+1
| | | | | | Test: Manually generated CMakeLists.txt for gui/ui/aapt2. Change-Id: I7dedc300c1e50b8e39bc58091b650c0bbe2c62da
* Added phony module type for soong.Nan Zhang2017-02-061-0/+13
| | | | | | | | | The "required" field within "phony" module in .bp file has to be non-empty. And "phony" module doesn't contain any "src" files. Bug: b/32981153 Test: make -j out/soong/build.ninja Change-Id: Iaa2009467c44702572b97ca9cbd02c1d368c8d83
* Add a Go replacement for our top-level Make wrapperDan Willemsen2017-02-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now this mostly just copies what Make is doing in build/core/ninja.mk and build/core/soong.mk. The only major feature it adds is a rotating log file with some verbose logging. There is one major functional difference -- you cannot override random Make variables during the Make phase anymore. The environment variable is set, and if Make uses ?= or the equivalent, it can still use those variables. We already made this change for Kati, which also loads all of the same code and actually does the build, so it has been half-removed for a while. The only "UI" this implements is what I'll call "Make Emulation" mode -- it's expected that current command lines will continue working, and we'll explore alternate user interfaces later. We're still using Make as a wrapper, but all it does is call into this single Go program, it won't even load the product configuration. Once this is default, we can start moving individual users over to using this directly (still in Make emulation mode), skipping the Make wrapper. Ideas for the future: * Generating trace files showing time spent in Make/Kati/Soong/Ninja (also importing ninja traces into the same stream). I had this working in a previous version of this patch, but removed it to keep the size down and focus on the current features. * More intelligent SIGALRM handling, once we fully remove the Make wrapper (which hides the SIGALRM) * Reading the experimental binary output stream from Ninja, so that we can always save the verbose log even if we're not printing it out to the console Test: USE_SOONG_UI=true m -j blueprint_tools Change-Id: I884327b9a8ae24499eb6c56f6e1ad26df1cfa4e4
* Support data properties for test binariesColin Cross2017-02-021-0/+1
| | | | | | | | | | | Allow tests to specify a data property that lists files or filegroup modules that will be packaged alongside the test. Also add a path property to filegroup modules to allow shifting the path of the packaged files, and add ExpandSourcesSubDir to expand the filegroup sources while including a shifted relative path in the Paths objects. Test: soong tests, manually adding data to a module Change-Id: I52a48942660e12755d313ef13279313361b4fc35
* Support filegroupsColin Cross2016-12-171-0/+1
| | | | | | | | | | filegroup is a module that contains a list of files, and can be used to export files across package boundaries. filegroups (and genrules) can be referenced from srcs properties of other modules using the syntax ":module". Test: m -j Change-Id: I3d6fc4819c0b4225b474e0ad42f0d947f55a5961
* Add Toolchain.Bionic()Dan Willemsen2016-11-171-0/+3
| | | | | | | | | | Move some cc ctx.Host() / ctx.Device() checks over to using ctx.toolchain().Bionic(). There will be more changes, these are just the obvious ones dealing with host_ldlibs / crt / system libraries. Bug: 31559095 Test: out/soong/build.ninja is identical Change-Id: Ibba60483b4ab0e01f6996eb7d883120e4acc1830
* Add LinuxBionic OsTypeDan Willemsen2016-11-171-0/+17
| | | | | | | | Actual support will come in later changes. Bug: 31559095 Test: out/soong/build.ninja is identical Change-Id: I31392fb78a51f43567d16aef89e32cd5137cdbc1
* Add android.ExpandColin Cross2016-11-041-0/+2
| | | | | | | | Add android.Expand to expand $() variables in properties. Test: expand_test Bug: 31948427 Change-Id: Id30856a1d21d02e8997fcf2358e4a5feeede05be
* Move globbing to BlueprintColin Cross2016-11-041-15/+0
| | | | | | | | | | | | Move Soong's globbing-with-dependencies support into Blueprint so it can be used for subdirs= lines in Android.bp files. Blueprint has a slight change in behavior around subname= lines, it now always uses the subname and doesn't fall back to Blueprints. To support the Blueprints files in build/blueprint, use them directly with build=. Test: build, add source file that matches glob, rebuild Change-Id: Ifd0b0d3bc061aae0a16d6c7ca9a1cd8672656b4d
* Add clang-tidy supportDan Willemsen2016-10-311-0/+5
| | | | | | | | | | | | | | | | For every file which we can run clang-tidy (C/C++ clang-built), we add a new build node that depends on the object file (since clang-tidy does not export a depfile), and is depended on by the link step. This is better than how we're doing it in make, since calling tidy can be turned on or off without needing to rebuild the object files. This does not attempt to port WITH_TIDY_ONLY from Make, since the way that it works is broken (due to the lack of a depfile). Bug: 32244182 Test: WITH_TIDY=true mmma -j bionic/libc Test: ./soong (Setting ClangTidy: true) Change-Id: I40bbb5bb00d292d72bf1c293b93080b5f9f6d8ea
* Add support for .proto filesColin Cross2016-10-271-0/+1
| | | | | | | | | .proto files are translated to .pb.cc and .pb.h files, which are then compiled normally. Bug: 32286026 Test: mmma -j system/extras/perfprofd Change-Id: I538071424d667aacf35b4b8bfebe217f5f092726
* Re-enable prebuilt_testColin Cross2016-10-141-1/+1
| | | | | | | | | | | Use a temporary directory as the build directory during tests so files don't get written to the source tree. Also add a few more tests for prebuilts with no file specified. Bug: 31800129 Test: m -j, make sure .soong.environment is not written to the source tree Change-Id: I623bc114b2ff534c8df9fb3ce273e804711f8f05
* Disable prebuilt_testColin Cross2016-10-131-1/+1
| | | | | | | | | | The prebuilt tests are accidentally writing a .soong.environment file to the build/soong/android directory, disable them until TestConfig() is fixed to prevent writing to the source tree. Bug: 31800129 Test: m -j, make sure .soong.environment is not written to the source tree Change-Id: I3b7d47e42111ecababe275b7a9ff0d08bcebfc7a
* Initial prebuilt supportColin Cross2016-10-131-0/+3
| | | | | | | | | | Support prebuilt shared libraries as an initial proof-of-concept of prebuilts. Future changes will support binaries and static libraries, and the ability to select which to use based on something besides blueprint properties. Test: TestPrebuilts run during m -j Change-Id: I6e84da667e9005ae11844bad01d25cbe4ced1ce3
* Move registration into android packageandroid-n-mr1-preview-2android-n-mr1-preview-1Colin Cross2016-10-121-1/+1
| | | | | | | | Mutator registration is tightly coupled with the android package, move all registration from the soong package to the android package. Test: build.ninja identical Change-Id: Ie183d0b52cc7431c9e05b231934d189208ef1efe
* Add Relocation Packer supportDan Willemsen2016-09-151-0/+1
| | | | | | | This only applies to shared libraries on the device, and like stripping, we'll let make do the actual packing if we're embedded in Make. Change-Id: I1585d74ecfc41e18dcbb5ffb70005adf007cc941
* Replace PropertyCustomizer with hooksColin Cross2016-09-131-1/+1
| | | | | | | | | | | | | | Replace PropertyCustomizer with a more extensible hooks mechanism. Instead of passing an object that satisifies an interface, pass a function pointer that takes a context interface as an argument. Callers can use lambdas to capture any other necessary parameters like property structs. Also add two new hooks, arch hooks that occur after splitting modules into arch variants, and install hooks that occur each time a file is installed to the output directory. Change-Id: I3a3e34aa97f1a92d3a31e5004b4b1ba68869d242
* Move Android.bp definitions into subdirsDan Willemsen2016-08-251-87/+5
| | | | | Test: m blueprint_tools still produces the same tools Change-Id: Ia1e2e43c62cb6035616bef9fbef56417b46cf3a4
* Add PropertyCustomizerColin Cross2016-08-221-0/+1
| | | | | | | | | | Allow any module factory to insert a PropertyCustomizer on the module, which will be called before any other mutators. The PropertyCustomizer can append or prepend to any properties, allowing module types to extend other module types by modifying the public, stable interface provided by the properties. Change-Id: Idff02be80d939a70df1c6bbccffdd1f04ff975d2
* Add DeviceConfig and OncePer objectsColin Cross2016-08-171-0/+1
| | | | | | | | | Add DeviceConfig to store per-device configuration information. Put a OncePer object inside Config and DeviceConfig, which computes a value once per key per object to allow build logic to store arbitrary per-build or per-device computed values. Change-Id: I1a38b426f29d223ef5e803e0d4d9604500de2fd2
* Rename soong_jar to soong_zipDan Willemsen2016-08-111-3/+3
| | | | | | | This is a general purpose tool that happens to contain some jar specific features. Change-Id: I05f4654d4517c245ad7a3c15492e0d2368bbf64f
* soong_jar: Parallel compressionDan Willemsen2016-08-111-0/+2
| | | | | | | | | | | | | | | | | This compresses multiple files in parallel, and will split up larger files (5MB+) into smaller chunks (1MB) to compress in parallel. There is a small size overhead to recombine the chunks, but it's only a few bytes per chunk, so for a 1MB chunk, it's minimal. Rough numbers, with everything in the page cache, this can compress ~4GB (1000 files) down to 1GB in 6.5 seconds, instead of 120 seconds with the non-parallel soong_jar and 150 seconds with zip. Go's DEFLATE algorithm is still a bit worse than zip's -- about 3.5% larger file sizes, but for most of our "dist" targets that is fine. Change-Id: Ie4886c7d0f954ace46e599156e35fea7e74d6dd7
* Add zip2zip tool to copy zip entries from one file to anotherDan Willemsen2016-08-101-0/+10
| | | | | | | | | | | | | | | | This doesn't do any decompression / recompression, but just copies over the already compressed contents. So it's similar to zip -U, but allows rewriting of the paths. The first expected usecase is to replace img_from_target_files during the build, since it does the equivalent of this: zip2zip -i <target-files.zip> -o <img.zip> OTA/android-info.txt:android-info.txt IMAGES/*:. Except it decompresses and recompresses the images, which takes over a minute instead of a few seconds. Change-Id: I88d0df188635088783223873f78e193272dbdf1c
* Refactor cc modules to use decorators instead of inheritanceColin Cross2016-08-051-0/+1
| | | | | | | | | For example , instead of trying to have libraryLinker inherit from baseLinker and libraryCompiler inherit from baseCompiler, create a single decorator object that wraps both baseLinker and baseCompiler. Test: Builds, no unexpected changes to build.ninja Change-Id: I2468adaea8466c203a240259ba5694b8b1df7a52
* Move toolchain and global variables into separate packageColin Cross2016-08-011-14/+25
| | | | | | Move all of the configuration into a cc/config package Change-Id: If56fc7242062ed1ce3cb297f78a1e0ef7537373c
* Separate cc.goColin Cross2016-07-291-0/+12
| | | | | | | Split cc.go into files per module type, plus files for the compiler, linker, and installer stages. Change-Id: Id44c03f42fcd180950ccd008d4de0c144ea3597b
* Generate NDK sysroots from the platform build.Dan Albert2016-07-281-0/+4
| | | | | | | | | | | The list of migrated libraries is currently empty. Libraries will be migrated as follow up patches. Test: Migrated libc to this system and everything still builds. build.ninja shows libraries being built and used and headers are collected for the sysroot. Bug: http://b/27533932 Change-Id: Iaba00543c1390f432befe0eed768ed3fbb8a9b96
* Rename androidmk/test.go so go test can find itColin Cross2016-06-081-1/+1
| | | | Change-Id: If18c749fe9bc883552952284a469ea8e8f3e8f6d