aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
Commit message (Collapse)AuthorAge
* Add --experimental_enable_cc_toolchain_label_from_crosstool_proto flag for ↵Gravatar rosica2018-07-23
| | | | | | | | | disabling relying on CROSSTOOL file in order to select the cc_toolchain label CROSSTOOL file should not have any influence over selection of the cc_toolchain label. Ultimately the information that CROSSTOOL offers will be rerouted through an attribute of cc_toolchain. RELNOTES: None. PiperOrigin-RevId: 205651369
* Remove special casing for --incremental-changed and --incremental-unchanged.Gravatar lberki2018-07-23
| | | | | RELNOTES: None. PiperOrigin-RevId: 205646506
* Introduce option flag experimental_enable_tools_defaults_package.Gravatar dbabkin2018-07-23
| | | | | | | | Default value is true, and behavior related to //tools/defaults package is not changed. If set it to false, then in-memory Dfaultpacked will not be created. RELNOTES:none PiperOrigin-RevId: 205643628
* Remove load() from the list of build functionsGravatar laurentlb2018-07-23
| | | | | | | | load() is not a function, but a keyword. It's already documented in other places (https://docs.bazel.build/versions/master/skylark/concepts.html#loading-an-extension). RELNOTES: None. PiperOrigin-RevId: 205636295
* Remove gender specific prononuns from Bazel codebaseGravatar hlopko2018-07-23
| | | | | RELNOTES: None. PiperOrigin-RevId: 205635805
* Suppress RepositoryCache IOException on downloadGravatar George Gensure2018-07-23
| | | | | | | | | | | | | | With invalid contents in the repository cache, silence the IOException on RepositoryCache::get and re-download an artifact when attempting to short-circuit that operation. The repository cache can easily get into this state when a build is interrupted while downloading into the non- atomic repository cache destination. Possible solution to #5390 Closes #5392. PiperOrigin-RevId: 205634761
* resolved file: include the hash of the output treeGravatar Klaus Aehlig2018-07-23
| | | | | | | | | | | | | | When reporting about the repository rules that were called, also report a hash of the tree the rule generated. This allows, at least after the fact, to verify that a repository rule actually produced the correct code. Note that equality of the output hash is not a guarantee for reproducible builds, as certain properties of the output tree, in particular owner, are ignored. Still it is a good check to detect wrong use of a repository rule. Change-Id: Ic56509f8e0d0b4be9ce3335ade280f983fe77e6d PiperOrigin-RevId: 205631855
* C++: Refactors every provider wrapping CcLinkParamsStoreGravatar plf2018-07-23
| | | | | | | | Providers that were wrapping CcLinkParamsStore now wrap CcLinkingInfo instead. CcLinkParamsStore will be deleted in a future CL. RELNOTES:none PiperOrigin-RevId: 205629924
* Remove PerActionFileCacheGravatar ulfjack2018-07-23
| | | | | | | | | | | | | Instead, make ActionMetadataHandler implement the MetadataProvider interface. This fixes an issue where an action that runs two spawns where one depends on an output of the other was unable to get the metadata for the intermediate output. We don't currently have actions that do this, but we will have in a future change (which will also implicitly act as a regression test). PiperOrigin-RevId: 205629237
* Implement a way to do include validation as a part of input discovery. ThisGravatar Googler2018-07-23
| | | | | | | | | | | | | | | | | makes it possible to disable .d file scanning when input discovery is used without allowing the usage of undeclared headers. The way this is implemented relies on having a sand-boxed or remote execution environment and simply removes undeclared files from discovered inputs. As a result, the compiler cannot see them and can diagnose missing headers. The input discovery itself cannot (usually) diagnose undeclared headers as it is often implemented to be an over-approximation. It needs to find all used headers, but it is allowed to find more. Diagnosing these additional headers would not be useful. RELNOTES: None. PiperOrigin-RevId: 205628312
* Fix TargetCompleteEvent.referencedLocalFilesGravatar ulfjack2018-07-23
| | | | | | | | It was missing the baseline coverage files, if any. This is safe even if unknown commit is rolled back. PiperOrigin-RevId: 205626149
* bes: don't retry all status codesGravatar buchgr2018-07-22
| | | | | | | | don't retry precondition_failed and invalid_argument status codes. RELNOTES: None PiperOrigin-RevId: 205566423
* bes: make error handling saneGravatar buchgr2018-07-22
| | | | | | | | | | | | | | - refactor the BuildEventServiceClient interface to report errors via StatusException and InterruptException. - do the groundwork necessary to do retries based on rpc status codes. - improve the execution speed of the BuildEventServiceStubbyClientTest from 1m5s to 5s. RELNOTES: None PiperOrigin-RevId: 205563431
* Close the query environment after running a query.Gravatar shreyax2018-07-20
| | | | | RELNOTES: None. PiperOrigin-RevId: 205447838
* Tweak GUID for WriteBuildInfoHeaderAction to force it to be rebuiltGravatar Googler2018-07-20
| | | | | | | for this upgrade. RELNOTES=None. PiperOrigin-RevId: 205437116
* Automated rollback of commit 64ea3cd90e1ead5ece533ee5a3cb4ee3520527fb.Gravatar Googler2018-07-20
| | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Update the Flutter rules AndroidSdkInfo provider to FlutterAndroidSdkInfo. AndroidSdkInfo should be unique in the repo now. *** Original change description *** Automated rollback of commit 4d10250291a813302de64151be3b22d57e94749d. *** Reason for rollback *** AndroidSdkInfo is already being used by the Flutter rules. *** Original change description *** Expose AndroidSdkProvider to Skylark (as AndroidSdkInfo). RELNOTES: None. PiperOrigin-RevId: 205431461
* As a slight optimization in PackageFunction, treat as PERSISTENT any io ↵Gravatar nharmata2018-07-20
| | | | | | | errors encountered during the Skyframe part of hybrid globbing. The underlying transience of these is already handled by the Skyframe transience mechanism. RELNOTES: None PiperOrigin-RevId: 205403673
* Do not check if features named include_paths or preprocessor_definesGravatar Googler2018-07-20
| | | | | | | | are enabled before setting the corresponding build variables for the crosstool. Such a conditional is unnecessary. RELNOTES: None. PiperOrigin-RevId: 205397072
* vfs: do not close streams twiceGravatar Laszlo Csomor2018-07-20
| | | | | | | | | | | | | | ByteStream's functions already close the underlying stream. See https://github.com/bazelbuild/bazel/commit/09d20311d982606093ed881d779bb05a5ee70ed3 Change-Id: Id389ef594946bfebb90ca66d97ea96f271b20331 Closes #5641. Change-Id: Id389ef594946bfebb90ca66d97ea96f271b20331 PiperOrigin-RevId: 205395805
* Open source SwigIncludeScanningContextGravatar ulfjack2018-07-20
| | | | | | This is in preparation for open sourcing our include scanning implementation. PiperOrigin-RevId: 205386312
* C++: Removes logic for linkopts expansion.Gravatar plf2018-07-20
| | | | | | | RELNOTES[INC]:Labels in C++ rules' linkopts attribute are not expanded anymore unless they are wrapped, e.g: $(location //foo:bar) PiperOrigin-RevId: 205385711
* Add a utility function to hash a directoryGravatar Klaus Aehlig2018-07-20
| | | | | | | | | | Return a hash of a directory that is suitable to verify whether a repository rule contained a good snapshot of source code. So certain aspects of the directory, in particular ownership of the files, are deliberately not included in the hash. Change-Id: I1b35f7af47b376808acad3b6e54daaaec4f9ebfd PiperOrigin-RevId: 205382020
* Open source IncludeScanning glue codeGravatar ulfjack2018-07-20
| | | | | | One tiny step after the other. PiperOrigin-RevId: 205378056
* C++: Cleans up C++ Skylark APIGravatar plf2018-07-20
| | | | | | | | Feature configuration and toolchain are now mandatory arguments. Rule context is no longer a positional argument. RELNOTES:none PiperOrigin-RevId: 205367825
* Add an execution requirement key to trigger prefetching of remote outputsGravatar ulfjack2018-07-20
| | | | PiperOrigin-RevId: 205361498
* Instead of tracking only the source files to be compiled as outputs of the ↵Gravatar kaipi2018-07-19
| | | | | | generation action, track all the sources that will be generated by the proto generator. PiperOrigin-RevId: 205309842
* Check if ParentFileValue is a directory when evaluating a FileFunction node.Gravatar neerajen2018-07-19
| | | | | RELNOTES: None. PiperOrigin-RevId: 205288166
* C++: Implements Skylark cc_common.compile()/link().Gravatar plf2018-07-19
| | | | | | | Working towards #4570. RELNOTES:none PiperOrigin-RevId: 205274676
* Move --linkopt flags into user_link_flagsGravatar hlopko2018-07-19
| | | | | | | | | | | | | | | | Previous behavior was to put flags coming from Bazel option --linkopt into legacy_link_flags. They should be in user_link_flags instead (together with flags coming from linkopts rule attribute). This cl introduces --experimental_linkopts_in_user_link_flags option that flips the behavior. There is another incompatible change. Previously cc_common.create_link_variables() included flags from --linkopt, with the flag flipped it doesn't anymore. I believe --linkopt flags shouldn't be there by default because: * We don't tie the API with the specifics of C++ rules/options, enabling theoretical use with other languages (objc) * Users are free to use ctx.fragments.cpp to access C++ options and add them explicitly (https://github.com/bazelbuild/bazel/issues/5602) * New behavior maintains the symmetry with --copt and user_compile_flags RELNOTES: None. PiperOrigin-RevId: 205274272
* Remove workspace status language filter, and C++ linkstamp "VERBATIM" output ↵Gravatar Googler2018-07-19
| | | | | | | type. RELNOTES: None. PiperOrigin-RevId: 205237848
* Remove make variable providers from ToolchainType.Gravatar jcater2018-07-19
| | | | PiperOrigin-RevId: 205236169
* Require the ActionExecutionMetadata to be passed to IncludeScannerGravatar ulfjack2018-07-19
| | | | | | | Also add an execution requirement that allows disabling reporting to the CLI; this will be used in a future change. PiperOrigin-RevId: 205216096
* Ensure that gathering the info for an extra action can rely on the actionGravatar Googler2018-07-19
| | | | | | | | | being executed if the action requires input discovery. Input discovery might actually change the action's command line, which in turn can become part of the file being written. RELNOTES: None. PiperOrigin-RevId: 205207109
* Add deprecation note to native http/git rulesGravatar Klaus Aehlig2018-07-19
| | | | | | | ...mentioning that a drop-in replacement can be loaded from @bazel_tools. Change-Id: I0197d65359664e6fed84dc1fe5d5b6ddad48520e PiperOrigin-RevId: 205204800
* Introduce --strict_fileset_output which treats all output Artifacts ↵Gravatar felly2018-07-18
| | | | | | encountered in a Fileset as a regular file. PiperOrigin-RevId: 205152271
* Automated rollback of commit 4d10250291a813302de64151be3b22d57e94749d.Gravatar Googler2018-07-18
| | | | | | | | | | | | | *** Reason for rollback *** AndroidSdkInfo is already being used by the Flutter rules. *** Original change description *** Expose AndroidSdkProvider to Skylark (as AndroidSdkInfo). RELNOTES: None. PiperOrigin-RevId: 205142459
* Enable aapt2 for aar_import by adding the AndroidConfiguration fragment.Gravatar corysmith2018-07-18
| | | | | RELNOTES: Fixed compatibility with aar_import when using aapt2. AAPT2 is now supported for Android app builds without resource shrinking. To use it, pass the `--android_aapt=aapt2` flag or define android_binary.aapt_version=aapt2. PiperOrigin-RevId: 205136160
* Expose ProguardMappingProvider to Skylark (as ProguardMappingInfo).Gravatar Googler2018-07-18
| | | | | RELNOTES: none. PiperOrigin-RevId: 205100703
* When applying an aspect to a generated file of a Fileset avoid creating the ↵Gravatar lpino2018-07-18
| | | | | | | | FilesetEntryMap for the aspect's RuleContext. The current logic in createFilesetEntryMap() uses the rule of the RuleContext.Builder to determine whether to create a filesetEntryMap or not, because of this, applying an aspect to a generated file of a fileset (e.g. 'out' attribute of a Fileset) causes createFilesetEntryMap to create the map even though the associated target is, for instance, a generated file. As a consequence, applying any aspect to a generated file of a fileset causes a NullPointerException. PiperOrigin-RevId: 205065778
* Add aquery as proper command to Bazel.Gravatar twerth2018-07-18
| | | | | RELNOTES: Add aquery command to get analysis time information about the action graph. PiperOrigin-RevId: 205064145
* Rename CrosstoolInfo.java to CcToolchainConfigInfo.javaGravatar rosica2018-07-18
| | | | | RELNOTES: None. PiperOrigin-RevId: 205060182
* C++: Removes check for host configurationGravatar plf2018-07-18
| | | | | | | | | | | | | The C++ Skylark API is protected by a flag and whitelist. The flag's value should be true by default for non-Bazel. This is set with an invocation policy. In Bazel the default value is false. When this was checked in I couldn't find a way to use the default value in the host configuration, so when checking the flag we ignored the value for these cases. In this CL we copy the target config value to the host config. RELNOTES:none PiperOrigin-RevId: 205059612
* If a dictionary is used as a general set, the keys should be mapped to ↵Gravatar Googler2018-07-18
| | | | | | | | | | `True` instead of `None`. dict has a get() method that defaults to `None`. Checking for a key in the dictionary with get() will always return `None` in the given example. Using `True` is better. RELNOTES: None. PiperOrigin-RevId: 205052981
* Added completion for Starlark builtins.Gravatar Googler2018-07-18
| | | | PiperOrigin-RevId: 205047383
* Remove a few unused fields from CrosstoolInfo.Gravatar lberki2018-07-18
| | | | | RELNOTES: None. PiperOrigin-RevId: 205046100
* RepositoryCache: support hard linkningGravatar Klaus Aehlig2018-07-18
| | | | | | | | | Instead of copying files found in a cache hit, support adding a hard link. This should save disk space if the same files from cache are used in many workspaces. Fixes #5568. Change-Id: Ie8192f9669d8420283e18e0813f3160a515ba8fe PiperOrigin-RevId: 205034815
* Expose the UsesDataBindingProvider to Skylark (as UsesDataBindingInfo).Gravatar Googler2018-07-17
| | | | | RELNOTES: none. PiperOrigin-RevId: 205032841
* Android NDK r17 supportGravatar Jingwen Chen2018-07-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | [Full NDK changelog](https://github.com/android-ndk/ndk/wiki/Changelog-r17) Changes related to Bazel's NDK toolchain/CROSSTOOL generation: - Removed support for targeting mips, mips64, armeabi. - Bumped bundled clang version to 6.0.2. - The default STL is now libc++. If Bazel detects that r17 is being used, it aliases `@androidndk//:default_toolchain` to `@androidndk//:toolchain-libcpp`, instead of `@androidndk//:toolchain-gnu-libstdcpp`. - Removed tests that build against armeabi, mips, mips64. - Stop passing `-fno-integrated-as` into the compiler by default. TODO: - [x] Java tests - [x] ~Support for wrap.sh to use with ASANs~ Implementing in follow up PR. - [ ] Fix or disable remote caching with android_ndk_integration_test https://github.com/bazelbuild/bazel/issues/4663 Fixes https://github.com/bazelbuild/bazel/issues/4742 RELNOTES: Added support for Android NDK r17. The default STL is now `libc++`, and support for targeting `mips`, `mips64` and `ARMv5` (`armeabi`) has been removed. Closes #5371. Change-Id: Id1ded004c3a80ea62f307746dc3ad6f633f2df2e PiperOrigin-RevId: 205013758
* Expose AndroidFeatureFlagSetProvider to SkylarkGravatar Googler2018-07-17
| | | | | RELNOTES: None PiperOrigin-RevId: 205011761
* Automated rollback of commit d491bf10f42e213292382c98a1dc439537f00f43.Gravatar janakr2018-07-17
| | | | | | | | | | | | | | | | | | *** Reason for rollback *** Still bugs lurking. See linked bug. *** Original change description *** Automated rollback of commit eb587075b0d6ffab1cf9e69ede1b7e547905e547. *** Reason for rollback *** Depot has been fixed. RELNOTES[INC]: If the same artifact is generated by two distinct but identical actions, and a downstream action has both those actions' outputs in its inputs, the artifact will now appear twice in the downstream action's inputs. If this causes problems in Skylark actions, you can use the uniquify=True argument in Args.add_args. PiperOrigin-RevId: 204997569