aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* Generalize ConfigSetting's special options handling.Gravatar mstaib2017-04-05
| | | | | | | | | | | | | | | | Currently ConfigSetting is treated specially; TransitiveTargetFunction identifies it by name, then runs a special function on it. This change makes ConfigSetting use a new options reference function in RuleClass, which TransitiveTargetFunction will evaluate over the rule and use with the options-to-fragments map to figure out which fragments are needed. Although this is still a hack and not really a new feature on RuleClass, this avoids a dependency on ConfigSettingRule from TransitiveTargetFunction, which is necessary for ConfigSettingRule to be moved to rules/config. RELNOTES: None. PiperOrigin-RevId: 152156905
* Clean up clearValue and parsed option storage.Gravatar ccalvarin2017-04-05
| | | | | | | | | | Now that policy expands itself before being applied, clearValues never has to clear more than a single value. This makes that more clear. OptionValueDescription had not been consistently storing the snake_case name for an option, leading to some weird behavior when removing the map of return values from clearValues. PiperOrigin-RevId: 152156746
* Remove "--no_" prefix for boolean flags in our integration tests.Gravatar ccalvarin2017-04-05
| | | | | | Assembled by removing it and seeing what broke. PiperOrigin-RevId: 152148487
* Refactor all ctor callsites of PathFragment to instead call a static ↵Gravatar nharmata2017-04-05
| | | | | | | | | | | | 'create' method. This paves the way for changing PathFragment to e.g. an abstract class with multiple subclasses. This way we can split out the windows-specific stuff into one of these concrete classes, making the code more readable and also saving memory (since the shallow heap size of the NonWindowsPathFragment subclass will hopefully be smaller than that of the current PathFragment). This also lets us pursue gc churn optimizations. We can now do interning in PathFragment#create and can also get rid of unnecessary intermediate PathFragment allocations. RELNOTES: None PiperOrigin-RevId: 152145768
* Avoid `Iterable<Path>`Gravatar cushon2017-04-05
| | | | | | | The signature of setLocationFromPaths changes in JDK 9, see: https://bugs.openjdk.java.net/browse/JDK-8150111 PiperOrigin-RevId: 152143259
* Fix typos in Bazel C++ tutorial documentationGravatar Googler2017-04-04
| | | | | | The tutorial discusses code for a "Hello World" program, but the test near the end is named "FactorialTest". This seems like a copy-and-paste error. PiperOrigin-RevId: 152140360
* adding more env vars to invalidation listGravatar Nicolas Lopez2017-04-04
| | | | | | | | | It seems several env vars that are used by cc_configure are not in the invalidation list and not included in the bootstrap compile. Adding them. Change-Id: I67f73ae09abbe9033bcbbcb4026dab04d225b699 PiperOrigin-RevId: 152139948
* Windows, docs: update VC++ requirementsGravatar laszlocsomor2017-04-04
| | | | | | RELNOTES: none PiperOrigin-RevId: 152137659
* BEP: provide events a generic converter classGravatar aehlig2017-04-04
| | | | | | | | | | | Change the BuildEvent interface to accept a generic class of converters. In this way, we won't have to change it again in the future, once more converters are needed. In fact, a new converter is needed right now (will be added in a follow-up patch) to allow build events to know the name of named artifact groups already reported in the stream. Change-Id: Ibb32ea5fff361e21bcf2d34818d8351a1da7a2e3 PiperOrigin-RevId: 152131870
* Remove jack support and make jack/jill attributes of android_sdk optional.Gravatar ajmichael2017-04-04
| | | | | | | | | Closes https://github.com/bazelbuild/bazel/issues/1391. RELNOTES: Removed --experimental_use_jack_for_dexing and libname.jack output of android_library. PiperOrigin-RevId: 152131075
* Set default python3_path to python.exe on WindowsGravatar pcloudy2017-04-04
| | | | | | | | | | | | When building py_binary for host with --host_force_python=py3, --python3_path is not taken, instead python3.exe is always used. It doesn't work because python3.exe usually doesn't exist on Windows. So here we set the default to python.exe Fixed https://github.com/bazelbuild/bazel/issues/2752 Change-Id: Ie48156d93ae1f28338947ea121ab2071e1b820e1 PiperOrigin-RevId: 152130801
* Restructure Path#getCachedChildPath to make direct method calls without ↵Gravatar nharmata2017-04-04
| | | | | | | | allocating a garbage TranslatedPath object. RELNOTES: None PiperOrigin-RevId: 152130170
* Automated g4 rollback of commit 1d9e1ac90197b1d3d7b137ba3c1ada67bb9ba31b.Gravatar hlopko2017-04-04
| | | | | | | | | | | | | | | | | | *** Reason for rollback *** Breaks //src/test/shell/integration:force_delete_output_test *** Original change description *** Symlink output directories to the correct directory name If the workspace directory is /path/to/my/proj and the name in the WORKSPACE file is "floop", this will symlink the output directories to output_base/execroot/floop instead of output_base/execroot/proj. More prep for #1262, fixes #1681. PiperOrigin-RevId: 152126545
* Windows, JNI: non-zero exit code for terminationGravatar laszlocsomor2017-04-04
| | | | | | | | | | | | | | | | | | | Terminate processes and job objects with non-zero exit code. Zero was the most unfortunate exit code possible because it made the Java side believe that the process exited successfully. There's another bug in the Java side too where StandaloneSpawnStrategy ignores the thread's interruption state. I'll fix that in a separate change. Fixes https://github.com/bazelbuild/bazel/issues/2774 Change-Id: I01b3d95848cb04618395c9ef2fa0d1a406b25cca PiperOrigin-RevId: 152119343
* Disable cc_configure tests on debian stretch altogetherGravatar hlopko2017-04-04
| | | | | | | | | | | | | Not only opt builds fail, also fastbuild: http://ci.bazel.io/view/Dashboard/job/bazel-docker-tests/lastCompletedBuild/BAZEL_VERSION=latest,PLATFORM_NAME=docker/console The issue is tracked here: https://github.com/bazelbuild/bazel/issues/2418 RELNOTES: NONE. PiperOrigin-RevId: 152109844
* Deleted unused stalled javac-9-dev binariesGravatar Damien Martin-Guillerez2017-04-04
| | | | Change-Id: If256f5fdf59862b6f2efe4fff1fbeccd2e87c414
* Update to auto-value 1.4Gravatar Damien Martin-Guillerez2017-04-04
| | | | Change-Id: I0455ef5f9f81f1443fd3cfa63a26f67f4f37529a
* Extract a SpawnRunner interfaceGravatar ulfjack2017-04-04
| | | | | | | | | | | | | | | | | | | | | The RemoteSpawnRunner now implements the SpawnRunner interface. Note that Google's internal implementations were also retrofitted, and SpawnRunner is intended as a stable interface; that's also why I decided to move all params into SpawnExecutionPolicy, which is, unfortunately, not quite done yet. The specification of SpawnRunner is also still incomplete. In particular, it is still missing execution info keys, as well as inputs and outputs handling. This is a step towards unifying all SpawnStrategy implementations, with the SpawnRunner implementations performing the actual Spawn execution. There should be no user-visible semantic changes to the code, but one small fix: - GrpcActionCache was trying to download files even if there were none PiperOrigin-RevId: 152105696
* Create parent directories for resourcesGravatar cushon2017-04-04
| | | | | | | | | This makes singlejar's handling of resources consistent with JavaBuilder, and allows the JavaBuilder resource handling to be replaced by a singlejar action that adds resources to library jars separately from compilation (see unknown commit). PiperOrigin-RevId: 152082884
* Remove all directories under the execroot during a cleanGravatar kchodorow2017-04-04
| | | | | | | Now the actual workspace root might not be the basename of the workspace, and everything should be removed anyway. PiperOrigin-RevId: 152062690
* It must to be clear to readers that design documents in the 'Contribute!' ↵Gravatar Googler2017-04-04
| | | | | | section do not describe current functionality of Bazel. If a reader comes to one of these pages from an online search, it must be clear that this is not documentation. PiperOrigin-RevId: 152052655
* Scan both .h and .m files for imports and includesGravatar Googler2017-04-04
| | | | | | | | The dependency mappings are generated by scanning the .m files. I found a case where a header file was only imported in the .h file. RELNOTES: None. PiperOrigin-RevId: 152050144
* Add "--build_manual_tests" options that forces manual tests to be built.Gravatar dslomov2017-04-04
| | | | | | | | | This is useful for IDEs and other tools utilizing command-line aspects for reflection over build graph. RELNOTES: None. PiperOrigin-RevId: 152038248
* Consolidate tests for the presence of sources and resourcesGravatar cushon2017-04-04
| | | | | | to avoid duplicating the logic. PiperOrigin-RevId: 152035446
* Roll forward change https://cr.bazel.build/9250 with Java 7 build failure fix.Gravatar xingao2017-04-04
| | | | | | | | | Make Java tool jars available from @bazel_tools. Now users can point to default Java tool jars in customized java_toolchain rule defined in project's BUILD file. PiperOrigin-RevId: 152012191
* Iterable -> ImmutableList for ACTIVATED_ACTIONS in order to respect ↵Gravatar cpeyser2017-04-04
| | | | | | https://github.com/google/error-prone/blob/master/docs/bugpattern/MutableConstantField.md PiperOrigin-RevId: 152012020
* Implement DSYM generation for the CROSSTOOL rules.Gravatar cpeyser2017-04-04
| | | | PiperOrigin-RevId: 152011915
* Remove leading '$' from docs that are interfering with copy/pasteGravatar laszlocsomor2017-04-04
| | | | | | | | Fixes: https://github.com/bazelbuild/bazel/issues/2399 Change-Id: I21d00430cdf7ece72f532a1cb1be94e9b07a0114 PiperOrigin-RevId: 152001779
* BEP: Extend the protocol to support named sets of filesGravatar aehlig2017-04-03
| | | | | | | | | In this way, if several targets share output artifacts, those can be reported in a more compact way. Change-Id: I5a5bf30a533e05f55221431a1c500e606d411ef7 PiperOrigin-RevId: 151985307
* Modify package parser regex to handle scala packages too.Gravatar Googler2017-04-03
| | | | | | RELNOTES: None. PiperOrigin-RevId: 151884306
* Add isConfigMatcher property to rule classes.Gravatar mstaib2017-04-03
| | | | | | | | | | | | | | BuildConfiguration currently depends directly on the name of a rule class to see if it is config_setting. This creates a circular dependency between ConfigSetting and BuildConfiguration. As ConfigSetting is being moved to rules/config, this circular dependency will no longer work. This replaces the name special case for a special property of the rule class, which only config_setting should set. RELNOTES: None. PiperOrigin-RevId: 151871084
* Add --all_incompatible_changes, the user's shorthand for turning on all ↵Gravatar brandjon2017-04-03
| | | | | | | | | | | | --incompatible_* flags Note that if a developer adds a poorly-formatted incompatible change @Option, constructing an OptionsParser will now fail with an unchecked exception. This can cause some unit tests to fail in unexpected ways, but the developer should see an appropriate error message when the server starts up. To be added: A separate integration test that ensures the expansions of --all_incompatible_changes don't clobber each other. RELNOTES: None PiperOrigin-RevId: 151858287
* Rename the ToolchainProvider to a more accurate name (and free up the name ↵Gravatar jcater2017-04-03
| | | | | | | | for the new ToolchainProvider). Change-Id: I3537e1ed924c598707759c4a7040d5ba00de559c PiperOrigin-RevId: 151853764
* Add new exception for wrapping parser construction failuresGravatar brandjon2017-04-03
| | | | | | | | | | The exception is unchecked. The reasoning is that errors during parser construction should not occur, and when they do occur it is an internal error like a failed assertion. This allows casual uses of the options parser to stay oblivious to the possibility of failures, consistent with how DuplicateOptionDeclarationException is currently [not] handled. At the same time, the dispatcher can catch the exception to fail gracefully (by printing to stdout instead of a log file) when parser construction fails for any reason. RELNOTES: None PiperOrigin-RevId: 151839620
* Allow protoc to emit annotation metadata files in addition to generated source.Gravatar Googler2017-04-03
| | | | | | | | This includes the necessary changes to both CcSupport and JavaSupport to enable the protoc flags when enabled on the Blaze command line as well as the plumbing to the C++ rules to allow Kythe `.h.meta` files to be included as transitive required inputs. PiperOrigin-RevId: 151833238
* Move BuildConfiguration option data access to a new class.Gravatar mstaib2017-04-03
| | | | | | | | | | | | | | | | | ConfigSetting is being moved to rules/config, and that means that it no longer has its special package-private access to BuildConfiguration. The solution: a new TransitiveOptionDetails class which cuts down on clutter in BuildConfiguration and is publicly accessible. However, we don't really want anyone accessing BuildConfiguration's TransitiveOptionsDetails - only config-related rules should ever need it. As a result, BuildConfigurationOptionDetails provides public access to BuildConfiguration's TransitiveOptionDetails, but is limited via Blaze visibility to only configuration rules. RELNOTES: None. PiperOrigin-RevId: 151828068
* Add internal section to override android jar.Gravatar Googler2017-04-03
| | | | PiperOrigin-RevId: 151825956
* Add flag to compress all Java resources before bundling them into the APK.Gravatar ajmichael2017-04-03
| | | | | | | RELNOTES: Add --experimental_android_compress_java_resources flag to store java resources as compressed inside the APK. PiperOrigin-RevId: 151825809
* Undocument --no_ prefix, it's redundant and will go away.Gravatar ccalvarin2017-03-31
| | | | | | RELNOTES: For boolean flags, setting them to false using --no_<flag_name> is deprecated. Use --no<flag_name> without the underscore, or --<flag_name>=false instead. PiperOrigin-RevId: 151820875
* Fix broken HTML tag.Gravatar fwe2017-03-31
| | | | PiperOrigin-RevId: 151814714
* Fix MSVC CROSSTOOL for linking against lib filesGravatar pcloudy2017-03-31
| | | | | | | | | | | | | | | | 1. No need to add /WHOLEARCHIVE option for object files 2. When linking against a .lib file of a dll with /WHOLEARCHIVE option, the linker produces an error. So strip it in msvc_link.py. The second point is a temporary workaround to make TF GPU build work, we'll fix it properly when we figure out how to deal with .lib, .dll, .pdb files on Windwos. Fix https://github.com/bazelbuild/bazel/issues/2753 Change-Id: Ia77b67546bfd4f19ceeb0f6ab9ab3b7a598c4fe9 PiperOrigin-RevId: 151811504
* Move GitHub link right of the search bar.Gravatar dzc2017-03-31
| | | | | | | | | Similar to the TensorFlow website, having the GitHub link separate at the right of the search bar makes it more easy to find. RELNOTES: None PiperOrigin-RevId: 151810276
* Strict proto deps: handle direct protos in external repositories.Gravatar carmi2017-03-31
| | | | | | RELNOTES: None PiperOrigin-RevId: 151786403
* Open source android_device rule.Gravatar ajmichael2017-03-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This rule has an implicit dependency on unified_launcher, which is hosted in an external repository at https://github.com/google/android-testing-support-library and must be set up in the WORKSPACE file with repository name @android_test_support. A future change will introduce an Android tools set-up macro that will create workspace rules for all of the remote Android tools, including unified_launcher. Note that unified_launcher is not supported on Mac or Windows, so Bazel will only be able to successfully build the android_device rule on Linux. Instructions to set up unified_launcher for use with android_device: 1. Install xvfb 2. In your WORKSPACE add ``` android_sdk_repository(name = "androidsdk") # Also set $ANDROID_HOME git_repository( name = "android_test_support", remote = "https://github.com/google/android-testing-support-library", commit = "79725fed7a6884074fb3647a683869e7141ecf64", ) load( "@android_test_support//tools/android/emulator:unified_launcher.bzl", load_unified_launcher_deps = "load_workspace") load_unified_launcher_deps() ``` In your BUILD file, you can create an android_device rule for a system image that you have installed in your Android SDK as: ``` android_device( name = "my_device", cache = 256, default_properties = "@bazel_tools//tools/android/emulator:no_se_linux.properties", horizontal_resolution = 640, vertical_resolution = 800, screen_density = 133, ram = 2048, vm_heap = 256, system_image = "@androidsdk//:android-23_default_x86_files", ) ``` RELNOTES: Introduces experimental android_device rule for configuring and launching Android emulators. PiperOrigin-RevId: 151766489
* Use ImmutableList.Builder and ImmutableListMultimap.Builder to create the ↵Gravatar shreyax2017-03-31
| | | | | | | | outputFiles and outputFileMap objects in Rule. RELNOTES: None. PiperOrigin-RevId: 151764143
* If --batch, --keep_going, --discard_analysis_cache, and the new ↵Gravatar janakr2017-03-31
| | | | | | | | | | | | | | | --noexperimental_enable_critical_path_profiling flags are all specified, then Bazel will delete Actions from ActionLookupValues as they are executed in order to save memory. Because an already-run action may output an artifact that is only requested later in the build, we need to maintain a way for the artifact to look up the action. But in most cases we don't need to keep the action itself, just its output metadata. Some actions unfortunately are needed post-execution, and so we special-case them. Also includes dependency change with description: Move action out of key. This keeps action references from polluting the graph -- actions are just stored in one SkyValue, instead of being present in SkyKeys. This does mean additional memory used: we have a separate ActionLookupData object per Action executed. That may reach ~24M for million-action builds. PiperOrigin-RevId: 151756383
* Build android_binary APKs with Singlejar by default.Gravatar ajmichael2017-03-31
| | | | | | | | | This will improve android_binary build times and allow Bazel to remove a dependency on our forked version of the deprecated ApkBuilderMain. RELNOTES: None PiperOrigin-RevId: 151749709
* Add option to disable critical path computation in Bazel. While this ↵Gravatar janakr2017-03-31
| | | | | | | | | | information is useful, the critical path computer retains references to objects that could otherwise be cleared to save memory. This change is probably not worth submitting on its own -- the benefit it provides is too slight. But my follow-up change unknown commit needs this option to be effective -- the critical path currently hangs on to references to every action in the graph, so we can't drop references to actions if it's enabled. The critical path could probably be reworked in the future to not hang onto those references. PiperOrigin-RevId: 151747605
* Add the config_feature_flag rule.Gravatar mstaib2017-03-31
| | | | | | | | | | | | | | This rule allows users to define flags as part of the Bazel configuration. These flags will be select-able through a new attribute on config_setting, and settable through transitions within certain special rules. This rule is currently not supported by any other rules, not even config_setting, and its values cannot be set; accordingly, it's not very useful yet. RELNOTES: None. PiperOrigin-RevId: 151746523
* Small documentation fix.Gravatar Googler2017-03-31
| | | | | | RELNOTES: none PiperOrigin-RevId: 151746179