Commit Graph

3799 Commits

Author SHA1 Message Date
Colin Cross
36242850fd Refactor factories
Change module factories from returning a blueprint.Module and a list
of property structs to returning an android.Module, which holds the
list of property structs.

Test: build.ninja identical except for Factory: comment lines
Change-Id: Ica1d823f009db812c518f271a386fbff39c9766f
2017-06-30 21:08:36 +00:00
Colin Cross
7c9bfa1f00 Fix panic in builds with no device am: 20e1365e61
am: 414e59cb8b

Change-Id: Id56046edf8bdb5a674f2517d9aba8d8757a536fb
2017-06-23 20:33:07 +00:00
Colin Cross
20e1365e61 Fix panic in builds with no device
Running prebuilts/build-tools/build-prebuilts.sh in a repo that
contains art/build/art.go panics because config.Targets[Device] is
empty.  Check the length before accessing the slice.

Test: prebuilts/build-tools/build-prebuilts.sh
Change-Id: Ifb9fe0fad07b22d6b574f505c08c5c761278aad0
2017-06-23 10:57:36 -07:00
Jeff Gaston
bdbcdda527 Have Soong try to enforce that genrules declare all their outputs. am: efc1b412f1
am: fe4bf0f9a7

Change-Id: Ib9276c8ed8c72103cc1cc6ead64c976cfaf22eb3
2017-06-09 22:20:57 +00:00
Jeff Gaston
efc1b412f1 Have Soong try to enforce that genrules declare all their outputs.
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
2017-06-09 17:57:18 +00:00
Vishwath Mohan
24f4655075 Merge "Fix install path for sanitized native tests. (Soong)" am: d20ac72951
am: 9132b17c47

Change-Id: I4724d2113177e89352f20eb9284ebe4d04888204
2017-06-08 03:02:25 +00:00
Vishwath Mohan
87f3b24418 Fix install path for sanitized native tests. (Soong)
This CL fixes a bug with how Soong builds the install path for native
tests. Tests are installed in /data/nativetest* by default, but the
logic was wrongly redirecting sanitized versions to
/data/asan/system/nativetest*. With this fix, they are correctly
redirected to /data/asan/data/nativetest* instead.

Bug: 37942061
Test: lunch marlin_asan-userdebug && \
        SANITIZE_TARGET="address" m -j70  \
        # nativetests are generated in /data/asan/data/nativetest*

Change-Id: I0c132af5d443151c44219d231770049fddf79bbe
2017-06-07 12:31:57 -07:00
Chris Larsen
48f2ffabb1 Merge "MIPS: Lower LibartImgDeviceBaseAddress() to fix ART tests." am: d55aa7bdad am: e75269a157
am: 24375a84ab

Change-Id: I73abfc65eabf6b0effef8d5e3ab2d888eb0d56a0
2017-05-31 11:47:21 +00:00
Treehugger Robot
d55aa7bdad Merge "MIPS: Lower LibartImgDeviceBaseAddress() to fix ART tests." 2017-05-31 11:32:31 +00:00
Chris Larsen
ae7f3e26ec MIPS: Lower LibartImgDeviceBaseAddress() to fix ART tests.
Some of ART tests fail to mmap memory unless
LibartImgDeviceBaseAddress() is further lowered.

Test: booted MIPS32R2 in QEMU
Test: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU
Test: test-art-target-gtest
Test: testrunner.py --target --optimizing
Test: repeat all of the above in configurations
      ART_READ_BARRIER_TYPE=TABLELOOKUP,
      ART_USE_READ_BARRIER=false
Test: repeat the above tests on CI20

Change-Id: I48cd9d8074e07073cc6abb2153660e00017b9e6b
2017-05-30 16:38:42 -07:00
Colin Cross
550b646480 Merge "Add pdk product variable" am: e5598169b3 am: 8a328382bf
am: 6a30684b33

Change-Id: Ie60495934426998d523f5f2c670c052fb08c22fb
2017-05-26 19:45:26 +00:00
Colin Cross
e5598169b3 Merge "Add pdk product variable" 2017-05-26 19:34:32 +00:00
Jayant Chowdhary
84c60fc8d5 Merge "Optimizations to abi checking." am: 4e87d89066 am: 87e5bd425c
am: dbfe6309ca

Change-Id: I1cc65bbf420e970c01680811e3d58bdf69fea2cc
2017-05-25 23:55:00 +00:00
Jayant Chowdhary
715cac3971 Optimizations to abi checking.
We now add export_static_lib_headers, export_generated_headers to the
filters while dumping the abi of a library using header-abi-dumper
(through -I<dir> additions to the invocation of header-abi-dumper and
header-abi-linker)

Also add support for zipped reference source based abi dumps.

Test: mm -j64 in hardware/interfaces/nfc/default/1.0 produces
android.hardware.nfc@1.0.so.lsdump with abi filtered out using generated
headers.

Test: Copied the linked abi dumps produced by mm -j64 in bionic/libc to
prebuilts/abi-dumps/ndk and gzipped them. Ran mm -j64 again in
bionic/libc and verified header-abi-diff getting invoked.

