Commit Graph

72 Commits

Author SHA1 Message Date
Nan Zhang
fa8b66f5cc Merge changes from topic "turbine"
am: 872246de0f

Change-Id: I13cba047e145d0ab8c486a4ee60d53f2f5470737
2017-09-01 00:21:34 +00:00
Nan Zhang
b3ec534bd1 Revert "Revert "Add Turbine as part of java build toolchain in Make.""
This reverts commit 33dcd0c5eb.

Reason for revert: <stub.jar.toc needs classes.jar.toc which is no longer existed after Turbine was introduced. So use classes.jar to represent stub.jar.toc>

Bug: b/64308460
Test: m clean && time m -j32 ANDROID_COMPILE_WITH_JACK=true
Change-Id: If618993f1e0c789d93cc15664212603f994fd460
2017-08-31 14:56:54 -07:00
Nan Zhang
2c82a22d96 Merge "Revert "Add Turbine as part of java build toolchain in Make.""
am: 91ffbf2fbe

Change-Id: I1a1131df064f2243220407dddd3f913ace7d26aa
2017-08-31 20:41:25 +00:00
Nan Zhang
33dcd0c5eb Revert "Add Turbine as part of java build toolchain in Make."
This reverts commit 0739155c86.

Reason for revert: <sdk_google_aw_x86-sdk (linux) build 4310016 in git_master is broken>

Change-Id: I525d48557bd0425917e61a85f596663ccc63c887
2017-08-31 19:56:59 +00:00
Nan Zhang
2764a16085 Merge "Add Turbine as part of java build toolchain in Make."
am: 0b23748128

Change-Id: Ieed94b471fea95b91b7bc54da8d3860cb794f921
2017-08-31 18:16:13 +00:00
Nan Zhang
0739155c86 Add Turbine as part of java build toolchain in Make.
1. Bundle static_java_header_libs during turbine-classes.jar if
necessary. This can be improved if we have the ability to merge jars on
the fly.

2. Copy sdk/stubs-classes.jar to sdk/stubs-classes-header.jar, and Use
.KATI_RESTAT to cut un-necessary targets rebuilt.

3. Copy prebuilt-classes.jar to prebuilt-classes-header.jar since
Turbine doesn't apply to prebuilt.

4. Run jarjar after Turbine compilation, otherwise downstream targets
won't find corresponding symbols.

5. Change classes.jar in -classpath used in Desugar to
classes-header.jar.

6. Change legacy-libs in Proguard from classes.jar to
classes-header.jar.

7. Add .KATI_RESTAT for turbine-classes.jar, and remove IJAR.

8.boot.art is re-generated during the incremental rebuild since
javalib.jar got re-generated. Then boot.art re-triggered lots of
downstream targets to be rebuilt. So we add .KATI_RESTAT for javalib.jar
to prevent downstream to be rebuilt. The ziptime & commit-change-to-toc
operation for javalib.jar(small) didn't bring too much overhead when we build
from clean state.

Next step: specify static_java_header_libs in -classpath, and merge jars
at the end.

touch frameworks/base/core/java/com/google/android/util/Procedure.java &&
time m
time: 1m58s (794 -> 49 targets)

m clean && time m java
time: 9m34s

Bug: b/64308460

Test: m clean && m checkbuild

Change-Id: Iefcc234405b9f461b6882c06bba15e21fa783d28
2017-08-30 16:01:39 -07:00
Colin Cross
bf386cafec Merge "Separate java source list generation into its own rule"
am: f61712fbf1

Change-Id: Ib69127b00bbdaf254dc68a8387b86d7533fde46b
2017-08-30 20:03:41 +00:00
Colin Cross
dfc45ec337 Separate java source list generation into its own rule
Move the java source list generation step into its own rule.  This
has a couple of advantages.  It consolidates the source list
generation so that it only has to run once for javac, jack, and
jack-check.  It also massively reduces the length of the javac
command line, so that error messages are significantly shorter,
and allows easily rerunning the failing build command because
the file list is still on disk.

