Commit Graph

1515 Commits

Author SHA1 Message Date
Colin Cross
ad4a597c79 Merge "Add method to determine variations from a Target" 2019-10-17 18:52:20 +00:00
Pete Gillin
b9e63fe015 Merge "Enable Java language level 9 by default."
am: 4fe25b05b9

Change-Id: I3e136a958f8ef54b9c92aa5cecc7bb46dbcec118
2019-10-17 04:05:22 -07:00
Pete Gillin
4fe25b05b9 Merge "Enable Java language level 9 by default." 2019-10-17 10:38:35 +00:00
Jiyong Park
53fb8dd285 Merge "Create scripts to update and freeze a module SDK"
am: d7d5e5a1ac

Change-Id: I56ad28f0e8ee441dec2b89fd49cde41823a4bb0a
2019-10-16 21:18:59 -07:00
Mitch Phillips
403f0998cd Merge "Add SingletonContext::VisitDirectDepths[If] to Android proxy."
am: 344eed4eb1

Change-Id: I78306020fbc7413e336e7bb7c21c5fe5aa4f2d09
2019-10-16 21:15:52 -07:00
Jiyong Park
a7bc8ad0b9 Prohibit dependencies outside of uses_sdks
When an APEX is built with uses_sdks, any depedndency from the APEX to
the outside of the APEX should be from the SDKs that the APEX is built
against.

Bug: 138182343
Test: m

Change-Id: I1c2ffe8d28ccf648d928ea59652c2d0070bf10eb
2019-10-17 11:19:53 +09:00
Treehugger Robot
d7d5e5a1ac Merge "Create scripts to update and freeze a module SDK" 2019-10-17 01:02:16 +00:00
Treehugger Robot
344eed4eb1 Merge "Add SingletonContext::VisitDirectDepths[If] to Android proxy." 2019-10-17 00:45:25 +00:00
Colin Cross
a195f91471 Split out osMutator from archMutator
Split the archMutator into two mutators, osMutator to create
android/linux/darwin variants, and archMutator to then further
split them into arm/arm64, etc.  When combined with alias
variants in Blueprint this will allow us to depend on the
"android" variant without having to know what architectures
were used to build it.

Test: m checkbuild
Change-Id: I0f51d60fc440cf5ae503904ce7849ec797af5fe2
2019-10-16 15:27:23 -07:00
Colin Cross
158eeb7701 Add arch mutator test
Add a test for the arch mutator in preparation for splitting it
into two mutators.

Test: m checkbuild
Change-Id: Ifd0a146a085901d33db50e783bdfad31edd7b7a6
2019-10-16 15:27:23 -07:00
Mitch Phillips
3a7a31b0c1 Add SingletonContext::VisitDirectDepths[If] to Android proxy.
Adds the VisitDirectDepths[If] function from blueprint to the Android
SingletonContext proxy.

Bug: N/A
Test: N/A
Change-Id: I4037364ef11b545abc9a383db7e1e818854db68f
2019-10-16 15:06:32 -07:00
Colin Cross
0f7d2ef3ac Add method to determine variations from a Target
The arch variants are hardcoded in every module type.  Refactor
them out into a Target.Variations() method in preparation for
splitting the arch mutator into two, which will require using
different variations.

Test: m checkbuild
Change-Id: I28ef7cd5168095ac888fe77f04e27f9ad81978c0
2019-10-16 14:52:30 -07:00
Pete Gillin
1b3370f5d7 Enable Java language level 9 by default.
This changes the default Java language level from 8 to 9, i.e. javac
invocations now use -source 1.9 -target 1.9.

The environment variable EXPERIMENTAL_JAVA_LANGUAGE_LEVEL_9=false is
added to switch back to the language level 8 behaviour. (Previously,
setting that variable to true was required to opt in to language level
9.)

