aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
Commit message (Collapse)AuthorAge
* Move ExecutionRequirements to the lib.actions packageGravatar ulfjack2017-06-06
| | | | | | | | | It was previously the odd-one out in lib.analysis.actions, due to other code that wanted to depend on it without pulling in all of analysis. However, it's needed to interpret Spawn instances, and Spawn lives in lib.actions, so it makes more sense to move it there, and remove the special-casing. PiperOrigin-RevId: 158116684
* Change help message for --batchGravatar Mike Morearty2017-06-06
| | | | | | | | | | The help message previously said that `--batch` is strongly discouraged, but in fact it's only discouraged when using bazel interactively. Since the tradeoffs of `--batch` are fully explained in the online docs, this commit changes the help message to explain what the option does without getting into the tradeoffs. Fixes #3051 Closes #3118. PiperOrigin-RevId: 158112611
* apple_binary provides information about its dylibs' symbols in its nested ↵Gravatar cparsons2017-06-06
| | | | | | | | | | | | | ObjcProvider This facilitates app->dylib->dylib dependencies, as the app needs to avoid linking in symbols contained in any *transitive* dylibs, not just in any direct dylibs. This also removes a test which verified the previous, incorrect functionality (not propagating information about dylibs up the tree). RELNOTES: None. PiperOrigin-RevId: 158070381
* Specify isTestRule as an input to CompilationSupport instead of from the ↵Gravatar cparsons2017-06-06
| | | | | | | current rule name RELNOTES: None. PiperOrigin-RevId: 158068921
* Make compatible_with = ["all", "foo"] the same as compatible_with = ["all"].Gravatar gregce2017-06-06
| | | | | | | | | | | | | Assuming "all" fulfills "foo", these should be exactly the same (and maybe we should trigger a redundant listing error). In practice, it's possible to make the first case succeed while the second fails because of environment refining and lack of static constraint checking for selects. See changes for details. Also refactor ConstraintSemantics.checkConstraints to divide and conquer more clearly. PiperOrigin-RevId: 158047217
* Cleanup the interface of ApkActionsBuilder.Gravatar ajmichael2017-06-05
| | | | | | | | | | | | | | | A few changes: 1. Remove the ApkSigningMethod input. We always read this from AndroidConfiguration, callers shouldn't need to pass it in. 2. Add a signingKey attribute. This will be needed for dex2oat to pass in whatever key was used to sign the input APKs. 3. Unify the resourceApk and nativeLibsZips into a "addInputZip(s)" methods. This can also be used for inputting an existing APK, such as the one from dex2oat. RELNOTES: None PiperOrigin-RevId: 157973679
* Add a new flag --sandbox_writable_path, which asks the sandbox to make anGravatar Googler2017-06-05
| | | | | | | | existing directory writable when running actions. RELNOTES: Added a new flag --sandbox_writable_path, which asks the sandbox to make an existing directory writable when running actions. PiperOrigin-RevId: 157971858
* Automated g4 rollforward of commit b71e99b1f3746103e5d6802eebc24096b3494959.Gravatar gregce2017-06-05
| | | | | | | | | | | | | | | | | | | | | | | | (Automated g4 rollback of commit de92f9d8ea093416fae999073bbfcf3cf501ab55). *** Reason for rollback *** The problems that forced commit de92f9d8ea093416fae999073bbfcf3cf501ab55 were fixed in commit e6392cd380fce14d719890c78d5eb2657e8a6cfc . *** Original change description being rolled forward *** Implement dynamically configured LIPO builds. Quick overview: - provide a dynamic interface for getting the artifact owner configuration - provide a (dynamic) RuleTransitionFactory LIPO_ON_DEMAND to replace the (static) RuleClass.Configurator LIPO_ON_DEMAND. Eventually we'll remove the rule class configurator interface entirely.... *** ROLLBACK_OF=156180015 PiperOrigin-RevId: 157865224
* Fixing documentation for platforms and toolchains.Gravatar John Cater2017-06-05
| | | | | Change-Id: I98fd671af858c402b10bb5ef59735d83d4003593 PiperOrigin-RevId: 157863146
* Remove Xcodege integration from Blaze.Gravatar schmitt2017-06-05
| | | | | RELNOTES: None. PiperOrigin-RevId: 157857216
* Include the root cause IOException in the BuildFileContainsErrorsException ↵Gravatar nharmata2017-06-05
| | | | | | | thrown when PackageFunction encounters such an IOException when reading the contents of a BUILD file. RELNOTES: None PiperOrigin-RevId: 157853283
* Make the non propagated values available in the Skylark representation of ↵Gravatar kaipi2017-06-05
| | | | | | ObjcProvider. PiperOrigin-RevId: 157850516
* Rename xcode_version's default_macosx_sdk_version to use 'macos'.Gravatar cparsons2017-06-05
| | | | | | | This is consistent with other usage. RELNOTES: NONE. PiperOrigin-RevId: 157849696
* Set host apple platform type to MACOSGravatar cparsons2017-06-05
| | | | | RELNOTES: None. PiperOrigin-RevId: 157847930
* Expose .ap_ artifact as a skylark providerGravatar Googler2017-06-05
| | | | | RELNOTES: none PiperOrigin-RevId: 157837746
* Remove "supports-workers" tag from ApkBuilder execution info.Gravatar philwo2017-06-05
| | | | | | The C++ implementation of SingleJar, which is available in Bazel, but not yet the default, doesn't support persistent worker mode, so this causes issues when you try to use it. PiperOrigin-RevId: 157831362
* Move helper methods for accessing platform providers to a utility class.Gravatar John Cater2017-06-02
| | | | | Change-Id: I45d0cf8e5096ad4ab516af5ddaa98eea8d516c04 PiperOrigin-RevId: 157788771
* Generate pre-reconciled ids R classes for dependency libraries with resourcesGravatar corysmith2017-06-02
| | | | | | | in the transitive closure of robolectric tests. RELNOTES: None PiperOrigin-RevId: 157762190
* Fix a bug in ParallelVisitor which prevents visitation task from being ↵Gravatar Googler2017-06-02
| | | | | | | | | | | | | | interrupted eagerly The original code swallows the InterruptedException, sets the interrupt bit and stops new tasks from being submitted. However it does not actively send an interrupt signal to all running and pending tasks already in the pool. It is partly due to the misleading syntax of awaitTermination, which actually quitely waits for all tasks to exit even if interruptWorkers is set to true. Both errors are fixed in this change. RELNOTES: None PiperOrigin-RevId: 157762029
* Remove javacopts and java_plugins attributes of aar_import.Gravatar ajmichael2017-06-02
| | | | | | | These do not make sense since aar_import does not compile any java but are inherited from JavaBaseRule. RELNOTES: None PiperOrigin-RevId: 157751090
* Add .equals(), .hashCode() to EnableLipoTransition.Gravatar gregce2017-06-02
| | | | | | | | | | | | This fixes a subtle integration bug between PatchTransition, ConfiguredTargetFunction, and DependencyResolver. Short story: ConfiguredTargetFunction.getDynamicConfigurations assumes at most one <Attribute, Label, Transition> entry per configured target dep. DependencyResolver.dependentNodeMap faithfully supplies this by returning an OrderedSetMultimap<Attribute, Dependency>, where each Dependency is a <Label, Transition>. OrderedSetMultimap guarantees no <key, value> repeats, but if you have two semantically equal EnableLipoTransition instances that don't satisfy .equals(), deduping fails. Most PatchTransitions don't have this problem because they're singletons. But each EnableLipoTransition is instantiated with a Rule, so singletons don't work here. This problem can only happen when a rule has multiple instances of the same C++ dep under the same attribute. But this isn't actually possible for normal attributes like "deps" because they don't allow duplicates (see RuleClass#checkForDuplicateLabels). Only non-LABEL_LIST attributes can trigger this. PiperOrigin-RevId: 157733284
* Make android_binary.manifest mandatory.Gravatar ajmichael2017-06-01
| | | | | | | | | | It was already effectively mandatory. The build would fail if you did not have the manifest attribute set, but this provides a better error message. Fixes https://github.com/bazelbuild/bazel/issues/3090. RELNOTES: None PiperOrigin-RevId: 157719024
* CountingOutputStream: properly flush()Gravatar Klaus Aehlig2017-06-01
| | | | | | | | | | | If console output limiting is enabled in the actual output stream is wrapped in a CountingOutputStream to hard-limit the number of bytes written. As on the console, the two streams, stdout and stderr, might interleave, proper flushing of writes is important. Therefore, make sure flushing is propagated through the CountingOutputStream. Change-Id: I591a2a1ae798a9d8ef704118b22960ff9773a59e PiperOrigin-RevId: 157707049
* Experimental UI: don't show dates for no-build commandsGravatar Klaus Aehlig2017-06-01
| | | | | | | | | | | When building with timestamps enabled, it is useful to know the date as well, e.g., when later looking at logs. This, however, is not the case if the command does not build (e.g., "bazel help", "bazel query"), or, in general, if the first output is only produced after the command is completed. Change-Id: I75ef38fbb98e886b1dc38899efa10188055f87e2 PiperOrigin-RevId: 157700578
* Windows: Create a dangling junction when symlink target doesn't existGravatar Yun Peng2017-06-01
| | | | | | | | | | | | | | On Unix system, `ln -s foo bar` will create an dangling symlink bar -> foo even foo doesn't exist. The current implementation of createSymbolicLink for Windows fails in this situtation. And this lead to #2474. In this change, we create a dangling junction when the target doesn't exist which mimics the behavior on Unix. Fixed https://github.com/bazelbuild/bazel/issues/2474 Change-Id: I442ca3e2fb20b76c9b5bbfee903299fe51481f43 PiperOrigin-RevId: 157694631
* Make C++ archiving use action_configs instead of hardcoded flagsGravatar hlopko2017-06-01
| | | | | RELNOTES: Use action_config in crosstool for static library archiving, remove ar_flag. PiperOrigin-RevId: 157685703
* Remove NestedSets from ApkProvider.Gravatar ajmichael2017-06-01
| | | | | | | | The only call site passes single artifacts. Some of the read sites assert that the NestedSet contains only one element. RELNOTES: None PiperOrigin-RevId: 157635897
* Propagate AppleStaticLibrary provider from apple_static_libraryGravatar cparsons2017-06-01
| | | | | RELNOTES: None. PiperOrigin-RevId: 157630000
* Refine Skylark select function documentation.Gravatar gregce2017-06-01
| | | | | | | - Remove reference to SelectorValue: an internal Bazel definition - Clarify that "select" means configurable attributes PiperOrigin-RevId: 157629959
* Add //external:has_androidsdk config_setting.Gravatar ajmichael2017-06-01
| | | | | | | | | | | | | | | | | | This will be used to add some tests and targets to the Bazel codebase that build and run successfully when android_sdk_repository is in the WORKSPACE and silently skip if it is not. Example deps of a library that links against dx.jar: ``` deps = select({ "//external:has_androidsdk": ["//external:android/dx_jar_import"], "//conditions:default": [], }), ``` Also adds tests that config_setting works as expected when propagated through an alias or bind rule. RELNOTES: None PiperOrigin-RevId: 157627472
* Make SelectorList.toString() user-friendly.Gravatar gregce2017-06-01
| | | | | | | | This also guarantees consistency between toString() calls to lib.syntax.SelectorList and lib.packages.BuildType.SelectorList. PiperOrigin-RevId: 157617509
* Remote caching: don't crash for actions with no inputsGravatar Ulf Adams2017-06-01
| | | | | | | | | | | Fixes #3004. Change-Id: I6dcef92e9f23df574e0874a81b2901754042cf9a Closes #3085. Change-Id: I6dcef92e9f23df574e0874a81b2901754042cf9a PiperOrigin-RevId: 157612661
* Overwrite symlinks when un-tarringGravatar kchodorow2017-06-01
| | | | | | Fixes #2960. PiperOrigin-RevId: 157604844
* Fix aliases for users of label-keyed string dicts.Gravatar mstaib2017-06-01
| | | | | | | | | | | | | | | | | Aliases mess with the assumption that attributeValue.containsKey(target.getLabel()) for every target in the prerequisites of a LABEL_KEYED_STRING_DICT attribute. The solution is to use AliasProvider.getDependencyLabel(target) instead. This fixes it for all current users, including SkylarkRuleContext. This also adjusts config_setting flag_values and Android feature_flags to do intelligent things with aliases in their respective attributes. RELNOTES: None. PiperOrigin-RevId: 157594095
* Add a flag --allow_undefined_configs, with default value true.Gravatar Googler2017-06-01
| | | | | | | | | Setting this flag to false makes Bazel exit with an error on undefined configs. The default value is true, so this change has no impact unless users explicitly pass --noallow_undefined_configs. This change supersedes an unmerged one, I'm taking the problem from fkp@. Credit to him for the original change. PiperOrigin-RevId: 157593338
* BEP: report visibility errorsGravatar Klaus Aehlig2017-06-01
| | | | | | | | On finding a visibility error, report it directly for that target, instead of relying on the implict "abort" message for targets that have not been built. Change-Id: I5e45722a1117afca3bc8eeebd05179425b995172 PiperOrigin-RevId: 157592518
* Don't add -g0 as host copt when host platform is WindowsGravatar pcloudy2017-05-31
| | | | | RELNOTES: None PiperOrigin-RevId: 157578255
* Also report stored posts further up in SkyframeGravatar Klaus Aehlig2017-05-31
| | | | | | | | | | As SkyFunctions are supposed to be restartable, e.g., if prerequisites are missing, events generated by them are temporarily stored. So are BuildEvents posted by them. However, once the evaluation of a SkyFunction is finalized, the stored posts need to be reposted. Do this. Change-Id: I4ce20266fbfcbb298e93eb53086fa9916874f5d8 PiperOrigin-RevId: 157575119
* Do not run imported jars through ijar when --nouse_ijars is on the command line.Gravatar lberki2017-05-31
| | | | | RELNOTES: None. PiperOrigin-RevId: 157569836
* Make --aspects a repeatable flag.Gravatar dslomov2017-05-31
| | | | | RELNOTES: '--aspects' can occur more than once on the command line. PiperOrigin-RevId: 157568229
* Adds external J2ObjC BUILD files to Bazel's generated embedded_tools directory,Gravatar Googler2017-05-31
| | | | | | | and fixes some of J2ObjC's implicit deps to correctly reference the embedded tools. RELNOTES: Partially fixes external J2ObjC support. PiperOrigin-RevId: 157503022
* When filtering resources in analysis, also filter resource rootsGravatar Googler2017-05-31
| | | | | | | | | | | | | | | | | If all resources from a directory are filtered out, the resource processing action should not receive a reference to that directory. Filtering the entire contents of a directory is uncommon but not impossible. It may be indicative of an error (if the user filters on a language, but only provided resources in other languages - in this case, the build should and will fail during Java compilation when the requested resource does not exist) or of weird but acceptable behavior (placing resources for some default language in one resource directory and resources for all other languages in some other directory, then inheriting both directories and filtering on language) that should be correctly handled. RELNOTES: none PiperOrigin-RevId: 157499745
* Remote tests should not depend on lib:runtimeGravatar buchgr2017-05-31
| | | | | | | | Move AuthAndTLSOptions to its own package, so that tests/remote no longer depends on lib:runtime. RELNOTES: None. PiperOrigin-RevId: 157469629
* Fix clean command to not use boolean optionsGravatar Googler2017-05-31
| | | | | | | Using boolean options with expansions on them meant they were still used if in the --no(flag) case. RELNOTES: Clean command no longer uses boolean values for --async, --expunge, and --expunge_async options. PiperOrigin-RevId: 157465859
* Add FeatureSpecification.Gravatar hlopko2017-05-30
| | | | | RELNOTES: None. PiperOrigin-RevId: 157450873
* BEP: Correctly report test exit code.Gravatar buchgr2017-05-30
| | | | | | | | | | | | | When a test failure occurred the BEP would still report a build_finished event with exit code SUCCESS, even though bazel's exit code was TESTS_FAILED. This is because we would rely on the exit code reported by the BuildCompleteEvent. However, this exit code contains only the build status without taking into account the test status. In this change we introduce the TestingCompleteEvent that reports bazel's final exit code in case of "bazel test". RELNOTES: None. PiperOrigin-RevId: 157445808
* BES: Capture stdout/stderr.Gravatar buchgr2017-05-30
| | | | | | | | The BEP protocol currently does not include stdout/stderr when sent over BES. This change makes the BuildEventStreamer created by the BuildEventServiceModule listen in on stdout/stderr. RELNOTES: None. PiperOrigin-RevId: 157439952
* RemoteSpawnStrategy: don't round-trip through StringGravatar ulfjack2017-05-30
| | | | | | Instead, print the downloaded bytes directly to stdout / stderr. PiperOrigin-RevId: 157435933
* Change ProtobufSupport to use CrosstoolCompilationSupport if ↵Gravatar Googler2017-05-30
| | | | | | experimental_objc_crosstool=all PiperOrigin-RevId: 157421008
* java_stub_template: create classpath jar if neededGravatar László Csomor2017-05-30
| | | | | | | | | | | | | | Create a jar with a classpath in it if the classpath is too long. We have already been using this trick on Windows but need it on Linux/Darwin too, because OpenJDK and ZuluJDK don't support parameter file syntax. Fixes https://github.com/bazelbuild/bazel/issues/3069 Change-Id: I57c981ba798dd687118feb98ccf7f61b38b03ff4 PiperOrigin-RevId: 157403379