The primary disadvantage is that javac error messages no longer
include the list of files passed to javac, but the list is
available earlier in the build long when the file list was written,
and is still available on disk.

Test: m -j javac-check
Change-Id: I9730b352b33a060e08221b61c11c617d23320d67
2017-08-29 16:50:11 -07:00
Colin Cross
db17f2acf8 Merge "Fix typo when building aar" am: f759166bb8 am: 152ac2818a
am: 5c1f478231

Change-Id: Ib4eb4ed660089c86494411f8f9d3be33cb601dc0
2017-08-17 22:40:08 +00:00
Colin Cross
4a5458aed1 Fix typo when building aar
I7dced6acbe621a60cd49daf17872941485602732 introduced a typo,
fix (dir $@) to $(dir $@).

Bug: 64634025
Test: m -j on affected target
Change-Id: Ic7181631630662970337c542b73cd0de6f3f995f
2017-08-17 06:44:23 +00:00
Colin Cross
18c92897a7 Merge "Sort files in directories passed to jar" am: 966ed15a1d am: 604a2423b6
am: da54a77928

Change-Id: I5cc539e58d655dbd1730acd368ad98071079a57d
2017-08-17 01:06:44 +00:00
Colin Cross
128800f2c8 Sort files in directories passed to jar
jar -C <dir> . produces a jar containing files in filesystem order,
which can vary between builds.  Manually find and sort the list of
files, and convert them into a list of -C <dir> <file> pairs.

Fixes: 64634025
Test: m -j checkbuild
Test: m -j out/target/product/sailfish/system/framework/ext.jar, check
      that entries are sorted
Test: m -j out/target/product/generic_arm64/system/framework/ext.jar on mac
Change-Id: I7dced6acbe621a60cd49daf17872941485602732
2017-08-16 13:37:00 -07:00
Jason Tholstrup
40098dca31 Updated static_java_library.mk to support proguard options.
For reference we are trying to build an AAR and want to filter out anything private and anything marked @hide.

Test: built dist and verified package contents.

Change-Id: I2b9847501d677f56d3918ac0694e6e1f6cda32c8
Merged-In: I2b9847501d677f56d3918ac0694e6e1f6cda32c8
(cherry picked from commit 37926dedfd)
2017-08-15 16:06:04 -07:00
Colin Cross
373a13c0ca Merge "Provide make variables for java binaries" am: 5e19557eb9 am: e885ccf0df
am: d8a22925f5

Change-Id: I8681d9c889018fe656f5ef4cc380d1a3af8c325f
2017-07-01 01:45:16 +00:00
Colin Cross
e885ccf0df Merge "Provide make variables for java binaries"
am: 5e19557eb9

Change-Id: Ib1be7da98214e3b6c27867b80005e18cc68a0d33
2017-07-01 01:36:14 +00:00
Colin Cross
0851df8c82 Provide make variables for java binaries
Replace java -> $(JAVA), etc. to prepare for moving java binaries
out of the path and using full paths to them.

Test: builds
Bug: 62956999
Change-Id: I5dfcd0d4e855ecde69cd127169e9545e59723d12
2017-07-01 01:03:14 +00:00
Dan Willemsen
1683aea819 Merge changes Id0d167e6,I290a02b0 am: 90573e75a8 am: 9efa174836 am: a4d4cf335c
am: 0d1967d571

Change-Id: I808e026cf39c63715afc1e41a582e2536f25832f
2017-05-10 03:35:32 +00:00
Dan Willemsen
0d1967d571 Merge changes Id0d167e6,I290a02b0 am: 90573e75a8 am: 9efa174836
am: a4d4cf335c

Change-Id: Ia59d32b0d533c4d37ac6f8950fbfb179c34b5db3
2017-05-10 02:52:21 +00:00
Dan Willemsen
fa7ecfb752 Clean LOCAL_RESOURCE_DIR paths
With LOCAL_USE_AAPT2, resource directories like a/b/../res cause
problems, since ninja will canonicalize the path before creating the
intermediate resource directory, so it creates <intermediates>/a/res
while we give AAPT2 <intermediates>/a/b/../res, which fails to open.