Test: make droid java tests cts docs
Test: javap -v <some class file in output> | grep 'major version' (reports 53, for classes from 'benchmarks' which is in Android.bp and 'ahat' which is in Android.mk)
Test: make RunBluetoothRoboTests RunCarSettingsLibRoboTests (two main flavours of robolectric)
Test: make cts && cts-tradefed help
Test: atest CtsLibcoreTestCases (reasonably low-level device tests)
Test: atest CtsHostTzDataTests (arbitrary host test)
Bug: 115604102
Change-Id: I9de888e1df021244d5e61c40934178676f09ecc7
Merged-In: I52be1817fa7121fca3bce3d8857cb9ed0825570c
2019-10-16 11:20:13 +01:00
Jiyong Park
090366ef0c Merge "add [static|shared].apex_available to cc_library"
am: a4cdb8dd40

Change-Id: I4486cd7d051a3b774bf0c457659c2950121a6ca7
2019-10-15 21:20:59 -07:00
Jiyong Park
9b409bcd10 Create scripts to update and freeze a module SDK
`m <sdk_name>` generates two scripts each of which is use to update the
current snapshot of the SDK and to freeze ToT as a new version,
respectively. Executing the scripts will copy necessary files (stub
libraries, AIDL files, etc.) along with Android.bp into the ./<apiver>
directory under the directory where the sdk is defined.

This change also introduces a new module type 'sdk_snapshot' that
represents a snapshot of an SDK. It will be auto-generated by the above
scripts, so developers are not expected to write this manually.

The module type 'sdk' is now used to simply specify the list of modules
that an SDK has.

Finally, this change changes the version separator from '#' to '@'
because '#' confuses Make.

Bug: 138182343
Test: m

Change-Id: Ifcbc3a39a2f6ad5b4f4b200ba55a1ce3281498cf
2019-10-15 18:49:58 +09:00
Jiyong Park
a90ca00786 add [static|shared].apex_available to cc_library
apex_available property can be appended differently per the linkage
type. This will be used to restrict certain libs (e.g.
libc_malloc_debug) to an APEX while allowing them to be statically
linkable from platform for testing purpose.

Test: m (apex_test amended)
Change-Id: I6dec23129c5ac93a3ef06fea28f26f240c0ba410
2019-10-15 15:28:07 +09:00
Orion Hodson
2b0d6a86a4 Make apex_available respect AllowMissingDependencies
am: 4b5438a9ea

Change-Id: I07adcfbe783f58189c352724dd2f93ca574c4859
2019-10-08 03:27:01 -07:00
Orion Hodson
4b5438a9ea Make apex_available respect AllowMissingDependencies
When SOONG_ALLOW_MISSING_DEPENDENCIES is defined in the build, don't
fail if an apex_available entry is not available. This is for smaller
Android manifests that may not include all APEX projects (e.g. master-art).

Bug: 142300164
Test: able to build from master-art manifest.
Change-Id: Ice1274f7dd143c4b1bf756e2cde93e217266affa
2019-10-08 10:40:51 +01:00
Jiyong Park
6064472edb Merge "Remove no_apex in favor or apex_available"
am: e89b8fb919

Change-Id: Icf8cfdd3945291fd15a15a751ca761842abbbfe6
2019-10-07 22:41:59 -07:00
Treehugger Robot
e89b8fb919 Merge "Remove no_apex in favor or apex_available" 2019-10-08 05:33:29 +00:00
Colin Cross
362051eef3 Merge "Filter product variable property structs"
am: 2334757d24

Change-Id: Iee8f1d0cb3ac2e01032b569727f9ed48e6783273
2019-10-07 14:07:35 -07:00
Colin Cross
2e7e4df578 Merge "Remove old-style support for translated second architectures"
am: c6136c9d65

Change-Id: I14c7ceb6e1f34f902a7fe71727773498b13b0078
2019-10-07 14:06:45 -07:00
Colin Cross
2334757d24 Merge "Filter product variable property structs" 2019-10-07 20:53:44 +00:00
Treehugger Robot
c6136c9d65 Merge "Remove old-style support for translated second architectures" 2019-10-07 20:48:07 +00:00
Colin Cross
e33b763897 Merge "Add symlinks to sh_binary in soong"
am: 8b0dc4be07

Change-Id: Ifac96bb40de8a4f183acecd305618cb677dd95c1
2019-10-07 10:53:37 -07:00
Colin Cross
8b0dc4be07 Merge "Add symlinks to sh_binary in soong" 2019-10-07 17:47:45 +00:00
Rashed Abdel-Tawab
6a34131da4 Add symlinks to sh_binary in soong
This allows us to change `logpersist.start` to `sh_binary` and unblocks
breakpad symbol uploading

