Commit Graph

1304 Commits

Author SHA1 Message Date
Colin Cross
d7cfaeeebc Fix a bug in OncePer.Get that could return a waiter
OncePer.Get must call maybeWaitFor on the value it reads, otherwise
it could return a waiter instead of the real value.

Test: onceper_test.go
Change-Id: I7d407bd1c577dbb43bc14fa107d5f606bf2b1c67
2019-02-19 11:19:09 -08:00
Colin Cross
93a9e5e3a2 Don't check ABIs in SecondArchIsTranslated
SecondArchIsTranslated is only used to determine whether or not to
dexpreopt the second arch, so it should return false for the case
where the primary and secondary arches are X86_64 and X86, but the
primary arch also lists an Arm ABI.

Bug: 124711830
Test: m on failing build
Change-Id: I6afc2fdda466e0c406dbeada2e9c3df2bb6853bf
2019-02-19 18:18:30 +00:00
Colin Cross
af44d57cbe Merge changes from topic "dexpreopt_bootjars" am: 49afb313ed am: 7931d32a00
am: 538a7a2124

Change-Id: I6a4bc320e694354e0619430137f67f8576fc0288
2019-02-18 19:20:26 -08:00
Colin Cross
f1b8b2ec1b Move dexpreopting of boot jars into Soong am: 800fe13146 am: 7982dc9f45
am: 7961c04510

Change-Id: I529950a46e2869d0b2a116738db239ed00a3e354
2019-02-18 19:19:45 -08:00
Colin Cross
40e3373d41 Add more paths helper methods
Add PathsForOutput to convert multiple strings into WritablePaths.

Add OutputPath.InSameDir to build a new OutputPath pointing to a
file in the same directory as an existing OutputPath.

Add WritablePathForTesting and WritablePathsForTesting that mirror
PathForTesting and PathsForTesting but return WritablePaths.

Add PathContextForTesting to return a minimal PathContext
implementation.

Test: paths_test.go
Change-Id: I9708eb164b273514a96dae0a260ef9a963fb9bcf
2019-02-16 17:08:07 -08:00
Colin Cross
800fe13146 Move dexpreopting of boot jars into Soong
Implement the dexpreopting of boot jars in singleton rules in
Soong.

Test: m checkbuild
Change-Id: Ic02ce941fa5e238b839b3eb4c06a3e10c62d98ff
2019-02-15 16:16:25 -08:00
Jaewoong Jung
3d7293c2f7 Merge "Add a prebuilt module type for usr/share." am: fc46f28b6f am: b25da89311
am: 3875d3c293

Change-Id: I9eb752d1b9a84a4984b70110fc21f385e8985d14
2019-02-14 08:06:23 -08:00
Jaewoong Jung
fc46f28b6f Merge "Add a prebuilt module type for usr/share." 2019-02-14 15:39:33 +00:00
Jaewoong Jung
fbc605e303 Merge "Update Soong docs generator for blueprint changes" am: dfa4a486eb am: 8b8fc45947
am: d4301986d8

Change-Id: I0c8d705f4f634d7d7379a94bbe7146f8e794549a
2019-02-13 20:42:29 -08:00
Jaewoong Jung
dfa4a486eb Merge "Update Soong docs generator for blueprint changes" 2019-02-14 01:51:04 +00:00
Inseob Kim
12865b096a Create sysprop_library soong module am: c0907f191a am: 92053b977e
am: 751a2cb98a

Change-Id: Ie9976968934c4231492af4ad4cbbcfe38790f040
2019-02-13 17:25:17 -08:00
Colin Cross
3019676b91 Merge "Add RuleBuilder.Installs().String()" am: 58b31ad33a am: a3c846bfb9
am: 2cb5b7b1e3

Change-Id: Ib9caffa1dde44dad422c9e82d93052b70d22bf27
2019-02-13 16:58:10 -08:00
Inseob Kim
c0907f191a Create sysprop_library soong module
A newly introduced sysprop_library soong module will generate a
java_sdk_library and a cc_library from .sysprop description files.
Both Java modules and C++ modules can link against sysprop_library
module, thus giving consistency for using generated sysprop API.