Bug: 32750600

Change-Id: I26210af908c87a6143e39fa25f50307acb68a387
2017-05-25 14:46:58 -07:00
Colin Cross
dab550d68b Add pdk product variable
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-25 10:18:24 -07:00
Steven Moreland
35d1479b03 Merge "Add Treble as soong variable." am: a9ec71f54f am: 8fc756987e
am: b3d3ced720

Change-Id: Icbb81962f6a735c2da22b1d0ee2c4fa8a93d9250
2017-05-20 00:19:37 +00:00
Steven Moreland
e24bc204c9 Add Treble as soong variable.
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-19 15:19:57 -07:00
Nan Zhang
a686b361fd Merge "Fix the issue "\n" didn't get interpreted properly." am: 2c13abc95e am: cd2338ec78
am: 3381f80e3c

Change-Id: Id66b81e778694338bf614580a0fac4d5694188c6
2017-05-17 00:43:30 +00:00
Treehugger Robot
2c13abc95e Merge "Fix the issue "\n" didn't get interpreted properly." 2017-05-17 00:31:08 +00:00
Nan Zhang
270051119a Fix the issue "\n" didn't get interpreted properly.
Added params to WriteFile rule that allow users to turn on the
specific 'echo' options, such as "enable the interpretation of backslash
escapes".

Bug: b/38261000
Test: tested with real data files.
Change-Id: I5145056b5c2522a3a72b9436055ec95d2fbd94c0
2017-05-16 15:10:29 -07:00
Christopher Ferris
2b40140eeb Merge "soong: add cortex-a73 to microarchitecture list" am: 2dc77f7275 am: 22cfac2a33
am: 072256dffd

Change-Id: Ibefcda06cc476c7dbac39c045ac6ab4c48359817
2017-05-16 17:30:01 +00:00
Christopher Ferris
2dc77f7275 Merge "soong: add cortex-a73 to microarchitecture list" 2017-05-16 17:14:45 +00:00
Dan Willemsen
2e1859089a Merge "Revert "Revert "Ensure environment dependencies are correct""" am: 04b830f133 am: 7ed05d634d
am: 7a14f200f9

Change-Id: I6268805e2cff406b0681e7277857ccf4eae2496e
2017-05-16 00:37:56 +00:00
Jeff Gaston
c4492e364e Merge "Clarify paths.go somewhat" am: bdb02bd334 am: 0669b93b74
am: e626e0dbde

Change-Id: I2cbc0fbd797c50ff69df29d4e7b7482b2f8acd32
2017-05-16 00:31:56 +00:00
Treehugger Robot
04b830f133 Merge "Revert "Revert "Ensure environment dependencies are correct""" 2017-05-16 00:25:09 +00:00
Jake Weinstein
6600a44072 soong: add cortex-a73 to microarchitecture list
* Was missed in I3325f60add7f424f8cca53c22919fc481ef5e787

Change-Id: I24d1ef38922cb8f46c9136018cce6a22293ca95e
2017-05-15 18:27:12 -04:00
Dan Willemsen
6606872bf6 Revert "Revert "Ensure environment dependencies are correct""
This reverts commit 4068a5db6c.

Now the Mac xcode-select and xcrun goes through Config.HostSystemTool,
which will grab $PATH through Config.Getenv

Test: m -j (on mac)
Change-Id: I2632c4fdb2ec961e59944cf02ff165e0fd3c869d
2017-05-15 15:22:45 -07:00
Jeff Gaston
734e3809ad Clarify paths.go somewhat
Bug: 35562758
Test: make

Change-Id: I4cf05ffdd0962186f490467829e3576b4e269c47
2017-05-15 11:31:48 -07:00
Colin Cross
8945094c2f Prettify soong ninja build descriptions am: 67a5c132c5 am: 4833452324
am: 8a33e6e826

Change-Id: I0c6f9148cafe8aa4bec86540e1f67a1851adafd7
2017-05-10 23:52:02 +00:00
Colin Cross
e6ca5992ed Merge changes If90975c8,I2a873fc6 am: 570e18ffaa am: e4b293ebee
am: 766a3d52d7

Change-Id: I5e3318688695d69ce4b953f22ec7c5da65d89fea
2017-05-10 18:09:30 +00:00
Colin Cross
67a5c132c5 Prettify soong ninja build descriptions
Descriptions currently look like:
[  0% 4/29328] cc out-soong/.intermediates/external/clang/lib/Sema/libclangSema/android_arm_armv7-a-neon_denver_static_core/obj/external/clang/lib/Sema/SemaCodeComplete.o

This is not very helpful - most of the characters are used to show the
output path, which contains useful information like target architecture,
but also contains most of the path to the source files twice, and less
useful information like the exact variant name used by soong.
Make the descriptions look like:
[  0% 3/29329] //external/clang/lib/Sema:libclangSema clang++ SemaTemplateInstantiate.cpp

This is //path/to/module:modulename tool relative/path/to/source/file