Bug: 37716307
Test: Switch LOCAL_USE_AAPT2:=true for TelecommUnitTests, mma
Test: lunch aosp_marlin-userdebug; m -j
Change-Id: Id0d167e68185a119390e7b7e3c344895e77ca0e3
2017-05-05 20:50:54 -07:00
Yang Ni
1a85a7c0c0 Merge "Do not package res unless RS target API < 21" into oc-dev am: 671fc06b02
am: dfffda92e0

Change-Id: I8d94f7c60fd0af4ccfbe4996dd0c844d426d496b
2017-05-02 16:38:50 +00:00
Yang Ni
dfffda92e0 Merge "Do not package res unless RS target API < 21" into oc-dev
am: 671fc06b02

Change-Id: I06bd5247095b5960610eee2d44a82cab83198067
2017-05-02 16:26:35 +00:00
Yang Ni
6b68da0625 Do not package res unless RS target API < 21
Bug: 37626838

Since Lollipop, RS generated bitcode is embedded as strings in
generated Java files, and no longer needed in the resources.
This CL makes packaging resources conditional on RS target API, and
not do so unless it is below 21.

Test: mm in frameworks/rs/tests/java_api/Refocus, ImageProcessing2, and
      ImageProcessing_jb
Change-Id: I79a90ed4b96cb78b22a64a35b539d9d67351f4c4
(cherry picked from commit e2c0901918)
2017-05-01 20:07:45 -07:00
Yang Ni
e2c0901918 Do not package res unless RS target API < 21
Bug: 37626838

Since Lollipop, RS generated bitcode is embedded as strings in
generated Java files, and no longer needed in the resources.
This CL makes packaging resources conditional on RS target API, and
not do so unless it is below 21.

Test: mm in frameworks/rs/tests/java_api/Refocus, ImageProcessing2, and
      ImageProcessing_jb
Change-Id: I79a90ed4b96cb78b22a64a35b539d9d67351f4c4
2017-05-01 21:41:14 +00:00
Colin Cross
ffbf0a66d8 Move proguard before classes.jar
Downstream users of a library always link against javalib.jar, which
is either the dex jar for java libraries or a copy of
proguard.classes.jar for static java libraries.  In preparation for
making java libraries a superset of static java libraries, make
classes.jar always be the final class-containing jar for use
downstream, and always create a classes-pre-proguard.jar for
users that need a jar without shrinking or obfuscation.

Also rename the intermediates to be consitent: classes-<tool>.jar

Bug: 36902714
Test: m -j ANDROID_COMPILE_WITH_JACK=false java
Change-Id: I3df8b9a4edcd5db996f1fedc54c8a782d4f36a92
(cherry picked from commit 6fabefa88e)
2017-04-11 17:00:02 +00:00
Colin Cross
6fabefa88e Move proguard before classes.jar
Downstream users of a library always link against javalib.jar, which
is either the dex jar for java libraries or a copy of
proguard.classes.jar for static java libraries.  In preparation for
making java libraries a superset of static java libraries, make
classes.jar always be the final class-containing jar for use
downstream, and always create a classes-pre-proguard.jar for
users that need a jar without shrinking or obfuscation.

Also rename the intermediates to be consitent: classes-<tool>.jar

Test: m -j ANDROID_COMPILE_WITH_JACK=false java
Change-Id: I3df8b9a4edcd5db996f1fedc54c8a782d4f36a92
2017-04-01 08:46:27 -07:00
Colin Cross
8b0034c435 Merge "Pass min sdk version to dx and desugar" am: bbad7c3e1f am: 4a4325d313
am: 14fce4b072

Change-Id: If9ac3b69957689bd451fc97fe968d79f42a751e9
2017-02-23 18:24:46 +00:00
Colin Cross
536ef4e35a Pass min sdk version to dx and desugar
Test: make checkbuild
Change-Id: Idde9712508571ea623126c7d25d2fa67eccf4833
2017-02-22 11:10:37 -08:00
Colin Cross
9256be1822 Merge changes I7e8fcd2e,Ie12d743c am: 547f7393d7 am: 8283b186be
am: 7d8a028cd3

