aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
Commit message (Collapse)AuthorAge
* Fix resource filtering bug in interaction between densities and API versionGravatar Googler2017-06-16
| | | | | | | | | | | | | | | | | | | | ResourceFilter, following Aapt's behavior, ignored the 'version' qualifier. However, ResourceFilter also filters by densities, which is not supposed to ignore the version qualifier. Change ResourceFilter to only ignore the version qualifier when filtering by resource_configuration_filters, not densities. Without this change, when filtering by density, ResourceFilter would treat, for example, res-hdpi-v4/foo.png and res-hdpi-v11/foo.png as identical, even though they have different versions, and only use one of them when building the newly filtered list of resources. Instead, they should both be included. Also include a unit test that covers this behavior. Rather than add this in AndroidBinaryTest, create a new ResourceFilterTest class. To support that, move ResourceFilter from using the test-unfriendly RuleContext class to the easy-to-fake RuleErrorConsumer whenever possible. RELNOTES: none PiperOrigin-RevId: 159122507
* Add more methods to ExternalPackageUtil to load all rules of a specificGravatar John Cater2017-06-16
| | | | | | | rule class. Change-Id: Iaa830658a62de661f16e100d24b2d1a3e66af638 PiperOrigin-RevId: 159104714
* Mitigate GC churn in module map file writes: No need to pin entire contents ↵Gravatar felly2017-06-16
| | | | | | in memory. Instead, write to the output stream incrementally. PiperOrigin-RevId: 159046844
* Automated g4 rollback of commit 5c2dc673a3ad2aa52f25c6f7d767671ba3e9b02c.Gravatar corysmith2017-06-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Appears that the generated R classes are not correct, causing test failures. *** Original change description *** Automated g4 rollback of commit 1be84ee92a825694b0c0026ac77134f8a084bd9c. *** Reason for rollback *** Rolling forward with the generated resources directory being created for tests without resources. *** Original change description *** Automated g4 rollback of commit d028d7854d3e95d97143945a1ec32944e5e4594b. *** Reason for rollback *** Breaks 1000+ targets in the depot: [] *** Original change description *** Generate pre-reconciled ids R classes for dependen... *** RELNOTES: None PiperOrigin-RevId: 159032530
* Remove useless comments.Gravatar nharmata2017-06-16
| | | | | | | (2) was on the wrong line anyway. RELNOTES: None PiperOrigin-RevId: 159010312
* Simplify data binding documentation.Gravatar gregce2017-06-16
| | | | PiperOrigin-RevId: 158999549
* Cleanup: addressing comments from commit ↵Gravatar olaola2017-06-16
| | | | | | | 9eea05d068a06ab642dd9d86d46ee5fa2e36b02e. RELNOTES: n/a PiperOrigin-RevId: 158988688
* Add support for the '0o' octal prefix for integers.Gravatar laurentlb2017-06-16
| | | | | | RELNOTES: Octal prefix '0' is deprecated in favor of '0o' (use 0o777 instead of 0777). PiperOrigin-RevId: 158982649
* ctx.empty_action now allows depset as inputsGravatar laurentlb2017-06-16
| | | | | RELNOTES: None. PiperOrigin-RevId: 158977418
* Remove unused interface PreprocessorGravatar Klaus Aehlig2017-06-16
| | | | | Change-Id: I008c16d747c5d06f433af14cd0793536cff2723e PiperOrigin-RevId: 158975286
* Revamp JavaToolchain:Gravatar lberki2017-06-16
| | | | | | | | | | | | - Rely on existing infrastructure to verify that attributes only contain a single artifact and that mandatory attributes are specified - Add single artifact modifiers to attributes that need them - Remove "final" modifiers from method variables (we don't use them in Blaze) - Replace deprecated #add() with #addProvider() Since this relies on existing infrastructure, I thought adding tests is redundant. I did test it manually, though, to be extra safe by testing what happens if these attributes contain an empty filegroup or a filegroup with multiple artifacts in it. RELNOTES: None. PiperOrigin-RevId: 158975017
* Switching to Watcher API instead of wait_for_completion, in preparation forGravatar olaola2017-06-14
| | | | | | | | | deprecating the wait_for_completion field. Note on errors: in the RemoteWorker, I currently handle all errors as onError of the watch call. Other options are: pass them as the operation error field, and pass some of them as the onError of the execute call. For now, I'm just using the simplest option; the Bazel client is ready to handle all possible options. RELNOTES: none PiperOrigin-RevId: 158974207
* ctx.action now allows depset as inputsGravatar laurentlb2017-06-14
| | | | | RELNOTES: None. PiperOrigin-RevId: 158973112
* Introduce --incompatible_load_argument_is_label (1st argument of load must ↵Gravatar laurentlb2017-06-14
| | | | | | | | | be a label). RELNOTES: First argument of 'load' should be a label. Path syntax is deprecated (label should start with '//' or ':'). PiperOrigin-RevId: 158971314
* Propagate postable events further upGravatar Klaus Aehlig2017-06-14
| | | | | | | | | | | | With the introduction of the ExtendedEventHandler, SkyFunctions were given the possibility to post additional Postable events in addition to the standard events. As SkyFunctions have to be restartable, events are collected first and only posted after the function is finished. Make sure that this also applies to postable events and they are not dropped. Change-Id: Ie1c3a0134935c75ea984fa2cc924e7327a9da81f PiperOrigin-RevId: 158964337
* BES: Consolidate BuildEventServiceModule and BuildEventStreamerModule.Gravatar buchgr2017-06-14
| | | | | | | | | | | | | | After having open sourced the Build Event Service code, there is no more need to have two separate bazel modules that both create a BuildEventStreamer. This change merges the BuildEventStreamerModule logic into the BuildEventServiceModule. DELTA=677 (330 added, 316 deleted, 31 changed) DELTA_BY_EXTENSION=java=293,oss=32 RELNOTES: None. PiperOrigin-RevId: 158960687
* Fix local execution to not throw an exceptionGravatar ulfjack2017-06-14
| | | | | | | | The SpawnInputExpander returns null for empty files, but the ActionInputPrefetcher does not expect null values, and implementations may throw NPE. PiperOrigin-RevId: 158960425
* Use EventHandler even before we have a Reporter instanceGravatar ulfjack2017-06-14
| | | | | | | ...instead of relying on all the methods to call printErrLn with exactly the right format string. PiperOrigin-RevId: 158951236
* Add a FileProvider (which all ConfiguredTargets should have) to ↵Gravatar lberki2017-06-14
| | | | | | | | | PackageGroupConfiguredTarget. This fixes a crash when a package_group was referenced in an attribute that requires specific file types. RELNOTES: None. PiperOrigin-RevId: 158950996
* Move external package rule loading into a shared utility class.Gravatar John Cater2017-06-14
| | | | | Change-Id: I3f6664768791a63bf2f9e254b290d07623336ef6 PiperOrigin-RevId: 158902487
* Introduce --incompatible_comprehension_variables_do_not_leakGravatar laurentlb2017-06-14
| | | | | | | | | | | | | When the flag is activated, variables in list comprehensions do not leak anymore. Even if a variable was defined before the loop, it's not accessible after the loop. This change allows us to detect any breakage and ensures that no user is accessing loop variables after the loop. This will make possible for us to change the behavior and follow Python 3 semantics in the future. RELNOTES: None. PiperOrigin-RevId: 158895514
* Change link_static to linkstatic.Gravatar Googler2017-06-14
| | | | | | The attribute is linkstatic not link_static. PiperOrigin-RevId: 158883927
* Map LIPO to ThinLTO when LLVM compiler is used.Gravatar Googler2017-06-14
| | | | | | | | | | | | This change maps LIPO to ThinLTO when a LLVM compiler is used for building, with a warning. This change is necessary for the following reason. The compiler team is planning to flip the default compiler from GCC to LLVM and this change will migrate all LIPO users of GCC to LLVM with ThinLTO + FDO (LIPO equivalent) without any changes to build scripts. RELNOTES[NEW]: LIPO maps to ThinLTO for LLVM builds. PiperOrigin-RevId: 158875330
* BlazeModule.workspaceInit: also pass the BlazeRuntime to the callGravatar ulfjack2017-06-14
| | | | | | | | In order for BlazeModule.workspaceInit to be self-contained, also pass in the BlazeRuntime; we have use cases where this context is relevant, and there's currently no other way to get a reference to the BlazeRuntime. PiperOrigin-RevId: 158861142
* Make packages able to handle Postables as wellGravatar Klaus Aehlig2017-06-14
| | | | | | | | Packages can remember events associated with reading the package; also make them aware of additional Postable events. Change-Id: Id7933de7e364b142d0c95fd774585d3271204b2b PiperOrigin-RevId: 158853675
* Add support for zipped LLVM profile files.Gravatar Googler2017-06-14
| | | | | | | | | | | | | | | | | | | This change is a follow-up to a recent change which allowed LLVM raw profile files to be directly used with blaze. This change allows zipped LLVM raw profile files. This uses //tools/zip:zipper to extract the zipped file contents. This also adds a new option to //tools/zip:zipper, 'j', to junk directories while unzipping. Tested: blaze test //devtools/blaze/integration:fdo_test blaze test //third_party/ijar/test:zip_test RELNOTES[NEW]: Zipped LLVM profiles are now supported. PiperOrigin-RevId: 158849516
* Bump the blaze max jobs and warning threshold to keep up with the times.Gravatar felly2017-06-14
| | | | PiperOrigin-RevId: 158847561
* Simplify BlazeModule.beforeCommandGravatar ulfjack2017-06-14
| | | | | | | | | | | Don't pass the Command annotation explicitly, but add it to CommandEnvironment instead; most modules don't need it in the first place, so it was a lot of boilerplate for not much. Also change it so that the command is passed to the constructor. Add some documentation to the beforeCommand method. PiperOrigin-RevId: 158847128
* Also filter stderr when parse_showincludes feature is enabledGravatar Yun Peng2017-06-13
| | | | | | | | | | On Windows, cl.exe generates include information to stdout. But when using the cuda compiler(nvcc.exe) to invoke cl.exe, it's redirected to stderr. So we need to parse the output of stderr as well. Change-Id: I9a763a6eefa531932bf1077ef4155f6bda934240 PiperOrigin-RevId: 158842448
* Windows, Bazel client: pass Unix root as JVM flagGravatar Laszlo Csomor2017-06-13
| | | | | | | | | | | | | The Bazel client will pass the --host_jvm_args=-Dbazel.windows_unix_root=<path> flag to the server (computed from $BAZEL_SH), and the server will no longer shell out to cygpath to compute this value. Fixes https://github.com/bazelbuild/bazel/issues/2983 Change-Id: Iacc2e2eb70eacafdf7bbcad68d375ba9eadc6ee1 PiperOrigin-RevId: 158830675
* Extract the MacOS/XCode env rewrite logic into lib.exec.appleGravatar ulfjack2017-06-13
| | | | | | | | | | | | | | | | | | | Also add an interface to allow injecting that logic into LocalSpawnRunner; this is in preparation for rewriting StandaloneSpawnStrategy to use LocalSpawnRunner. At the same time, this reduces the dependencies from exec / standalone to rules.apple, which is a prerequisite for micro-Bazel. There's a small semantic change hidden here - we now only set the new XCodeLocalEnvProvider if we're actually running on Darwin, so we no longer fail execution on non-Darwin platforms if XCODE_VERSION_OVERRIDE or APPLE_SDK_VERSION_OVERRIDE is set. As a result, I moved the corresponding test from StandaloneSpawnStrategyTest to the new XCodeLocalEnvProviderTest. While I'm at it, also open source DottedVersionTest and CacheManagerTest. PiperOrigin-RevId: 158829077
* Fix bug in URI computation in RemoteModuleGravatar ulfjack2017-06-13
| | | | | | | | | | | Also add tests for the CAS path converter. I've also changed the code to explicitly inject the RemoteOptions into the CasPathConverter - note that the class is now static, so it no longer has access to the fields in the RemoteModule class. This change will need to be cherry-picked into 0.5.2. PiperOrigin-RevId: 158816408
* Refactor AST APIsGravatar brandjon2017-06-13
| | | | | | | Added public visibility to some constructors/accessors, and made child LValue nodes explicitly constructed by the caller rather than hidden inside constructors. This makes it easier to treat nodes as uniform dumb values. Also added some helpers. RELNOTES: None PiperOrigin-RevId: 158761415
* Automated g4 rollback of commit 1be84ee92a825694b0c0026ac77134f8a084bd9c.Gravatar corysmith2017-06-13
| | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Rolling forward with the generated resources directory being created for tests without resources. *** Original change description *** Automated g4 rollback of commit d028d7854d3e95d97143945a1ec32944e5e4594b. *** Reason for rollback *** Breaks 1000+ targets in the depot: [] *** Original change description *** Generate pre-reconciled ids R classes for dependency libraries with resources in the transitive closure of robolectric tests. RELNOTES: None PiperOrigin-RevId: 158756991
* Fix the converter type for several build configuration options which take listsGravatar jcater2017-06-13
| | | | | | | | of labels. Also fix an indent error in BuildTool. PiperOrigin-RevId: 158747039
* Fix: remote results not downloaded on failed actions, such as interrupted tests.Gravatar olaola2017-06-13
| | | | | | RELNOTES: none TESTED=presubmit PiperOrigin-RevId: 158734467
* Automated g4 rollback of commit 29ec1b89989db411d2038e2df8657b6435f80403.Gravatar fwe2017-06-13
| | | | | | | | | | | | | | *** Reason for rollback *** Breaks the classroom_ios TAP project [1] in the presence of --experimental_objc_crosstool=all, which was added to the global .blazerc last week. [1] [] *** Original change description *** Change ProtobufSupport to use CrosstoolCompilationSupport if experimental_objc_crosstool=all PiperOrigin-RevId: 158727100
* Don't call function names keyword in the query reference because they are not.Gravatar lberki2017-06-13
| | | | | RELNOTES: None. PiperOrigin-RevId: 158721043
* Init absent action configs for CppCompile actionsGravatar hlopko2017-06-12
| | | | | | | | | | So far only link actions were initialized in CppLinkActionConfigs. This cl changes this class to also initialize CppCompile actions. This is needed for our ongoing work removing hard-coded flags from Bazel and moving them into Crosstool. RELNOTES: None. PiperOrigin-RevId: 158715986
* Cleanup in ValidationEnvironment, provide static methods, reduce visibility.Gravatar laurentlb2017-06-12
| | | | | | | | | Call sites were creating a ValidationEnvironment object with no other purpose than calling validateAst(). Simplify the code so that callers don't have to worry about it. RELNOTES: None. PiperOrigin-RevId: 158705853
* Introduce CompileCommandLineBuilder and CompileCommandLineTestGravatar hlopko2017-06-12
| | | | | RELNOTES: NONE. PiperOrigin-RevId: 158703123
* Remove ErrorSensingEventHandler#resetErrors().Gravatar lberki2017-06-12
| | | | | | | The call sites in QueryEnvironment implementations were not needed because QueryEnvironments are always made afresh. RELNOTES: None. PiperOrigin-RevId: 158698881
* Fix a thread safety issue in ErrorSensingEventHandler.Gravatar lberki2017-06-12
| | | | | RELNOTES: none. PiperOrigin-RevId: 158694769
* Windows: bazel clean --expunge worksGravatar Laszlo Csomor2017-06-12
| | | | | | | | | | | | | | | Fixes https://github.com/bazelbuild/bazel/issues/1586 Fixes https://github.com/bazelbuild/bazel/issues/2326 This change also undoes https://github.com/bazelbuild/bazel/commit/956810b6ee24289e457a4b8d0a84ff56eb32c264 -- since Bazel now closes its stdout/stderr before cleaning, jvm.out is also closed so we don't need to open it with deletion sharing. RELNOTES: Windows: bazel clean --expunge works Change-Id: I692f2e86a5983cb472a142a093611fd1c694cd3b PiperOrigin-RevId: 158682987
* Allow $(location) expansion to work with javac.jar in java_toolchain.jvm_optsGravatar cushon2017-06-12
| | | | PiperOrigin-RevId: 158584197
* experimental UI: move stopUpdateThread() out of synchronized, againGravatar Klaus Aehlig2017-06-09
| | | | | | | | | | | | | | | The experimental UI uses a thread to regularly update itself to reflect time-based changes. As that that thread has to call synchronized methods any waiting for it to finish has to happen outside any synchronized block. Unfortunately, 9e0308e0f7 accidentally moved the stopUpdateThread() in buildComplete() into the synchronized block, thus giving an opportunity for deadlocks. Move it out again. Also, as the accounting for pending transports now happens in synchronized methods in the state tracker, the buildEventTransportClosed() method does not have to be synchronized any more---thus eliminating the second deadlock opportunity. Change-Id: Icacb2ee70f4bedde1c1aac2bcfefc6fabf42fdd3 PiperOrigin-RevId: 158537844
* experimental_skyframe_target_pattern_evaluator: Use UNDOCUMENTED instead of ↵Gravatar philwo2017-06-09
| | | | | | HIDDEN. PiperOrigin-RevId: 158524495
* Move InvocationPolicy to the options parser package.Gravatar ccalvarin2017-06-09
| | | | | | | | | | | | | | It was originally included in runtime due to external dependencies, and a desire to keep the options parser a general options library. These dependencies have been or will be removed, and there are plenty of other general flag libraries. InvocationPolicy is fundamentally acting on the properties of this specific OptionsParser and needs proper access to it for the proper solution to a number of existing bugs, which means having access to things that should be package private. PiperOrigin-RevId: 158523111
* fix link in genquery docs to the query language docsGravatar Benjamin Peterson2017-06-09
| | | | | Change-Id: I8e445d3f3b06846a2f1d8db25c98aa5cd124f72b PiperOrigin-RevId: 158516752
* Use the correct JVM for LcovMerger instead of whatever "java" gets us.Gravatar lberki2017-06-09
| | | | | | | Fixes #2904. RELNOTES: None. PiperOrigin-RevId: 158516169