Test: convert logpersist.start to sh_binary and verify symlinks are correct
Change-Id: I1b86c512df73a336205ca35216445a08e43bb879
2019-10-04 20:51:44 -07:00
Colin Cross
eb767a021e Merge "Use localPool consistently for UseGoma() == true"
am: 96ce6ab143

Change-Id: I0dee88625929e1d523a1df3a8547fc40353bea43
2019-10-04 12:04:05 -07:00
Treehugger Robot
96ce6ab143 Merge "Use localPool consistently for UseGoma() == true" 2019-10-04 18:36:07 +00:00
Colin Cross
789fc863bb Merge changes from topic "install"
am: 4acb77e76a

Change-Id: Id5785b4df6fa91a457e5a3234819cd2de9644cb5
2019-10-03 15:06:55 -07:00
Colin Cross
21daf4e438 Separate InstallPath from OutputPath
am: 70dda7e3da

Change-Id: Ic581d093d61e2b1f413b8b9dfdc8ee75a6806d54
2019-10-03 15:06:48 -07:00
Colin Cross
5c17b4e9bb Add InstallInRoot to allow modules to install into root partition
am: 90ba5f4e98

Change-Id: I73a597b875c336624b0016302c3710177bb0a658
2019-10-03 15:06:40 -07:00
Colin Cross
70dda7e3da Separate InstallPath from OutputPath
Create a new type InstallPath that is similar to OutputPath to
differentiate intermediates output paths from installed output
paths.

RelPathString is a poorly defined, undocumented function that is
primarily used to get an install path relative to out/soong to
generate an equivalent install path for Make relative to $(OUT_DIR).
Move it to InstallPath for now, and fix the one remaining user on
OutputPath.

Add a method to create an NDK install path so that ndk_sysroot.go
doesn't have to do it manually with PathForOutput.

Bug: 141877526
Test: m checkbuild
Change-Id: I83c5a0bd1fd6c3dba8d3b6d20d039f64f353ddd5
2019-10-03 10:07:53 -07:00
Colin Cross
ff6c33d885 Replace RelPathString() with ToMakePath()
Add a ToMakePath() method that returns a new path that points out
out/ instead of out/soong/, and replace the
"$(OUT_DIR)/" + path.RelPathString()
pattern with
path.ToMakePath().String()

Bug: 141877526
Test: m checkbuild
Change-Id: I391b9f2ed78c83a58d905d48355ce9b01d610d16
2019-10-03 10:07:53 -07:00
Colin Cross
90ba5f4e98 Add InstallInRoot to allow modules to install into root partition
If InstallInRoot() returns true the module will be installed to
$OUT/root or $OUT/recovery/root.

Bug: 141877526
Test: m checkbuild
Test: no change to build.ninja or Android-${TARGET_PRODUCT}.mk
Test: TestPathForModuleInstall
Change-Id: Id6e435c6019f11eeb5806528fd464dbf220b88d9
2019-10-03 10:07:46 -07:00
Colin Cross
bf0adb2c88 Merge changes from topic "filter_arch_properties"
am: 2f429160c1

Change-Id: I20821e595ad22a08ebc64a0a6c779ddf021e8a86
2019-10-02 13:26:01 -07:00
Colin Cross
21c6067ebb Move arch properties to proptools.FilterPropertyStruct
am: 7444910e93

Change-Id: I043dd52f1ec805dab45ee9604bf3f0c6932f27c0
2019-10-02 13:25:47 -07:00
Treehugger Robot
2f429160c1 Merge changes from topic "filter_arch_properties"
* changes:
  Make CreateModule return the newly created module
  Move arch properties to proptools.FilterPropertyStruct
2019-10-02 18:53:54 +00:00
Jiyong Park
b0413c3a80 Merge "Add apex_available to control the availablity of a module to APEXes"
am: 321d7114c3

