aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* Small improvments on native launcher and testGravatar Yun Peng2017-08-22
| | | | | | | | | 1. Add final and a private ctor for NativeLauncherUtil 2. some refactor on launcher_test.py Change-Id: Ia12fe82038e080f10ebd02ca8b841a91f2a29f52 PiperOrigin-RevId: 166035866
* Remove tests from //tools/build_defs/dockerGravatar Jeff Grafton2017-08-22
| | | | | | | | | | | | | The real docker rules are in a separate repo now; docker_build is maintained here solely for the //src/test/docker tests. The tests under //tools/build_defs/docker are incompatible with some desired changes to pkg_tar, and since they now live in a separate repo, fixing the tests here is not worth the effort, so just remove them instead. Change-Id: I642bcdb57382eea1884713ae39f5b55ad5133139 PiperOrigin-RevId: 166031190
* Add OptionDefinition layer between the @Option annotation and its fields and ↵Gravatar ccalvarin2017-08-22
| | | | | | | | | | | the options parser. Removes any direct reads of the annotation outside of OptionDefinition. This allows for fewer manual checks for the annotation's existence, unifies error wording, and paves the way for potentially generifying the OptionsParser to accept different @Option-equivalent annotations. Also allows for cleanup of duplicate code by giving @Option-specific operations a clear home, such as sorts and default logic. In followup changes, we can eliminate some unnecessarily complex caching by instead memoizing values in the OptionDefinition. This will have the positive side effect of making sure reads come from the cached values. RELNOTES: None. PiperOrigin-RevId: 166019075
* Use CustomCommandLine directly instead of via SpawnAction.Builder.Gravatar tomlu2017-08-22
| | | | | | | | | | | | | This change forces use of CustomCommandLine.Builder, which has a richer interface for constructing memory-efficient command lines. It will also permit surveying the code base for inefficient patterns using an IDE. This change was done by hand and split using Rosie to assist with rollbacks in case of bugs. Reviewers, please pay particular attention to: * Each all to addInputArgument/addOutputArgument should come with a corresponding matching pair to SpawnAction.Builder#addInput and CustomCommandLine.Builder#addExecPath (eg.). * The commandLine must be set on the SpawnAction using SpawnAction.Builder#setCommandLine. Note that most calls to addPrefixed("arg=", val) should be more idiomatically expressed as add("arg", val), but this involves changing tests and making sure that the command line tools can accept the format. PiperOrigin-RevId: 166003829
* Add a --build_runfile_manifests flag which controls production ofGravatar Googler2017-08-22
| | | | | | | | foo_test.runfiles_manifest files. These are the largest local outputs in many builds, and unnecessary for remote test execution. RELNOTES: New --build_runfile_manifests flag controls production of runfiles manifests. PiperOrigin-RevId: 166001477
* Remove FeaturePolicyConfiguration et al. in favor of the new Whitelisting.Gravatar mstaib2017-08-22
| | | | | | | | This migrates the config_feature_flag implementation over and removes the old flag (which was not used except to test it). Fare thee well, old flag. RELNOTES: None. PiperOrigin-RevId: 165995681
* Update javac version to 9-dev-r4023-3Gravatar Liam Miller-Cushon2017-08-22
| | | | | Change-Id: If9373f81193050009432759da6299f1382e587ec PiperOrigin-RevId: 165994437
* Correct documentation for --build_runfile_links.Gravatar Googler2017-08-22
| | | | | | | Its effects are not restricted to C++ binaries. RELNOTES: None. PiperOrigin-RevId: 165992270
* Don't deduplicate LINK_INPUTS.Gravatar allevato2017-08-22
| | | | | | These files are supplemental inputs that should always be passed to the linker regardless of relationships between dependent binaries. PiperOrigin-RevId: 165982025
* Parallelize target pattern preloading (used by 'blaze query').Gravatar nharmata2017-08-22
| | | | | RELNOTES: None PiperOrigin-RevId: 165973661
* Minor change to the ActionOnIOExceptionReadingBuildFile interface.Gravatar nharmata2017-08-22
| | | | | RELNOTES: None PiperOrigin-RevId: 165967625
* Change some apple_static_library tests so they work forGravatar cpeyser2017-08-22
| | | | | | --experimental_objc_crosstool=all. PiperOrigin-RevId: 165966924
* Add recommendation to build-style.md about listing dependencies directly.Gravatar Googler2017-08-22
| | | | | RELNOTES: None. PiperOrigin-RevId: 165949361
* Remove workaround. The ASM bug is fixed. And we use ClassRemapper now.Gravatar cnsun2017-08-22
| | | | | RELNOTES: None PiperOrigin-RevId: 165949162
* Update documentation for srcs_version in python rulesGravatar yiyu2017-08-22
| | | | | | * highlight this attribute is deprecated from 0.5.3 because of `py_runtime` rule. PiperOrigin-RevId: 165945840
* Improve CustomCommandLine interface.Gravatar tomlu2017-08-22
| | | | | | | | | | | | | | | | In converting SpawnAction.Builder (multi-thousand line CL) users directly to CustomCommandLine I didn't like the resulting loss of readability, and the methods didn't feel very discoverable. Unless it's very convenient and readable to use CustomCommandLine, people will resort to non-memory efficient patterns by default. I'm holding that CL for this, which should offer a nicer interface. This CL removes VectorArg from the API contact surface area, instead creating 64 overloads for every valid combination of parameters. Pretty sad, but the methods dispatch straight to internal helper methods so it's mostly boilerplate to the tune of +400 LOC. Other changes: * Change ImmutableCollection -> Collection and copy the args directly into the internal args vector. Saves on collection object overhead and saves users from having to create immutable copies. * Change some names, notably add -> addAll for collection methods * Create additional missing overloads * Fix JavaDoc RELNOTES: None PiperOrigin-RevId: 165943879
* Resource filtering properly handles pseudolocalesGravatar Googler2017-08-22
| | | | | | | | | | Pseudolocalized resources are generated by aapt in response to their locales being passed to aapt. However, when filtering in analysis, we attempted to save time by not passing any filters to aapt. Fix this by passing the filters if pseudolocales were specified. RELNOTES: none PiperOrigin-RevId: 165939670
* remote: don't fail build if upload failsGravatar Benjamin Peterson2017-08-22
| | | | | | | | | | | | | | If the upload of local build artifacts fails, the build no longer fails but instead a warning is printed once. If --verbose_failures is specified, a detailed warning is printed for every failure. This helps fixing #2964, however it doesn't fully fix it due to timeouts and retries slowing the build significantly. Also, add some other tests related to fallback behavior. Change-Id: Ief49941f9bc7e0123b5d93456d77428686dd5268 PiperOrigin-RevId: 165938874
* Remove ALREADY_EXISTS special treatment from the CAS uploader. This error ↵Gravatar olaola2017-08-22
| | | | | | | | should no longer be thrown by any CAS implementations. TESTED=unit tests RELNOTES: none PiperOrigin-RevId: 165937395
* Blaze exports a feature for actions with objective c source in their transitiveGravatar cpeyser2017-08-22
| | | | | | closure. PiperOrigin-RevId: 165934905
* Terminate requests with OK instead of ALREADY_EXISTS in the Remote Worker.Gravatar olaola2017-08-22
| | | | | | | | | We intend to change the API to enforce that in the general case: https://docs.google.com/document/d/12c3oAPgedckLpue2yj0xGgJTEOyUm4mXWWBJ157J-8I/edit#heading=h.l7cw5mk7fh05 ALREADY_EXISTS should never be thrown by the CAS. TESTED=remote worker RELNOTES: PiperOrigin-RevId: 165933102
* More explicit warning for pkg_tar's filesGravatar Damien Martin-Guillerez2017-08-22
| | | | | | | | | So that the user knows the real action to do. Fixes #3401 Change-Id: I1f7ab258b22f832f31c35c83ff52b33bddf0732a PiperOrigin-RevId: 165931509
* Stop using CustomMultiArgv in OneVersionCheckActionBuilder.Gravatar tomlu2017-08-22
| | | | PiperOrigin-RevId: 165925128
* Rename some of native declared providers according to the new naming scheme.Gravatar dslomov2017-08-21
| | | | | RELNOTES: None PiperOrigin-RevId: 165910455
* Throw a static error when lvalue of an augmented assignment is a list.Gravatar laurentlb2017-08-21
| | | | | | | RELNOTES: When the lvalue of an augmented assignment is a list, we now throw an error before evaluating the code (e.g. `a, b += 2, 3`). PiperOrigin-RevId: 165906611
* Simplify RunfilesSupport interface by having it call ↵Gravatar Googler2017-08-21
| | | | | | | RuleContext.shouldCreateRunfilesSymlinks() itself. RELNOTES: None. PiperOrigin-RevId: 165774395
* Initial (partial) implementation of configured target query. Activated by ↵Gravatar janakr2017-08-21
| | | | | | | | | | | | | | | | | | | | | passing the --post_build_query flag to a build command, with a query expression as the argument. Bazel then executes this query on the configured target graph as constructed by the build command. Since the prepare graph -> query workflow is how SkyQueryEnvironment works, this is mostly just copying that. Main missing features/code cleanups: * Recursive target patterns (/...) are not supported. * There is no way to specify the configuration of the targets in your query. * Configuration output is totally opaque (just the hash, or null if no configuration). * More generally, no output options. * Some features (visibility, label attrs) not supported. * No edge filtering (host deps, implicit deps). * Aspects are totally ignored. * Graceful failure on errors, edge cases, incompatible flags (like the TAP flags that discard edges). * Code hygiene issues (calling test-only method to get to Skyframe graph, some code duplication across ConfiguredTargetQueryEnvironment and SkyQueryEnvironment). Most of the features I plan to leave to rules-side people, since I think they won't be too hard for a general Blaze developer to implement, and designing the right features and user interfaces for these things is better left to the rules side. PiperOrigin-RevId: 165747829
* Replace TransitionApplier interface with a dedicated class.Gravatar gregce2017-08-21
| | | | | | | | | | | | | | | This accomplishes a few goals: 1. Removes the outdated BuildConfiguration.StaticConfigurationApplier code. 2. Removes the TransitionApplier abstraction completely. This was an awkward bridge meant to support both static and dynamic implementations. 3. Moves transition logic to its own dedicated class: ConfigurationResolver. This no longer belongs in BuildConfiguration, which we ultimately want to become a simple <key, value> map. Part of the static config cleanup effort. PiperOrigin-RevId: 165736955
* Remove CustomArgv. It is unused.Gravatar tomlu2017-08-21
| | | | PiperOrigin-RevId: 165731260
* j2objc java tests work for --experimental_objc_crosstool=allGravatar cpeyser2017-08-21
| | | | PiperOrigin-RevId: 165730337
* Windows: Implement python native launcherGravatar Yun Peng2017-08-21
| | | | | | | | | | | | Now Bazel build a Windows exe to launch the python self-extracting zip file by default, using --windows_exe_launcher=0 to switch back to cmd wrapper. The extra zip file with shebang preprended is not built on Windows anymore, even when using cmd wrapper. Change-Id: Ic7060326f19ca6e2e73ea8d8211afd1c7618083c PiperOrigin-RevId: 165707076
* Fix stale comment.Gravatar nharmata2017-08-21
| | | | | RELNOTES: None PiperOrigin-RevId: 165705342
* Prevent using android libraries as resources if they have non-resource infoGravatar Googler2017-08-21
| | | | | | | | | | | | | | android_libraries can now be used in the resources attribute. However, if these libraries contain non-resource information, it won't get picked up. To prevent unexpected behavior, fail if such libraries are used as resources. Adding a temporary boolean to AndroidResourcesProvider seems to be the most straightforward way of doing this. The alternative, having the consuming target check all relevant providers for non-resource information, would be much messier. RELNOTES: None PiperOrigin-RevId: 165703578
* Switch android tools' use of options parser to a more concise form for the ↵Gravatar ccalvarin2017-08-21
| | | | | | | | | | | single options-base case. This is to prepare the options parser from making options parser creation exceptions a caught exception. Since all of these classes already have a single options class and used parseAndExitUponError, this allows us to keep behavior consistent between the malformed options-base errors and the incorrect user-input errors. All the other uses of the options parser in //src/tools already throw sufficiently broad exceptions to not need this. RELNOTES: None PiperOrigin-RevId: 165702786
* Refactor Bash LauncherGravatar Yun Peng2017-08-21
| | | | | | | | | | | | | | | | | | 1. Extract some funtions into NativeLauncherUtil.java So that they can also be used by Python and Java launcher. 2. Derive runfiles directory from mainExectuable yielding "%{name}.cmd.runfiles" or "%{name}.exe.runfiles" 3. Removed bash_main_file key, we can assume the main file is next the launcher just without .exe suffix. By doing this, we don't have to worry about passing RunfilesPath or ExecPath. RunfilesPath has ../ prefix for external file, ExecPath contians ./bazel-out/... for generated file. If main file is a generated file from external repository, neither of them are correct. Change-Id: Ie0c35f6030f6229c28d935d8fb3cb6a8af5af29c PiperOrigin-RevId: 165699975
* Do not add linking features in CppActionConfigs when crosstool already ↵Gravatar hlopko2017-08-21
| | | | | | | defines it RELNOTES: None. PiperOrigin-RevId: 165695975
* Add python as a bazel dependency into our docsGravatar hlopko2017-08-21
| | | | | RELNOTES: Python is now required to build bazel. PiperOrigin-RevId: 165694080
* Automated rollback of commit 2f38404728a12840e416566b453e9cdebab5d859.Gravatar elenairina2017-08-18
| | | | | | | | | | | | | | | | | | | | | Fixes #3584 *** Reason for rollback *** Broke bazel_windows_test fails on windows. *** Original change description *** Propagate detected value of BAZEL_SH to --client_env. Also make debug_log available as soon as possible on startup. Also adds some extra debug logging. Also removes some msys-only code paths. Fixes #3498. Change-Id: I5b769f2c5a728106e5252869745ec79e555cbaf2 PiperOrigin-RevId: 165692468
* Make cpp_darwin_integration_test.sh executableGravatar hlopko2017-08-18
| | | | | | | Fixes #3583. RELNOTES: None. PiperOrigin-RevId: 165687251
* Update docs since bazel doesn't link agains msys-2.0.dll anymoreGravatar hlopko2017-08-18
| | | | | RELNOTES: None. PiperOrigin-RevId: 165686521
* Make an immutable copy of a map in a simpler way.Gravatar lberki2017-08-18
| | | | | RELNOTES: None. PiperOrigin-RevId: 165685048
* Update windows doc for the current default msys install locationGravatar hlopko2017-08-18
| | | | | | | | Msys is now installed to c:\msys64 by default. This cl updates our docs to prevent confusion. RELNOTES: None. PiperOrigin-RevId: 165681864
* Partially revert ↵Gravatar cnsun2017-08-18
| | | | | | | https://github.com/bazelbuild/bazel/commit/bcb0354b2d7c7a8f824e9dab76cb21526a81a045. The try-with-resources library need to be compiled with java7, as we directly copy the classes into the desugared jar. RELNOTES: None PiperOrigin-RevId: 165637473
* Remove BuildConfiguration.useDynamicConfigurations.Gravatar gregce2017-08-18
| | | | | | | | This is always true. Part of the static config cleanup effort. PiperOrigin-RevId: 165628823
* Properly handle some values that can be null in AppleCommandLineOptions.Gravatar janakr2017-08-18
| | | | PiperOrigin-RevId: 165622047
* Add Skylark flags as common command optionsGravatar brandjon2017-08-18
| | | | | | | | | This makes these flags accessible to all commands, including some that don't do anything with Skylark (e.g. canonicalize-flags). This leads to spammier help messages. But the benefit is that it allows them to appear on a "common" line in the .bazelrc. Fixes #3538. RELNOTES: Skylark-related options may now appear as "common" command options in the .bazelrc PiperOrigin-RevId: 165620829
* Fix osx_cc_wrapper.sh for multiple rpathsGravatar Marcel Hlopko2017-08-18
| | | | | | | | | | | | | | osx_cc_wrapper.sh was not working correctly in cases when multiple rpaths were specified on linking command line. This cl modifies the wrapper to record all rpaths, and use the rpath that corresponds to a particular library when updating libraries install name. Fixes #3450 RELNOTES: None. Change-Id: I614694a792b6724a1db9814ee25af1802560c463 PiperOrigin-RevId: 165618946
* Separate android integration tests that require an NDK.Gravatar ajmichael2017-08-18
| | | | | RELNOTES: None PiperOrigin-RevId: 165616290
* Remove unnecessary options parser caching.Gravatar ccalvarin2017-08-18
| | | | | | | The options parser already has a static cache of all the reflection work performed. There can still be costs associated with the obtaining and combining of options classes (see the BlazeCommandDispatcher's additional caching), but in this case, each parser is made with a single options class, and none of the class-name extraction was being cached, so I think there was nothing gained. RELNOTES: None. PiperOrigin-RevId: 165613107
* Remove ConfigurationCollection{Function,Value}, ↵Gravatar gregce2017-08-18
| | | | | | | | BuildConfigurationCollection.Transitions. Part of the static config cleanup effort. PiperOrigin-RevId: 165607492