aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
Commit message (Collapse)AuthorAge
* Allow android_library with android resource attributes to have deps without ↵Gravatar Googler2016-03-11
| | | | | | | | | | srcs instead of throwing an error. Implicit exporting of the deps of an android_library rule that doesn't have srcs is deprecated and will soon be removed. -- MOS_MIGRATED_REVID=116988446
* Adds ResourceShrinkerAction to android_binary targets if they use Proguard ↵Gravatar Andrew Pellegrini2016-03-08
| | | | | | | | | and specify --experimental_android_resource_shrinking on the command line. RELNOTES: Specifying --experimental_android_resource_shrinking on the command line will enable a resource shrinking pass on android_binary targets that already use Proguard. -- MOS_MIGRATED_REVID=116572863
* Make another JavaCommon method static to reduce reliance on mutability.Gravatar Ulf Adams2016-02-23
| | | | | -- MOS_MIGRATED_REVID=115337586
* Add JavaSkylarkApiProvider to all Java rules.Gravatar Dmitry Lomov2016-02-10
| | | | | -- MOS_MIGRATED_REVID=114232294
* Export the AndroidManifest.xml from the resource processing. This is an ↵Gravatar Googler2016-01-25
| | | | | | | initial step toward changing the manifest merge to use the Gradle merger, as well as ensuring the custom library package is reflected in the manifest. -- MOS_MIGRATED_REVID=112943820
* Fix transitive native library collection in android_libraryGravatar Liam Miller-Cushon2015-12-16
| | | | | | | Native dependencies should be collected from both deps and exports. -- MOS_MIGRATED_REVID=110279453
* Remove the unchecked exceptions RuleConfigurationException, InvalidAssetPath ↵Gravatar Lukacs Berki2015-12-07
| | | | | | | | | | | and InvalidResourcePath. Mainly to make the error handling in the Android code more similar to the rest of the code. There are a few more if statements, but I think the fact that AndroidIdeInfoProvider#addResourceSource didn't catch this unchecked exception vindicates this decision. DIFFBASE=108487079 -- MOS_MIGRATED_REVID=109566747
* Fix android_library resources handlingGravatar Googler2015-12-07
| | | | | | | RELNOTES: Fix resource handling for exported android_library rules -- MOS_MIGRATED_REVID=109532253
* Require that the Android manifest be called AndroidManifest.xmlGravatar Lukacs Berki2015-11-24
| | | | | | | | | aapt requires this. Also eliminate a few places where the unchecked RuleConfigurationException is thrown. -- MOS_MIGRATED_REVID=108491660
* Makes resources defined locally on an android_library rule respect the ↵Gravatar Andrew Pellegrini2015-11-19
| | | | | | | | | neverlink attribute. RELNOTES: Resources defined locally on an android_library rule will respect the neverlink attribute. -- MOS_MIGRATED_REVID=108178381
* Support exports attribute for android_libraryGravatar Googler2015-11-13
| | | | | | | RELNOTES: Support exports attribute for android_library -- MOS_MIGRATED_REVID=107681545
* Clean up JavaCommon constructorsGravatar Googler2015-11-06
| | | | | | | BUG: 14473160 -- MOS_MIGRATED_REVID=107235668
* Disallow jars in srcs of java-based rulesGravatar Liam Miller-Cushon2015-11-04
| | | | | -- MOS_MIGRATED_REVID=107000128
* Trying again with checking for the presence of the "resources" attribute and ↵Gravatar Googler2015-10-21
| | | | | | | | | | | | | | | | | deduplication of transitive and direct dependencies in the AndroidProcessingAction. Change the resource dependency handling to separate between the transitive and direct resources from libraries. This slightly increases the complexity of resource propagation. The initial algorithm was to simply merge all transitive ResourceContainers together with any new ResourceContainer and propagate them via the AndroidResourcesProvider. The new algorithm is encapsulated inside a new ResourceDependencies class which works as follows: 1. Collect resources from the deps into transitive and direct NestedSets 2. If a rule provides a ResourceContainer, merge the transitive and direct into a new transitive set 3. Export the provider This results having a rule without resources "forward" the merged sets of transitive and direct resources to the next rule. -- MOS_MIGRATED_REVID=105960655
* Automated [] rollback of [].Gravatar Eric Fellheimer2015-10-20
| | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Breaks many android targets in the depot. *** Original change description *** Trying again with checking for the presence of the "resources" attribute. Change the resource dependency handling to separate between the transitive and direct resources from libraries. This slightly increases the complexity of resource propagation. The initial algorithm was to simply merge all transitive ResourceContainers together with any new ResourceContainer and propagate them via the AndroidResourcesProvider. The new algorithm is encapsulated inside a new ResourceDependencies class which... *** ROLLBACK_OF=105631635 -- MOS_MIGRATED_REVID=105752015
* Trying again with checking for the presence of the "resources" attribute.Gravatar Googler2015-10-19
| | | | | | | | | | | | | | | Change the resource dependency handling to separate between the transitive and direct resources from libraries. This slightly increases the complexity of resource propagation. The initial algorithm was to simply merge all transitive ResourceContainers together with any new ResourceContainer and propagate them via the AndroidResourcesProvider. The new algorithm is encapsulated inside a new ResourceDependencies class which works as follows: 1. Collect resources from the deps into transitive and direct NestedSets 2. If a rule provides a ResourceContainer, merge the transitive and direct into a new transitive set 3. Export the provider This results having a rule without resources "forward" the merged sets of transitive and direct resources to the next rule. -- MOS_MIGRATED_REVID=105631635
* []Rollback of commit 65425810207c9fd6892abfaa95da65e25db5e515.Gravatar Googler2015-10-16
| | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Breaks []. *** Original change description *** Change the resource dependency handling to separate between the transitive and direct resources from libraries. This slightly increases the complexity of resource propagation. The initial algorithm was to simply merge all transitive ResourceContainers together with any new ResourceContainer and propagate them via the AndroidResourcesProvider. The new algorithm is encapsulated inside a new ResourceDependencies class which works as follows: 1. Collect resources from the deps into transitive and... *** -- MOS_MIGRATED_REVID=105598448
* Change the resource dependency handling to separate between the transitive ↵Gravatar Googler2015-10-16
| | | | | | | | | | | | | | | and direct resources from libraries. This slightly increases the complexity of resource propagation. The initial algorithm was to simply merge all transitive ResourceContainers together with any new ResourceContainer and propagate them via the AndroidResourcesProvider. The new algorithm is encapsulated inside a new ResourceDependencies class which works as follows: 1. Collect resources from the deps into transitive and direct NestedSets 2. If a rule provides a ResourceContainer, merge the transitive and direct into a new transitive set 3. Export the provider This results having a rule without resources "forward" the merged sets of transitive and direct resources to the next rule. -- MOS_MIGRATED_REVID=105515074
* Allow Java libraries to export and propagate proguard_specs.Gravatar Michael Staib2015-10-06
| | | | | | | | | | | | | | | It may be the case that a library used by Java clients is also used by Android clients, but when used for the latter, it requires a particular Proguard configuration. This change modifies Java library rules to accept Proguard specs and pass them up to Android rules. Note that this does not cause Proguard to be used on normal Java binaries. RELNOTES[NEW]: java_library now supports the proguard_specs attribute for passing Proguard configuration up to Android (not Java) binaries. -- MOS_MIGRATED_REVID=104661799
* Add Android IDL jar outputs.Gravatar Googler2015-09-28
| | | | | | | | | | These outputs are a jar and source jar for the results of aidl processing. This is used to add aidl output to IDEs separate from the source code, similar to annotation output (gen jars). -- MOS_MIGRATED_REVID=104024453
* Rationalize copyright headersGravatar Damien Martin-Guillerez2015-09-25
| | | | | | | | | | | The headers were modified with `find . -type f -exec 'sed' '-Ei' 's|Copyright 201([45]) Google|Copyright 201\1 The Bazel Authors|' '{}' ';'` And manual edit for not Google owned copyright. Because of the nature of ijar, I did not modified the header of file owned by Alan Donovan. The list of authors were extracted from the git log. It is missing older Google contributors that can be added on-demand. -- MOS_MIGRATED_REVID=103938715
* Rollback of commit 402d112bc25449f1e690bbbace600bbcda834d24.Gravatar Googler2015-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Rollforward with fix *** Original change description *** Automated [] rollback of []. *** Reason for rollback *** Breaks tests. *** Original change description *** Remove gen jar implicit output. This allows us to only create a jar for libraries that use annotation processing. It also increases our flexibility by reducing the visibility of these gen jars to an undocumented output group. -- MOS_MIGRATED_REVID=103833283
* Rollback of commit 53330510c6ea5cd6257b9981b44e52d15a9e01aa.Gravatar Googler2015-09-24
| | | | | | | | | | | | | | | | | *** Reason for rollback *** Breaks tests. *** Original change description *** Remove gen jar implicit output. This allows us to only create a jar for libraries that use annotation processing. It also increases our flexibility by reducing the visibility of these gen jars to an undocumented output group. -- MOS_MIGRATED_REVID=103800137
* Remove gen jar implicit output.Gravatar Googler2015-09-24
| | | | | | | | | This allows us to only create a jar for libraries that use annotation processing. It also increases our flexibility by reducing the visibility of these gen jars to an undocumented output group. -- MOS_MIGRATED_REVID=103789186
* Remove gen jar info from JavaRuleOutputJarsProvider.Gravatar Googler2015-09-24
| | | | | -- MOS_MIGRATED_REVID=103754313
* Make gen jars output group transitive.Gravatar Googler2015-09-24
| | | | | | | Also add gen jar provider, which we'll need for ide support. -- MOS_MIGRATED_REVID=103744649
* Stop AndroidResourceProcessingAction from creating a "_resources" folder in ↵Gravatar Andrew Pellegrini2015-09-22
| | | | | | | the source tree when invoked from ApplicationManifest and AndroidLibrary. -- MOS_MIGRATED_REVID=103648946
* Implement support for android_library and android_binary in ↵Gravatar Dmitry Lomov2015-09-22
| | | | | | | AndroidStudioInfoAspect. -- MOS_MIGRATED_REVID=103635637
* Unify AndroidLibrary code paths.Gravatar Googler2015-09-21
| | | | | | | | | | There were 2-3 code paths taken depending on whether resources are defined or not. These contained a lot of duplication. This CL factors out the similarities. -- MOS_MIGRATED_REVID=103538550
* Separate build-specific types and types inherent to Skylark.Gravatar Lukacs Berki2015-09-21
| | | | | -- MOS_MIGRATED_REVID=103374106
* Prevented catching/wrapping of InterruptedExceptions, especially in ↵Gravatar Florian Weikert2015-09-14
| | | | | | | BaseFunction. -- MOS_MIGRATED_REVID=102988766
* Make Android rules work againGravatar Lukacs Berki2015-09-08
| | | | | | | They were broken by commit 05e2c5b4e0da2f88e12d95adbc63cc3d46a6fca6. -- MOS_MIGRATED_REVID=102546907
* Switches AndroidRobolectricTest to using .aars to provide transitive ↵Gravatar Andrew Pellegrini2015-09-01
| | | | | | | | | | | resources to the test runner instead of ResourceContainers. Update AndroidLibraryAarProvider to contain transitive closure of .aars. Provides an ~4x speed improvement in test startup time. NEW: Switched to ordered maps in CompositeLibraryAndroidManifestLocator to prevent manifest ordering flakiness bug. Switched to ImmutableSetMultimap in CompositeLibraryAndroidManifestLocator to prevent IllegalArgumentExceptions from duplicate package aliases and added test. RELNOTES: android_resources is no longer allowed as a dep for android_robolectric_test. -- MOS_MIGRATED_REVID=101972311
* Expose java_import and android_library information to skylarkGravatar Liam Miller-Cushon2015-08-27
| | | | | -- MOS_MIGRATED_REVID=101579648
* Description redacted.Gravatar Andrew Pellegrini2015-08-04
| | | | | -- MOS_MIGRATED_REVID=99828091
* Rollback of commit 6c2303c461478c6082a29b969e49ad5adb0029aa.Gravatar Andrew Pellegrini2015-08-04
| | | | | -- MOS_MIGRATED_REVID=99505283
* Check that most output artifacts are under a directory determined by the ↵Gravatar Lukacs Berki2015-07-29
| | | | | | | | | repository and package of the rule being analyzed. Currently this directory is PACKAGE for rules in the main repository and external/REPOSITORY_NAME/PACKAGE for rules in other repositories. This is a plan to fix #293. Ideally, we would simply make it impossible to create artifacts not under that location, but in practice, we cannot do that because some rules do want to do this, mostly those that are already problematic due to shared actions. So the battle plan is to eliminate as many calls to AnalysisEnvironment.getDerivedArtifact() as I possibly can and audit the rest. -- MOS_MIGRATED_REVID=99351151
* --Gravatar Googler2015-07-29
| | | | MOS_MIGRATED_REVID=99312812
* Switches AndroidRobolectricTest to using .aars to provide transitive ↵Gravatar Andrew Pellegrini2015-07-29
| | | | | | | | | resources to the test runner instead of ResourceContainers. Update AndroidLibraryAarProvider to contain transitive closure of .aars. Provides an ~4x speed improvement in test startup time. RELNOTES: android_resources is no longer allowed as a dep for android_robolectric_test. -- MOS_MIGRATED_REVID=99296321
* Adds gen jar and manifest proto outputs.Gravatar Alex Humesky2015-07-10
| | | | | | | Adds a jar output to Java and Android rules which contains the class files for source files generated from Java annotation processors. For a java_binary foo, the jar will be foo-gen.jar, and for a java_library foo the jar will be libfoo-gen.jar, and similarly for Android. Also adds a binary serialized proto manifest file output to Java and Android rules which describes the contents of the output class jar of those rules, which is used to create the -gen.jar. See src/main/protobuf/java_compilation.proto. -- MOS_MIGRATED_REVID=97793715
* Remove support for non-android_sdk Android SDKs.Gravatar Lukacs Berki2015-06-24
| | | | | | | AndroidTools is not passed around anymore. This comes at the cost of having to remember to raise an error in every rule configured target factory, but I think this is preferable to shuttling a variable around. -- MOS_MIGRATED_REVID=96746874
* Add a tools/android/jack package to the Bazel tree so that Android rules ↵Gravatar Lukacs Berki2015-06-17
| | | | | | | | | actually work. This is a temporary measure until these targets are integrated into android_sdk . Also make handling invalid tools/android/jack packages in JackCompilationHelper a bit more robust. -- MOS_MIGRATED_REVID=96202009
* Adds a new input and output to resource processing, symbols txt, which will ↵Gravatar Googler2015-06-16
| | | | | | | be used to express the direct dependencies for resource processing. -- MOS_MIGRATED_REVID=96037997
* Various odds and ends in preparation for adding the Android rules to ↵Gravatar Lukacs Berki2015-06-12
| | | | | | | | | | | | BazelRuleClassProvider: - Add stub targets to tools/android/BUILD - Make Constants.ANDROID_DEFAULT_SDK non-constant so that the classfile can be replaced in the .jar - Make AndroidTools complain if --android_sdk does not point to an android_sdk rule. - Make the default visibility in the BUILD file generated by android_sdk_repository public -- MOS_MIGRATED_REVID=95816158
* Merges class jars specified as srcs into the android library class jar in ↵Gravatar Andrew Pellegrini2015-06-10
| | | | | | | | | order to create the classes.jar to be used in aar generation. RELNOTES: The classes.jar in .aar files now also contains the contents of any class jars specified in the android_library.srcs attribute. -- MOS_MIGRATED_REVID=95542278
* Move the source code of the Android rules to the Bazel tree.Gravatar Lukacs Berki2015-05-19
This is mostly a "[] mv", except for the extra constant that specifies the location of the Android SDK and moving the $zip attribute. They are minor enough to be included in this CL. Tested by creating a Bazel tree, compiling it and verifying that the Android classes are in libblaze.jar. I also eyeballed the source as a final check that nothing sensitive gets leaked. -- MOS_MIGRATED_REVID=93971892