Change-Id: Ife691c9e00e766293e3648348e3c86b92f96fd56
2017-02-17 22:45:38 +00:00
Colin Cross
79e2f73b6c Re-enable dx support
This is a partial revert of commits:
858657366f Remove support of disabling Jack.
3ae7861252 Remove javac support in host dex rules.
22313f2b2a Remove rules for building dex with dx

Test: builds
Change-Id: Ie12d743cbe978bdeb030910848b67f5945a4fec8
2017-02-16 14:08:45 -08:00
Jason Tholstrup
37926dedfd Updated static_java_library.mk to support proguard options.
For reference we are trying to build an AAR and want to filter out anything private and anything marked @hide.

Test: built dist and verified package contents.

Change-Id: I2b9847501d677f56d3918ac0694e6e1f6cda32c8
2016-11-16 13:57:37 -08:00
Dan Willemsen
922ae6846b resolve merge conflicts of dd9aee1 to stage-aosp-master
Change-Id: I4278b9700c8729a06d38acc26e22ce7c340382f2
2016-07-29 14:15:14 -07:00
Dan Willemsen
3bf15e71d3 Record module type statistics
Creates a build_system_stats.txt build artifact that contains statistics
on how many BUILD_* modules are defined in a build. Also writes out
information about the Soong module types sent from the Soong build.

Merged-In: Iaf0c7062f542dc6942b5349854f3d49267cac4a5
Change-Id: Iaf0c7062f542dc6942b5349854f3d49267cac4a5
2016-07-29 19:58:35 +00:00
Dan Willemsen
1684b32620 Record module type statistics
Creates a build_system_stats.txt build artifact that contains statistics
on how many BUILD_* modules are defined in a build. Also writes out
information about the Soong module types sent from the Soong build.

Change-Id: Iaf0c7062f542dc6942b5349854f3d49267cac4a5
2016-07-28 16:47:58 -07:00
Ying Wang
edb07245a6 Include classes.jar with class files in aar.
am: 8419b7f

* commit '8419b7f35e2609d98a9da38e56e1839e21d4a298':
  Include classes.jar with class files in aar.

Change-Id: I30c12caf4a364d9586fd60bebeac929145ef6be3
2016-04-12 22:49:48 +00:00
Ying Wang
8419b7f35e Include classes.jar with class files in aar.
As we switched to Jack the LOCAL_BUILT_MODULE (javalib.jar) now
include .jayce files.

Change-Id: If802e02bb20a9e105ca9563e6fe483f7acce00e6
2016-04-12 12:57:36 -07:00
Ying Wang
81ef4714f4 Merge commit '1f07720f8518236e8438ae0f25ea7211da8c8c45' into manual_merge_1f07720
Change-Id: I5ad50aacbe99b4ebf8ae7e630f169100128b5b3c
2016-03-31 10:10:42 -07:00
Ying Wang
858657366f Remove support of disabling Jack.
We removed code and variables related to running dx on classes.jar in
this change. Also removed target emma rules (but kept the emma rules for
host java libraries), for it's now done by Jack.
We still support to build classes.jar (and javalib.jar for static Java
libraries) using javac, because tools like javadoc need class files as
input.
Removed the obsolete install-dex-debug.

Bug: 27400061
Change-Id: If0bcdfe62cb181a98754fb0dbe1c12c92e38d3e8
2016-03-30 14:03:12 -07:00
Yohann Roussel
1501a9a8b5 Merge "Use Jack to check build" into nyc-dev 2016-03-03 08:47:41 +00:00
Ying Wang
9802ee73c5 Merge "Calls aapt2 when a static Java library has LOCAL_STATIC_ANDROID_LIBRARIES" into nyc-dev
am: 2a7af11a2c

* commit '2a7af11a2ca43768814c846cc05eec061d12e960':
  Calls aapt2 when a static Java library has LOCAL_STATIC_ANDROID_LIBRARIES