As Java controls accessibility of Internal / System properties with
@hide and @SystemApi, 2 different header files will be created. And
build system will selectively expose depending on the property owner
and the place where the client libraries go into.

Bug: 80125326
Bug: 122170616
Test: 1) Create sysprop_library module.
Test: 2) Create empty txt files under prebuilts/sdk.
Test: 3) Create api directory, make update-api, and see changes.
Test: 4) Try to link against sysprop_library with various clients.
Test: 5) Soc_specific, Device_specific, Product_specific, recovery flags
work as intended.
Change-Id: I78dc5780ccfbb4b69e5c61dec26b94e92d43c333
2019-02-13 23:32:51 +00:00
Jaewoong Jung
c3fcdb4baa Add a prebuilt module type for usr/share.
This is almost the same as prebuilt_etc except the base path.

Bug: 122616578
Test: prebuilt_etc_test.go + manual test with external/neven
Change-Id: Ie3d17c06a878853ec9df93fe2c61c8772bc5cff4
2019-02-13 12:56:24 -08:00
Colin Cross
7089c27c07 Update Soong docs generator for blueprint changes
bootstrap.ModuleTypeDocs needs a mapping of module types to factories
to support factories that are wrapped in ModuleFactoryAdapter closures.

It also returns ModuleType objects grouped into Package objects.

Bug: 67909957
Test: m soong_docs
Change-Id: I70eac9f0f0e13075580da92d4219792ca0b18fbf
2019-02-13 20:39:26 +00:00
Colin Cross
deabb94380 Add RuleBuilder.Installs().String()
Add a RuleBuilderInstalls type for a slice of RuleBuilderInstalls,
and give it a String() method that returns the list of installs
in the format that is convenient for passing to Make.

Test: rule_builder_test.go
Change-Id: I2e9cd9abf4dfb0ad312d0a6662f1567baf9cd222
2019-02-13 08:03:29 -08:00
Colin Cross
c575f083a2 Add OutputPath.ReplaceExtension() am: 8854a5a805 am: 7e071999a2
am: 99c844b3f8

Change-Id: I7aec1ef6ac6c511a6b2be6665da80d8b8b42ab62
2019-02-12 17:32:47 -08:00
Colin Cross
927d5d072e Add RuleBuilderCommand.FlagForEachArg() am: c7ed004dd3 am: 77ccfd8324
am: a6f57f5270

Change-Id: Iaf6a893876f505bdb4aa6201f7ef5e6d92ff1561
2019-02-12 17:32:28 -08:00
Colin Cross
dcf0939f01 Use ArchType in dexpreopt config am: 74ba962d29 am: 97e623455c
am: e7e62af172

Change-Id: Ia2adcde5bfda51856dbc9c7bd6e0d374f3021631
2019-02-12 17:32:11 -08:00
Colin Cross
8854a5a805 Add OutputPath.ReplaceExtension()
Add a helper method that returns a new OutputPath with the
extension replaced.

Test: paths_test.go
Change-Id: I7f93b3475031a19b53652022740488373a1b7d97
2019-02-12 17:07:35 -08:00
Colin Cross
c7ed004dd3 Add RuleBuilderCommand.FlagForEachArg()
Add an analog to FlagForEachInput that takes non-path arguments.

Test: rule_builder_test.go
Change-Id: Ifdf5a16079018bfff9b06ce48b13b104a93fddd7
2019-02-12 17:07:35 -08:00
Colin Cross
74ba962d29 Use ArchType in dexpreopt config
Make ArchType implement the encoding.TextMarshaller and
encoding.TextUnmarshaller interfaces so that it can be used
as a value in the dexpreopt config structs that are passed
through JSON files.

Test: m checkbuild
Change-Id: Ie4c12443e7ee5fe43f42d5403bcde12d62f617e2
2019-02-12 17:05:47 -08:00
Colin Cross
265d29bf26 Merge "Run makevars singleton after all other registered singletons" am: a838004f8c am: f54b401be4
am: 785bad3187

