summaryrefslogtreecommitdiff
path: root/android/variable.go
AgeCommit message (Collapse)Author
2017-05-25Add pdk product variable Colin Cross
The pdk product variable will be set by make when TARGET_BUILD_PDK is set, and can be used to disable modules that won't build in the PDK. Test: builds Bug: 62086238 Change-Id: I2191a57b9b06680fd741308e7464275a89773530
2017-05-20Merge "Add Treble as soong variable." am: a9ec71f54f am: 8fc756987e Steven Moreland
am: b3d3ced720 Change-Id: Icbb81962f6a735c2da22b1d0ee2c4fa8a93d9250
2017-05-19Add Treble as soong variable. Steven Moreland
This exposes PRODUCT_FULL_TREBLE. This is required so that we can add sane defaults to Treble code. Test: manual Bug: 38415912 Change-Id: Ia3ea4aeee799b998380a1600026075dab66286a3
2017-05-08Add product_sdk_version.cflags property am: ceeff0fd39 am: 782f1fe809 Colin Cross
am: bc69b90e3e Change-Id: I1e92ff58a8eecb5c52f76a0426fab615402e3e24
2017-05-08Add product_sdk_version.cflags property Colin Cross
libwilhelm needs PRODUCT_SDK_VERSION=%d. Test: builds Change-Id: Ie3caf9e4fdcb8e241c8743b1675520e93cf20cae
2017-05-06Add a variable to disable modules in the PDK am: b2123aa1df am: dd62f877b6 Colin Cross
am: 89d5ff5865 Change-Id: I39bd7cfba20583487dd0b69a9ef89a610e6f5d02
2017-05-06Support %s in product variable properties am: 7e0eaf15b9 am: d75b9109cc Colin Cross
am: a4ca1b6caf Change-Id: Iaa65bd0e000f79b4ec4c13d0f6d1955d08cb601d
2017-05-05Add a variable to disable modules in the PDK Colin Cross
Not plumbed through yet, but will at least prevent us from losing track of which modules will not build in the PDK. Test: builds Change-Id: I4c1a0e39104b104dc1ff23c4391d5e83b3002d3a
2017-05-05Support %s in product variable properties Colin Cross
Support using strings as product variable substitutions, and add tests for printfIntoProperty. Test: varaible_test.go Change-Id: I06cfadfb1d3fc81da72fb71323706df20426c8b7
2017-05-06Merge "Support override_rs_driver product variable" am: 2030a8cbcb am: ↵ Colin Cross
9b9be28895 am: 00b7cd4810 Change-Id: I05da4da322741dc6704ad7baa1d5d39766821666
2017-05-04Support override_rs_driver product variable Colin Cross
Test: builds Change-Id: Ifd9bf09bb54418d62f6886b0d8ed84dd493a3162
2017-05-02Add device_uses_hwc2 product variable am: 0e409a2810 am: 2bc8871dac Colin Cross
am: b3b0c9bcf1 Change-Id: I75b55df02409556bbbc2c62a0dd901c51b02a90b
2017-05-02Add device_uses_hwc2 product variable Colin Cross
TARGET_USES_HWC2 is going away, but propagate it to soong for now to unblock converting dependency chains that end in libhwui. Test: soong tests Change-Id: I20f1269caea1b5f5fc39239daa6b2e610bd36eb9
2017-04-18Add init_rc as a property to the debuggable product_variable. Carmen Jackson
am: 6fe956b129 Change-Id: Ibc6fdb7235b56efda5c62eb91e7a03a732c57427
2017-04-14Add init_rc as a property to the debuggable product_variable. Carmen Jackson
Bug: 37110010 Test: See related change - verified manually that the default init_rc file as well as the 'debuggable' init_rc file were executed. Change-Id: Id6a51201cf10633e9a86d2c76a3e64b50225bf55
2017-03-31Generate file to map codenames to API levels. Dan Albert
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
2017-03-16Revert "install *.so in different paths for their types" Dan Willemsen
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
2017-03-14install *.so in different paths for their types Jiyong Park
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
2017-02-27Support path exclusion for native coverage. Ryan Campbell
Specify list of paths to exclude from coverage instrumentation. Test: make NATIVE_COVERAGE=true COVERAGE_PATHS=hardware/interfaces COVERAGE_EXCLUDE_PATHS=hardware/interfaces/graphics Bug: 35769817 Change-Id: I3bf10e5e5697d140d6cff73d000768b00aa28ca4
2017-02-23Remove cpusets and schedboost product variables Colin Cross
They are no longer needed, remove them. Bug: 35129304 Bug: 35128496 Test: builds Change-Id: Ib144ddc2db40bc4f38a4e06ca40eabe85814e03c
2017-02-14Native Coverage support in Soong (gcov) Dan Willemsen
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
2017-02-09Removed Bluetooth build variables from the soong build parser Jack He
* Removed BLUETOOTH_HCI_USE_MCT * Removed BOARD_BLUETOOTH_BDROID_HCILP_INCLUDED Bug: 34951912, 35203653 Test: Code compilation, no visible user effects Change-Id: I89af075a334f2ec7b2a3046a4aaa5bcc19d454e0
2017-01-19Hide CFI behind a global flag. Vishwath Mohan
This CL ensures that locally enabling CFI in a .bp file is not honored unless it is enabled globally using ENABLE_CFI=true first, effectively hiding it behind a flag. Bug: 30227045 Bug: 22033465 Test: m -j40 works and device boots Test: cfi is correctly honored only when the global flag is set. Change-Id: Iccc6e4bf5e7828ab8ce6056f3e40922712faa0d8
2017-01-11Add Android.bp variables to the soong build parser Jack He
* BtConfigIncludeDir: BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR * BtHcilpIncluded: BOARD_BLUETOOTH_BDROID_HCILP_INCLUDED * BtHciUseMct: BLUETOOTH_HCI_USE_MCT Bug: 32958753 Test: Code compilation, no user visible effects Change-Id: I0dc53172ee823e4e0fa69749e1297713796538cf
2016-12-19Add ArtUseReadBarrier to ProductVariables. Hiroshi Yamauchi
Bug: 33492005 Test: top-level angler build. Change-Id: Ib04284bac923a143038655d495bcbacaabf61440
2016-12-08Support eng product variable Colin Cross
The eng product variable will be true for builds where TARGET_BUILD_VARIANT==eng. Test: mmma -j frameworks/compile/libbcc Change-Id: I808129740643495370bea64df3fe5bcf01eb9915
2016-12-05Support system/vendor for devices without a vendor partition Dan Willemsen
Test: lunch aosp_arm-eng; m -j vulkan.default Change-Id: I91eabf98f53c455ec4ade95215f11a6f89631747
2016-11-28Add basic VNDK support in Soong Dan Willemsen
Export a list of libraries in the VNDK, which is currently empty. Take in Make's global BOARD_VNDK_VERSION, and use that as the SDK version for modules that specify use_vndk: true. Modules that use the vndk have some configuration as if they were building against the NDK (the absence of globally defined headers), but in other cases look like platform modules (using the platform libc++, for now). This change does not attempt to enforce any linking constraints, that will come in a later patch. Test: out/soong/build.ninja doesn't change Change-Id: I3be206b67015ac5177b7eef4a451c579e3dc903f
2016-11-10Fix the Platform_sdk_version default. Dan Albert
N has merged into aosp now. Test: OUT_DIR=ndk-out DIST_DIR=ndk-dist \ build/soong/scripts/build-ndk-prebuilts.sh Bug: None Change-Id: I2685c700e2cb138708a3e8a5f51281c30fb582db
2016-11-02Support sanitizing a single device arch Colin Cross
Allow specifying one or more architectures to sanitize for. Defaults to sanitizing all architectures. Allows reducing the cost of sanitization by only sanitizing half of the platform. Bug: 29498013 Test: No change to build.ninja files with m -j SANITIZE_TARGET=address Test: m -j SANITIZE_TARGET=address SANITIZE_TARGET_ARCH=arm Test: nm -D $OUT/system/bin/app_process64 | grep asan, no asan symbols found Change-Id: I972cccc2f19443895d47b44bd8104105f93ffb7d
2016-10-31Add clang-tidy support Dan Willemsen
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
2016-10-17Allow brillo cflags and debuggable cppflags Dan Willemsen
Test: mmma -j frameworks/native/{libs/gui,opengl/libs} w/Android.bp Change-Id: I31286c92ec4befaa486052ba2e6d55cd0d5fe62d
2016-10-12Control mutator order Colin Cross
Register mutators inside lambdas that are called in a defined order to correctly order mutators before and after the arch and deps mutators. Test: build.ninja identical Change-Id: Iefe2a3515aee8570e76a6e76925db4cda0e9e822
2016-09-22Add `debuggable` product variable with cflags Dan Willemsen
Allows changing cflags based on the build variant being `eng` or `userdebug`. This is used by some modules to turn on asserts for these builds, and used by adb to allow root on non-user builds. Test: Use this flag in an Android.bp, check the ninja file. Change-Id: I27a5081378e94920482b4a742d65c46065047573
2016-08-31Enable goma in soong Colin Cross
When the UseGoma flag is set, put all rules except the C compilation rule in an externally defined local_pool, which will have been created by kati. The gomacc wrapper will already be in the CC_WRAPPER environment variable. Bug: 31142427 Change-Id: I699d4edff2e302eee398dad8692ceb14721a628c
2016-08-25Add support for preferred arch symlinks Colin Cross
Add a symlink_preferred_arch property to binaries to allow compiling the binary for multiple architectures and then creating a symlink to the preferred archicture, for example dalvikvm32 and dalvikvm64, with dalvikvm symlinked to dalvikvm64. Test: mmma -j art/dalvikvm Change-Id: Ied15f2be9d52c01006fe8ac207c175b78558eab1
2016-08-11Make BottomUpMutators parallel Colin Cross
Append .Parallel() to all of the RegisterBottomUpMutator calls to tell Blueprint it can run them in parallel. Test: identical build.ninja, passes race detector Change-Id: I969a0689522d4cba7c8ff51e2aa00fe2fd338a89
2016-07-26Add Binder32bit product variable Dan Willemsen
To allow cflag changes when using the "old" binder API that are still used by all 32-bit only configurations. We can't just use android32/android64 here, since some devices use a 64-bit kernel with a 32-bit userspace, which is configured as "android32". Change-Id: I8450484b75d59c1855c7ba36260c08925e7b28ad
2016-07-19Use PlatformSdkVersion from Make Dan Willemsen
This doesn't need to be hardcoded, and should be updated anyways. Change-Id: Ie28d0d7655e8db3c02d110ae578a763a69b73f92
2016-07-12Add product variables: cpusets schedboost Dan Willemsen
These are used by libcutils, and are equivalent to the ENABLE_CPUSETS and ENABLE_SCHEDBOOST make variables. Change-Id: I65d0eed49b5bcb4d6415e9e64a0159209a43b922
2016-05-18Rename common to android Colin Cross
Rename the "common" package to "android", because common is too generic. Also removes all android.Android naming stutter. Ran: gomvpkg -from 'android/soong/common' -to 'android/soong/android' gorename -from '"android/soong/android".AndroidModuleContext' -to 'ModuleContext' gorename -from '"android/soong/android".AndroidBaseContext' -to 'BaseContext' gorename -from '"android/soong/android".AndroidModuleBase' -to 'ModuleBase' gorename -from '"android/soong/android".AndroidBottomUpMutatorContext' -to 'BottomUpMutatorContext' gorename -from '"android/soong/android".AndroidTopDownMutatorContext' -to 'TopDownMutatorContext' gorename -from '"android/soong/android".AndroidModule' -to 'Module' Change-Id: I3b23590b8ce7c8a1ea1139411d84a53163288da7