Add optional functionality to display source file locations in `output=location `instead of targets. Added an additional flag `[no]incompatible_display_source_file_location` to override the default behaviour (when false) to print the source file targets instead of their locations. Additionally, the `relative_locations` flag will similarly display the relative location of the source file. This https://github.com/bazelbuild/bazel/issues/12322 describes the issue and potential migration recipes. Example of new configurations for blaze query location=output with `incompatible_display_source_file_location` and `relative_locations` flags below: 1. Default behaviour: Displays absolute paths to both BUILD and source file ``` $ bazel query blazetest:main.py --output=location --incompatible_display_source_file_location /home/tanzhengwei/blazetest/BUILD:1:10: source file /home/tanzhengwei/blazetest/main.py:1:1 ``` 2. Displays relative paths to both BUILD and source file ``` $ bazel query blazetest:main.py --output=location --relative_locations --incompatible_display_source_file_location blazetest/BUILD:1:10: source file blazetest/main.py:1:1 ``` 3. Displays relative path to BUILD file and source file target ``` $ bazel query blazetest:main.py --output=location --relative_locations --noincompatible_display_source_file_location blazetest/BUILD:1:10: source file //blazetest:main.py ``` 4. Displays absolute path to BUILD file and source file target ``` $ bazel query blazetest:main.py --output=location --noincompatible_display_source_file_location /home/tanzhengwei/blazetest/BUILD:1:10: source file //blazetest:main.py ``` RELNOTES: Added flag `incompatible_display_source_file_location` for `blaze query location=output` to print the location of line 1 of the actual source files instead of the source file targets. Provides a solution to https://github.com/bazelbuild/bazel/issues/8900. PiperOrigin-RevId: 338240601
{Fast, Correct} - Choose two
Build and test software of any size, quickly and reliably.
Speed up your builds and tests: Bazel rebuilds only what is necessary. With advanced local and distributed caching, optimized dependency analysis and parallel execution, you get fast and incremental builds.
One tool, multiple languages: Build and test Java, C++, Android, iOS, Go, and a wide variety of other language platforms. Bazel runs on Windows, macOS, and Linux.
Scalable: Bazel helps you scale your organization, codebase, and continuous integration solution. It handles codebases of any size, in multiple repositories or a huge monorepo.
Extensible to your needs: Easily add support for new languages and platforms with Bazel's familiar extension language. Share and re-use language rules written by the growing Bazel community.
Follow our tutorials:
See CONTRIBUTING.md