Change-Id: I7cdb151256cedfe779b7fdf380c5a9eef1a12a36
2019-10-02 01:15:59 -07:00
Jiyong Park
7916bfc3cc Remove no_apex in favor or apex_available
This change reverts following three changes to remove the no_apex
property. no_apex: true is equivalent to apex_available:
["//apex_available:platform"].

Revert "fix: "no_apex" can be put in defaults"
This reverts commit cc372c5b1d.

Revert "Add no_apex check for static library"
This reverts commit 2db7f46d0c.

Revert "Add no_apex property"
This reverts commit 4f7dd9b4db.

Bug: 139870423
Bug: 128708192
Test: m

Change-Id: Ia4b094e371e9f8adff94ae6dc3ebb8e081381d4e
2019-10-02 14:12:16 +09:00
Jiyong Park
127b40b316 Add apex_available to control the availablity of a module to APEXes
apex_available property controls the availability of a module to APEXes.
For example, `apex_available: ["myapex", "otherapex"]` makes the module
available only to the two APEXes: myapex and otherapex, and nothing
else, even to the platform.

If the module is intended to be available to any APEX, then a pseudo
name "//apex_available:anyapex" can be used.

If the module is intended to be available to the platform, then another
pseudo name "//apex_available:platform" is used.

For now, if unspecified, this property defaults to ["//apex_available:platform",
"//apex_available:anyapex"], which means the module is available to everybody.
This will be reduced to ["//apex_available:platform"], when marking for
apex_available for existing modules are finished.

Bug: 139870423
Bug: 128708192
Test: m
Change-Id: Id4b233c3056c7858f984cbf9427cfac4118b2682
2019-10-02 14:12:16 +09:00
Yo Chiang
0a52b0eab9 Merge "Change RRO enforcement logic"
am: fdc9afa15b

Change-Id: Ia72f34bee493afd455d5ca9ee23e495b048d516c
2019-10-01 19:47:43 -07:00
Yo Chiang
fdc9afa15b Merge "Change RRO enforcement logic" 2019-10-02 02:34:35 +00:00
Colin Cross
2e2dbc250a Use localPool consistently for UseGoma() == true
Remove the distinction between pctx.StaticRule and
pctx.AndroidStaticRule so that all of the local rules correctly
get assigned to the localPool.  Also put Module and Singleton
rules into the localPool.

Test: compare out/soong/build.ninja
Change-Id: Id2bb38eff3c7209340fe55bc9006f00bd3661d81
2019-10-01 14:11:20 -07:00
Colin Cross
c7503e2fd8 Move sharding functions for reuse
am: 0a2f719bca

Change-Id: I4d1e85ac2fe3fd61f82e4783ce48b42f7a3bbf53
2019-10-01 13:14:34 -07:00
Treehugger Robot
f856c005cb Merge changes from topic "soong_c_flags"
* changes:
  Creation of C Flags Build Variables
  Move sharding functions for reuse
2019-10-01 19:25:50 +00:00
Jaewoong Jung
58a6de1c5b Merge changes I3d6506f5,I3667eac9
am: 9dc1756484

Change-Id: I5da90cdf8c36b3d3cdad2c9f3077465087dda545
2019-10-01 10:09:16 -07:00
Yo Chiang
4ebd06aa57 Change RRO enforcement logic
Change RRO logic from
"Enforce RRO for all modules when PRODUCT_ENFORCE_RRO_TARGETS is '*'"
to
"Enforce RRO for all modules when PRODUCT_ENFORCE_RRO_TARGETS includes '*'"

Bug: b/137727426
Test: test build on local machine
Change-Id: I5df1a776d324c92c0c8bbf79b4f24536cb9b5c21
2019-10-01 15:08:56 +08:00
Colin Cross
0a2f719bca Move sharding functions for reuse
Move shardPaths and shardTests to android.ShardPaths and
android.ShardStrings for reuse in other packages.

Test: m checkbuild
Change-Id: I868802872c73616b80f56cbf11f959c01a8b793a
2019-09-29 23:26:37 -07:00
Jaewoong Jung
0949f31657 Fix android_test install path.
Test: m nothing + diff soong mk and ninja files.
Bug: 140795853
Change-Id: I3667eac951dea7e447cf73219ff89199fca9ed63
2019-09-27 16:42:20 -07:00