2016-03-03 01:11:11 +00:00
Yohann Roussel
57a54b4199 Merge "Use Jack to check build" am: 6a9d0f9718
am: 4fd0463191

* commit '4fd0463191b316fd80b2ec8c0ba33bb5fcf5aa16':
  Use Jack to check build
2016-03-02 09:14:20 +00:00
Ying Wang
e585397497 Calls aapt2 when a static Java library has LOCAL_STATIC_ANDROID_LIBRARIES
We expect to build the module's own packare-res.apk from the
LOCAL_STATIC_ANDROID_LIBRARIES in this case.

Bug: 25958912
Change-Id: I4d0294c867f5fb636983d630493a3b188279cae9
2016-03-01 12:08:26 -08:00
Yohann Roussel
e792abc2d9 Use Jack to check build
Run jack with no outputs as a quick check for compilation errors and use
a timestamp to store that check was made.

Bug: 19069325

(cherry picked from commit 43084d9f49)

Change-Id: I9b84b503b28cfdfa245f91da0061ee3a79386b28
2016-03-01 16:57:20 +01:00
Yohann Roussel
ee57268cd7 Use Jack to check build
Run jack with no outputs as a quick check for compilation errors and use
a timestamp to store that check was made.

Bug: 19069325

(cherry picked from commit 43084d9f49)

Change-Id: I9b84b503b28cfdfa245f91da0061ee3a79386b28
2016-03-01 16:34:08 +01:00
Adam Lesinski
e758f9319d AAPT2: Enable product/config filtering and improve source ordering
- Restore old ordering of resource files to match AAPT behavior
- Change the order in which overlays are processed.

Change-Id: I9da88f6b4124e7f89a70eb485b4591d5c4c87d38
2016-02-26 16:11:20 -08:00
Ying Wang
e295c3df68 AAPT2: library resource compilation
- Switch to static library's package-res.apk as the link artifact.
- For prebuilt AAR file, build package-res.apk using aapt2's "--dir"
  option.
- New LOCAL variables:
  LOCAL_USE_AAPT2: a module can opt-in with "LOCAL_USE_AAPT2 := true".
  LOCAL_STATIC_ANDROID_LIBRARIES: static Java libraries with compiled
                   resources.
  LOCAL_SHARED_ANDROID_LIBRARIES: shared Java libraries with compiled
                   resources.

Bug: 25958912
Change-Id: I4be2d1e8137555986338c2583cb39b0c97391751
2016-02-26 10:44:56 -08:00
Ying Wang
dd71c85a45 Support to build with AAPT2
To build with AAPT2, set "USE_AAPT2=true".
TODO: Support split apks and generated resources from other than renderscript.

Bug: 25958912
Change-Id: I19b1a038824ce5b2a3d3ffadbce3173c845193fc
2016-01-25 22:41:43 -08:00
Ying Wang
0afedd89f7 Merge "Move "include configure_local_jack.mk"" am: 5799af6563
am: 50b3d28dcc

* commit '50b3d28dcc66c6af4821d9655c782365a11fe284':
  Move "include configure_local_jack.mk"
2016-01-13 18:45:01 +00:00
Ying Wang
a8f28ff859 Move "include configure_local_jack.mk"
Move "include configure_local_jack.mk" out of the scope of
"ifdef LOCAL_RESOURCE_DIR".

Change-Id: I67bbb4e6b59414559219d24136ff91ba799fda25
2016-01-11 13:34:16 -08:00
Michael Wright
0fb087fc73 Add new Test API for CTS testing.
Bug: 25608286
Change-Id: I0334061b548970959e46392dc3a1feed8533548c
2015-11-25 11:38:44 +00:00
Yohann Roussel
d2a76c14bf Change built module of static java libraries
Set LOCAL_BUILT_MODULE of static java libraries when Jack is enabled
to classes.jack instead of javalib.jar.
This allows that running mm in those libraries will build classes.jack
instead of the jar.

Change-Id: I96b4b227848e971df96331b3f0cc731e856be349
2015-02-18 22:54:18 +01:00