aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/ideinfo
Commit message (Collapse)AuthorAge
* Replace native AndroidStudioInfoAspect with an error message.Gravatar Googler2017-03-21
| | | | | | | | BUG=33295755 -- PiperOrigin-RevId: 150633735 MOS_MIGRATED_REVID=150633735
* Add a source_jars variable to OutputJar.Gravatar Irina Iancu2017-03-08
| | | | | | | | | | | Having a correlation between an output jar and a source jar is not enough. There may be situations when an output jar is generated from more source jars, not just one. We need this flexibility especially in Skylark for the java sandwich, when the user can compile multiple source jars. -- PiperOrigin-RevId: 149510534 MOS_MIGRATED_REVID=149510534
* Rollback of commit 4b73e972d909bcd533f2f9940f95a00b9b73bdde.Gravatar Dmitry Lomov2017-02-17
| | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Broke tests on CI: http://ci.bazel.io/job/bazel-tests/570/ *** Original change description *** Roll forward execroot change RELNOTES[INC]: Previously, an external repository would be symlinked into the execution root at execroot/local_repo/external/remote_repo. This changes it to be at execroot/remote_repo. This may break genrules/Skylark actions that hardcode execution root paths. If this causes breakages for you, ensure that genrules are using $(location :target) to access files and Skylark rules are using http://bazel.io/docs/skylark/lib/File.html's path, dirname, etc. functions. Cust... -- PiperOrigin-RevId: 147833177 MOS_MIGRATED_REVID=147833177
* Roll forward execroot changeGravatar Kristina Chodorow2017-02-16
| | | | | | | | | | | | | | | | | RELNOTES[INC]: Previously, an external repository would be symlinked into the execution root at execroot/local_repo/external/remote_repo. This changes it to be at execroot/remote_repo. This may break genrules/Skylark actions that hardcode execution root paths. If this causes breakages for you, ensure that genrules are using $(location :target) to access files and Skylark rules are using http://bazel.io/docs/skylark/lib/File.html's path, dirname, etc. functions. Custom crosstools that hardcode external/<repo> paths will have to be updated. Issue #1262. -- PiperOrigin-RevId: 147726370 MOS_MIGRATED_REVID=147726370
* Remove the ability for an aspect to propagate a different aspect.Gravatar Dmitry Lomov2017-01-20
| | | | | | | | | This functionality is never used, have never been exposed to Skylark and is a continuous pain to maintain and test. -- PiperOrigin-RevId: 145079832 MOS_MIGRATED_REVID=145079832
* Pass isExternal field to blaze ide info protoGravatar Googler2016-12-07
| | | | | | | | | | | | | | | | Roll forward after fixing tests. Changes from rolled-back CL: Native aspect now determines 'isExternal' identically to skylark aspect. RepositoryName.isMain was unreliable (at least in testing environment), because unknown repos (occurring due to some race condition) are flagged as being in the 'default' repo, distinct from the 'main' repo. We now bypass RepositoryName entirely, and use the same label string heuristic as used in the Skylark aspect. -- PiperOrigin-RevId: 141314075 MOS_MIGRATED_REVID=141314075
* Rollback of commit 84e7bbc03d22a98e1036c9a3abf1d451e602348b.Gravatar Damien Martin-Guillerez2016-12-06
| | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** This change make AndroidStudioInfoAspectTest#testAndroidLibrary flaky bazel test --nocache_test_results --runs_per_test 10 //src/test/java/com/google/devtools/build/lib:ideinfo_test gives 2 to 3 failures out of 10 run. Fixes #2192 *** Original change description *** Pass isExternal field to blaze ide info proto Roll forward after fixing tests. The intellij aspect tests now correctly retains the required toolchain targets in the WORKSPACE file. -- PiperOrigin-RevId: 141174688 MOS_MIGRATED_REVID=141174688
* Pass isExternal field to blaze ide info protoGravatar Googler2016-12-06
| | | | | | | | | Roll forward after fixing tests. The intellij aspect tests now correctly retains the required toolchain targets in the WORKSPACE file. -- PiperOrigin-RevId: 141093346 MOS_MIGRATED_REVID=141093346
* Rollback of commit 9de9f374cf63e8e6938c9ce80820c9f46f641241.Gravatar Damien Martin-Guillerez2016-12-05
| | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Broke ci.bazel.io See http://ci.bazel.io/job/bazel-tests/BAZEL_VERSION=HEAD-jdk7,PLATFORM_NAME=linux-x86_64/379/console for error log. See https://cr.bazel.build/7610/ for tests that confirm fix. *** Original change description *** Pass isExternal field to blaze ide info proto -- Change-Id: Ieff9fbc719ea7baf8321bf50570fae5f7d6c7fdd Reviewed-on: https://cr.bazel.build/7610 PiperOrigin-RevId: 141029777 MOS_MIGRATED_REVID=141029777
* Pass isExternal field to blaze ide info protoGravatar Googler2016-12-02
| | | | | | -- PiperOrigin-RevId: 140862659 MOS_MIGRATED_REVID=140862659
* Rename android_studio_ide_info proto and members.Gravatar Googler2016-11-29
| | | | | | | | | android_studio_ide_info -> intellij_ide_info RuleIdeInfo -> TargetIdeInfo Drop "rule" from all sub-ide infos (eg. JavaRuleIdeInfo -> JavaIdeInfo) -- MOS_MIGRATED_REVID=140438983
* Provide AspectDescriptor to ConfiguredAspect.Gravatar Dmitry Lomov2016-11-29
| | | | | | | | Also clean up the setting of aspect name in ConfiguredAspect and AspectDefintion - it is now obtained from the AspectClass. -- MOS_MIGRATED_REVID=140357052
* Propertly join multiple arguments to jar filter.Gravatar Googler2016-11-17
| | | | | | | Also add test to make sure jar filter handles multiple source jars correctly (which it already did). -- MOS_MIGRATED_REVID=139462526
* Handle python rules in intellij aspectGravatar Googler2016-11-04
| | | | | -- MOS_MIGRATED_REVID=138182982
* Remove deprecated kind in IDE aspect.Gravatar Googler2016-10-25
| | | | | -- MOS_MIGRATED_REVID=137178015
* Support input srcjar in filtered gen jar.Gravatar Googler2016-10-14
| | | | | | | | | | | This supports genrules that output srcjars that are then inputs to java_libraries. Also add support to produce a source jar with the contents of the gen jar. -- MOS_MIGRATED_REVID=136099457
* ide-compile output group now mirrors the compile-only output group for cc rulesGravatar Googler2016-10-12
| | | | | -- MOS_MIGRATED_REVID=135816762
* Rollback of commit f21d35ead25167ca7191229c7a365ccdf1a2550e.Gravatar Googler2016-10-07
| | | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** With this approach, the R.class winds up in the filtered jar because its origin isn't among the "normal" Java sources. I'll have to be a little smarter, but start with rolling this back. *** Original change description *** Support srcjar files in filtered gen jar. If a java_library has any srcjar files in its sources attribute, the output of these would be discarded. To make it more robust, invert the jar filter to keep everything *except* source artifact java files. Previously, we would build a manifest containing all the generated java files and use that to filter. This should also be ever so slightly faster since we can skip an action. -- MOS_MIGRATED_REVID=135406849
* Support srcjar files in filtered gen jar.Gravatar Googler2016-10-07
| | | | | | | | | | | | | | | | If a java_library has any srcjar files in its sources attribute, the output of these would be discarded. To make it more robust, invert the jar filter to keep everything *except* source artifact java files. Previously, we would build a manifest containing all the generated java files and use that to filter. This should also be ever so slightly faster since we can skip an action. -- MOS_MIGRATED_REVID=135351129
* Export idl_import_root to Android Studio, so that we know the packages of ↵Gravatar Googler2016-09-30
| | | | | | | new AIDL files in relation to their location. -- MOS_MIGRATED_REVID=134687843
* Fix IDE aspect crash when traversing a data mode deps attr.Gravatar Googler2016-09-29
| | | | | -- MOS_MIGRATED_REVID=134566270
* Remove absolute paths from protoGravatar Googler2016-09-21
| | | | | | | RELNOTES: Remove deprecated absolute paths in blaze IDE artifacts -- MOS_MIGRATED_REVID=133758389
* Add a specialized TransitiveInfoProviderMap to map TransitiveInfoProviders ↵Gravatar Googler2016-09-19
| | | | | | | | | | | | by class. TransitiveInfoProviderMap enforces that the provider implements the interface it's keyed by and provides accessors the reduce the amount of casting. This in general reduces boilerplate throughout wherever TransitiveInfoProviders are mapped by their class. Also add shorthand for adding a provider where it only implements TransitiveInfoProvider once, reducing the redundant specification of the TransitiveInfoProvider class. Infer the class as the exclusive direct implementor of TransitiveInfoProvider to account for special cases like AutoValue and LicenseProvider. -- MOS_MIGRATED_REVID=133386336
* Add an "is main repo" field to RootsGravatar Kristina Chodorow2016-09-09
| | | | | | | This is part of prepping for #1262. -- MOS_MIGRATED_REVID=132553178
* Adds a jar filter to the IntelliJ IDE aspect.Gravatar Googler2016-09-06
| | | | | | | | | | | | | | | | Any java rule that mixes generated and non-generated sources will produce a filtered jar containing only the generated output. For a java rule with only "normal" sources or only generated source files, no filtered jar is produced. This will allow the IDE to resolve those generated sources. RELNOTES:None -- MOS_MIGRATED_REVID=132113568
* Add the repository name as a parameter to the output path functionsGravatar Kristina Chodorow2016-08-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This doesn't do anything yet, it's in preparation for the execroot rearranging change. The execroot will have one bazel-out per repo, so it'll look like: execroot/ repo1/ bazel-out/ local-fastbuild/ bin/ repo2/ bazel-out/ local-fastbuild/ bin/ genfiles/ repo3/ bazel-out/ local-fastbuild/ testlogs/ and so on. Thus, any output path (getBinDirectory() & friends) needs to know what the repo name is. This changes so many places in the code I thought it would be good to do separately, then just flip the functionality in the execroot-rearranging commit. While I was poking around, I changed all of the refs I could from getPackageRelativeArtifact() to getBin/GenfilesArtifact(), so that 1) rule implementation don't have to know as much about roots and 2) they'll be more isolated from other output dir changes. `bazel info` and similar just return roots for the main repository. The only "change" is passing around a target label in the Java rules. Continues work on #1262. -- MOS_MIGRATED_REVID=129985336
* Add ide-compile output group to IDE aspect.Gravatar Googler2016-08-11
| | | | | | | | | | | | This output group will contain all artifacts that are needed to compile the project (and get compilation errors), but aren't needed during the resolve step. Initially ide-compile is the object file output from any cc_* rule, so we can get compile errors. -- MOS_MIGRATED_REVID=129937436
* Rollback of commit fbaa700337bf0cf9083f083e6cd0d2f82faf1506.Gravatar Googler2016-08-11
| | | | | | | | | | | | | | | | *** Reason for rollback *** I want to do this in a way that exposes the data attribute only for android_test and android_binary, so I'll add it to the deploy manifest instead. *** Original change description *** Expose test "data" attribute to IDE. This is needed to deploy android_tests to the device for testing. For symmetry we expose it for all tests rules. -- MOS_MIGRATED_REVID=129926351
* Expose test "data" attribute to IDE.Gravatar Googler2016-08-11
| | | | | | | | This is needed to deploy android_tests to the device for testing. For symmetry we expose it for all tests rules. -- MOS_MIGRATED_REVID=129918247
* Rename some PackageId and RepositoryName fields/methods in prep for deep ↵Gravatar Kristina Chodorow2016-07-28
| | | | | | | | | | | | | execroot change This is in prep for making the execution root path for external repositories ../repo_name (instead of external/repo_name). Right now, the getRunfilesPath() returns that path, so that is renamed getExecRoot() (since the runfiles are really just a reflection of the execRoot structure). getSourceRoot() replaces getPathFragment, which has always been a confusing name (it's not clear from the name what the difference is between it and getPackageFragment()). It returns the relative path to source files for external repositories (external/repo_name). Also renamed/moved to more sensible class a few static RepositoryName fields. -- MOS_MIGRATED_REVID=128594419
* Add cc transitive headers to ide-resolve output groupGravatar Googler2016-07-07
| | | | | | | | | | Both source and generated hdrs are included in the output group. Might be cleaner to only include generated headers -- perhaps by adding a new field to CppCompilationContext. This solution seems lighter-weight, however. -- MOS_MIGRATED_REVID=126725901
* Implement missing IDE skylark aspect functionality.Gravatar Googler2016-06-07
| | | | | | | | * Support package manifest * Add android_resource support -- MOS_MIGRATED_REVID=124187461
* Add resource_jar to android_studio_info.proto.Gravatar Googler2016-06-03
| | | | | | | | | The IDE currently extracts these from the output jars by a fragile string comparison. This will allow the IDE to do so more robustly (eg. in case the resource jar output is renamed). -- MOS_MIGRATED_REVID=123939803
* Add java_toolchain to IDE aspect output.Gravatar Googler2016-06-02
| | | | | -- MOS_MIGRATED_REVID=123858617
* Restore proto_library#JavaRuleOutputJarsProvider.Gravatar Googler2016-06-01
| | | | | -- MOS_MIGRATED_REVID=123675084
* Defer converting IDE aspect output to string.Gravatar Googler2016-05-27
| | | | | | | | | If we convert the aspect to a string it's kept in the analysis cache along with the original proto, even if the associated action is never used. -- MOS_MIGRATED_REVID=123280808
* Do not include generated sources in the IDE package manifests.Gravatar Googler2016-05-24
| | | | | | | | | | The IDE doesn't add generated sources. Including these causes execution of actions that generate sources, including building whatever tools they need. This is not necessary for the IDE stage. -- MOS_MIGRATED_REVID=123004127
* Change the way protos report their output.Gravatar Googler2016-05-23
| | | | | -- MOS_MIGRATED_REVID=122846987
* Remove unnecessary aspect CC bloat.Gravatar Googler2016-05-17
| | | | | | | | | | | * Do not include cc info for non-C rules * Omit exported headers (unused on the IDE side) This CL reduces aspect output size (and memory footprint) by ~50MB for an example real-life project. -- MOS_MIGRATED_REVID=122537339
* Make CppConfiguration fragment available from CcToolchainProvider.Gravatar Googler2016-05-13
| | | | | -- MOS_MIGRATED_REVID=122170387
* Add test size attribute to IntelliJ IDE info.Gravatar Googler2016-05-06
| | | | | -- MOS_MIGRATED_REVID=121612007
* --Gravatar Googler2016-05-03
| | | | MOS_MIGRATED_REVID=121373163
* Delete the interface NativeAspectFactory and make native aspects extend from ↵Gravatar Luis Fernando Pino Duque2016-04-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NativeAspectClass. This a large refactoring of the aspects, currently we have the following: - AspectClasses: The interface AspectClass is a implemented by either SkylarkAspectClass or NativeAspectClass<NativeAspectFactory>. They are wrappers for the AspectFactories and they hold the information about the Class<> of the factory. - AspectFactories (FooAspect.java): Represented by the interfaces ConfiguredAspectFactory and NativeAspectFactory, also by the interface ConfiguredNativeAspectFactory which is the union of the two aforementioned interfaces. All aspects implement ConfiguredNativeAspectFactory except Skylark aspects which implement only ConfiguredAspectFactory. After this CL the distinction between NativeAspectFactories and NativeAspectClasses dissappear, namely aspect that extends NativeAspectClass is considered native and if it implements ConfiguredAspectFactory it is configured. Therefore the interfaces NativeAspectFactory and ConfiguredNativeAspectFactory both disappear. With this refactoring the aspectFactoryMap in the ConfiguredRuleClassProvider changes its type from (String -> Class<? extends NativeAspectClass>) to (String -> NativeAspectClass) which means it is now able to have an instance of the aspect instead of its Class only. By doing this, it is now possible to pass parameters when creating an aspect in the ConfiguredRuleClassProvider. -- MOS_MIGRATED_REVID=120819647
* Remove reliance on exact rule classes in AndroidStudioInfoAspect.Gravatar Googler2016-04-14
| | | | | -- MOS_MIGRATED_REVID=119755803
* Support java_wrap_cc in intellij aspect.Gravatar Googler2016-03-30
| | | | | -- MOS_MIGRATED_REVID=118565877
* Export cc build information in an aspect for IDE support.Gravatar Googler2016-03-21
| | | | | -- MOS_MIGRATED_REVID=117560803
* Add full support for android_resources to AndroidStudioInfoAspect.Gravatar Googler2016-03-08
| | | | | | | | | | For backwards compatibility reasons, resources show up in both the originating rule as well as the containing rule. Implementations can check the :resources attribute to see if they should ignore their resources. -- MOS_MIGRATED_REVID=116698804
* Support android_resources in Android Studio.Gravatar Googler2016-03-08
| | | | | -- MOS_MIGRATED_REVID=116549753
* Expose Android resources in Skylark API.Gravatar Dmitry Lomov2016-02-25
| | | | | | | | Also expose functionality to calculate resource source directory from Android resource artifact. -- MOS_MIGRATED_REVID=115492705
* Expose to Skylark information about whether a target defines any Android ↵Gravatar Dmitry Lomov2016-02-24
| | | | | | | | | | | | resources. In Java code, it is a shared logic in LocalResourceContainer.definesAndroidResources (that method has a fair number of usages). This CL exposes that information on AndroidIdeInfoProvider and futher on AndroidSkylarkInforProvider. -- MOS_MIGRATED_REVID=115453472