Test: builds, looks pretty
Change-Id: I3087aa7d4eb1860ef6239d77407b8b35445616d7
2017-05-10 11:04:16 -07:00
Colin Cross
5b52959c99 Use ctx.ModuleBuild for darwin ar
Test: builds
Change-Id: If90975c8545158012bc6201acadd136363c21260
2017-05-09 14:32:45 -07:00
Colin Cross
5df13dd03d Add product_sdk_version.cflags property am: ceeff0fd39 am: 782f1fe809
am: bc69b90e3e

Change-Id: I1e92ff58a8eecb5c52f76a0426fab615402e3e24
2017-05-08 23:09:23 +00:00
Colin Cross
ceeff0fd39 Add product_sdk_version.cflags property
libwilhelm needs PRODUCT_SDK_VERSION=%d.

Test: builds
Change-Id: Ie3caf9e4fdcb8e241c8743b1675520e93cf20cae
2017-05-08 15:57:05 -07:00
Dan Willemsen
d2030fee55 Merge "Revert "Ensure environment dependencies are correct"" am: 411a363c5a am: 07ed54b1d2
am: 2a6f43caf2

Change-Id: I67e4de833fa91c48204708cbae9a3fd89b4f09e1
2017-05-08 21:31:55 +00:00
Dan Willemsen
690cb65153 Merge "Ensure environment dependencies are correct" am: 6a76b144a9 am: 8aa97a4de9
am: 0c46f2edf8

Change-Id: I4ff4c460bd93568148e206c3e68a2809adbf7b42
2017-05-08 21:31:37 +00:00
Dan Willemsen
4068a5db6c Revert "Ensure environment dependencies are correct"
This reverts commit e78473c33c.

Reason for revert: Broke mac builds, which rely on $PATH to find xcrun

Change-Id: I58711b94d472ab828823afaf53394a1aa869f3f5
2017-05-08 21:11:55 +00:00
Dan Willemsen
e78473c33c Ensure environment dependencies are correct
Store the os Environment on init, then clear it so that it's only
available via a call to Config.Getenv(). That way we're guaranteed to
know about all dependencies.

Test: Add some os.Getenv/Config.Getenv calls and ensure correct behavior
Test: cs/ shows no os.Getenv / os.LookupEnv / os.ExpandEnv calls that
would be affected
Change-Id: Ic519e0c871f340e752df03b8af0599d47c1d91d8
2017-05-05 23:08:16 -07:00
Colin Cross
3c7e86ef69 Add a variable to disable modules in the PDK am: b2123aa1df am: dd62f877b6
am: 89d5ff5865

Change-Id: I39bd7cfba20583487dd0b69a9ef89a610e6f5d02
2017-05-06 01:48:11 +00:00
Colin Cross
2931bf29a1 Allow "required" property to vary by arch am: c602b7d881 am: e9a8f80ce1
am: 4f590643f1

Change-Id: I7ec215d49b525a37864f90779403319348e9131e
2017-05-06 01:48:07 +00:00
Colin Cross
5097cb6135 Support %s in product variable properties am: 7e0eaf15b9 am: d75b9109cc
am: a4ca1b6caf

Change-Id: Iaa65bd0e000f79b4ec4c13d0f6d1955d08cb601d
2017-05-06 01:48:01 +00:00
Colin Cross
b2123aa1df Add a variable to disable modules in the PDK
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-05 18:22:30 -07:00
Colin Cross
c602b7d881 Allow "required" property to vary by arch
Renderscript needs to require different bitcode files based
on architecture.

Test: builds
Change-Id: Ifffa16c892a7f8e309f1c5652472fba44cd2e786
2017-05-05 18:22:30 -07:00
Colin Cross
7e0eaf15b9 Support %s in product variable properties
Support using strings as product variable substitutions, and
add tests for printfIntoProperty.

Test: varaible_test.go
Change-Id: I06cfadfb1d3fc81da72fb71323706df20426c8b7
2017-05-05 18:22:30 -07:00
Colin Cross
4ed57d5a47 Merge "Support override_rs_driver product variable" am: 2030a8cbcb am: 9b9be28895
am: 00b7cd4810

Change-Id: I05da4da322741dc6704ad7baa1d5d39766821666
2017-05-06 00:50:00 +00:00
Colin Cross
2030a8cbcb Merge "Support override_rs_driver product variable" 2017-05-06 00:15:02 +00:00
Nan Zhang
ee35712b98 Merge "Supported python build in host side." am: a731969dc1 am: 2ca25e6d12
am: 1a052a67bc

Change-Id: I77ade4282097522545d91f8aa13c0f5b3cbb1b35
2017-05-05 22:23:10 +00:00
Nan Zhang
db0b9a3cf3 Supported python build in host side.
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
2017-05-05 13:27:56 -07:00
Colin Cross
954364256f Support override_rs_driver product variable
Test: builds
Change-Id: Ifd9bf09bb54418d62f6886b0d8ed84dd493a3162
2017-05-04 15:44:11 -07:00
Colin Cross
8f8e7b6257 Add device_uses_hwc2 product variable am: 0e409a2810 am: 2bc8871dac
am: b3b0c9bcf1

Change-Id: I75b55df02409556bbbc2c62a0dd901c51b02a90b
2017-05-02 20:13:29 +00:00