Change-Id: I3264ab0c66ef4d71eca44643df83643d8533fc10
2019-02-12 16:48:09 -08:00
Colin Cross
a838004f8c Merge "Run makevars singleton after all other registered singletons" 2019-02-13 00:27:33 +00:00
Colin Cross
f5cc0b233d Merge "Make OncePer.Once reentrant" am: 75569e0f46 am: 03d895fadd
am: 283a93f157

Change-Id: Ic9b70cc6c54deb5c87fde298cce2f1ebf1a827a9
2019-02-12 15:22:29 -08:00
Treehugger Robot
75569e0f46 Merge "Make OncePer.Once reentrant" 2019-02-12 22:58:09 +00:00
Colin Cross
5610a22280 Merge "Change type of Once keys to OnceKey" am: 450bde14b8 am: f58cd04e47
am: 9960cfa914

Change-Id: I91afbd75bacf32dd4f8f4789d1307bf56eab6708
2019-02-12 13:38:28 -08:00
Colin Cross
450bde14b8 Merge "Change type of Once keys to OnceKey" 2019-02-12 21:13:56 +00:00
Colin Cross
e5cdaf9221 Make OncePer.Once reentrant
The value constructor passed to OncePer.Once may call back into
Once.  Replace the global mutex with a temporary channel stored
in the map using the key, and have callers for the same key
wait on the channel if they find it instead of a real value.

Test: TestOncePerReentrant
Change-Id: Ifa88a3c48981b5076b83f47fbdee5d26311725c6
2019-02-12 19:03:53 +00:00
Colin Cross
580d2ce642 Run makevars singleton after all other registered singletons
Move the makevars singleton after all dyamically registered
singletons, but before the env singleton, to ensure that it
can reference values initialized in other singletons.

Test: m checkbuild
Change-Id: I6ea45d3a174b94d4e89f3168894399e7022733e4
2019-02-11 15:29:51 -08:00
Colin Cross
e48ff5bbd4 Change type of Once keys to OnceKey
Require that the key for Once calls be created with NewOnceKey
or NewCustomOnceKey.

Test: m checkbuild
Change-Id: I44b8ea6034338b45f558f862b21d5732364cbf0f
2019-02-11 15:29:51 -08:00
Jaewoong Jung
b525ad2c24 Merge "Make PrebuiltEtcHostFactory public." am: 0dcfee56b8 am: 4c8f798413
am: 2ea9ac4109

Change-Id: Icbe3b5d47b586ae91e9a42c80a2ce8b4a02494f8
2019-02-11 08:39:35 -08:00
Jaewoong Jung
0dcfee56b8 Merge "Make PrebuiltEtcHostFactory public." 2019-02-11 16:22:13 +00:00
Mikhail Naganov
1c38cdca01 Improve error messages about paths am: ab1f518fb0 am: 33b67a24e6
am: 1c00aec7d0

Change-Id: Ia18bd3b17dc737d5ca45a1418f200a4a23d34b24
2019-02-08 16:54:08 -08:00
Mikhail Naganov
ab1f518fb0 Improve error messages about paths
Quote the path parameter in the message to distinguish it
from the text. This makes messages more understandable.

Before: source path include does not exist
After:  source path "include" does not exist

Test: build Android
Change-Id: I99dbbce3cf090682a230d05bf120549a2cc7af3c
2019-02-08 13:32:08 -08:00
Colin Cross
bbe7e8261e Merge "Allow disabling implicit resource_dirs and asset_dirs" am: 3e48a994e8 am: 73481a4cf6
am: d6fa3b1cbf

Change-Id: I64e113ce97c8d103a141ec65caacf67c08464b5f
2019-02-07 18:55:49 -08:00
Colin Cross
3e48a994e8 Merge "Allow disabling implicit resource_dirs and asset_dirs" 2019-02-08 02:29:35 +00:00
Colin Cross
32fd5947ca Make MakeVarsContext a PathContext am: 65494b962b am: e5bc0d6253
am: 1c15057b94

Change-Id: I3521fec124f35017812ed2c3faf9fb7e46f73a3a
2019-02-07 18:21:45 -08:00
Colin Cross
0ddae7fddd Allow disabling implicit resource_dirs and asset_dirs
Specifying [] for resource_dirs or asset_dirs will prevent using
the default "res" or "assets" directories.

Test: TestResourceDirs
Bug: 124035856
Change-Id: I96e38ac1319260db43950299a8b1774da68ea85e
2019-02-08 00:24:01 +00:00
Colin Cross
65494b962b Make MakeVarsContext a PathContext
Expose all of SingletonContext to makeVarsContext, and then export
the subset of it that is used through MakeVarsContext.SingletonContext,
plus what is necessary for PathContext, directly through
MakeVarsContext.

Test: m checkbuild
Change-Id: Ie00f36e577fe110b6fa03b901da489d8547773c6
2019-02-07 22:31:04 +00:00
Jaewoong Jung
4b44fcd772 Make PrebuiltEtcHostFactory public.
Bug: 122332220
Test: prebuilt_etc_test.go + manual builds
Change-Id: Ia2f882f0d18f3f06f396b2bf3f3052d27c6ab96d
2019-02-07 08:28:03 -08:00
Colin Cross
28825f0e41 Merge changes from topic "hiddenapi" am: 4c3a4aded3 am: 19807e619e
am: ab9bfa1617

Change-Id: I148138a6723926af54620c6ce3379fdb61ed9e08
2019-02-07 00:09:49 -08:00
Colin Cross
930fd09663 Add MissingDeps to RuleBuilder am: 0d2f40ae6c am: 2950d40b76
am: aa1b802a53

Change-Id: Ie82106fa63c2194430e9b1c186db33244854b260
2019-02-07 00:09:33 -08:00
Colin Cross
2950d40b76 Add MissingDeps to RuleBuilder
am: 0d2f40ae6c

Change-Id: I533be8464482ad327a4c446242ebebc2dfe039c1
2019-02-06 23:40:53 -08:00
Treehugger Robot
4c3a4aded3 Merge changes from topic "hiddenapi"
* changes:
  Move hiddenapi singleton rules to Soong
  Add MissingDeps to RuleBuilder
2019-02-07 07:27:33 +00:00
Jaewoong Jung
96ce6a32a3 Merge "Add prebuilt_etc_host module type." am: e3c98e7ba4 am: b4a9a3a23c
am: cf1aec0b68

Change-Id: I8e3d676652080c3d4964260936d34f8881be004e
2019-02-06 11:49:24 -08:00
Colin Cross
f24a22a98a Move hiddenapi singleton rules to Soong
Move the rules that build hiddenapi-stubs-flags.txt,
hiddenapi-flags.csv and hiddenapi-greylist.csv into Soong.

Bug: 123645297
Test: m checkbuild
Test: m UNSAFE_DISABLE_HIDDEN_API_FLAGS=true
Change-Id: I90bf58710f6153ee8565994f799d3ec5699bc7fa
2019-02-06 11:23:40 -08:00
Jaewoong Jung
e3c98e7ba4 Merge "Add prebuilt_etc_host module type." 2019-02-06 19:22:09 +00:00
Colin Cross
0d2f40ae6c Add MissingDeps to RuleBuilder
Add a method to be used when Config.AllowMissingDependencies() is true
to produce an error rule when the rule is missing dependencies.

Test: m checkbuild
Change-Id: If370fbb2734237a84a100b99b5238c7a2256c405
2019-02-06 10:59:42 -08:00
Colin Cross
23db3437ec Merge changes Ifcb338e6,Ie509ed80,I270fed60,Id825cb75,I92a963bd am: cc2d11961c am: 9053375b93
am: 31cabeea1c

Change-Id: I3abcc60539de84d3365df989de341b4bb3e1db09
2019-02-05 21:26:50 -08:00