Bazel Operations: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 51: Line 51:
bazel query 'deps(//my_package:my_executable)' --output graph > graph.in
bazel query 'deps(//my_package:my_executable)' --output graph > graph.in
dot -Tpng < graph.in > graph.png
dot -Tpng < graph.in > graph.png
</syntaxhighlight>
===Find a Dependency Path between a Target and a Dependency===
<syntaxhighlight lang='bash'>
bazel query 'somepath(//path/to/package:target, //dependency)'
</syntaxhighlight>
<syntaxhighlight lang='bash'>
bazel query 'somepath(//my_package:my_executable, //tools/somepackage/somelib)'
</syntaxhighlight>
</syntaxhighlight>



Revision as of 20:29, 5 June 2024

External

Internal

Commands

build

bazel build //...

clean

fetch

info

bazel info

run

Runs the specified target. It inherits all options form build.

bazel run --script_path=/Users/ovidiu/bin/something //a/something

Runs the specified target.

--script-path

Write a shell script that invokes the target. In this way, the target is not run from bazel - the bazel lock is released and the executable is connected to the terminal's stdin.

version

query

bazel query <options> <query-expression>

Executes a query language expression over a specified subgraph of the build dependency graph.

Find All Targets

bazel query '//:*'

Find all Dependencies of a Dependency Graph Node

bazel query 'deps(//path/to/package:target)'

Example:

bazel query 'deps(//my_package:my_executable)'
bazel query 'deps(//:main)'

To build the graphic dependency graph:

bazel query 'deps(//my_package:my_executable)' --output graph > graph.in
dot -Tpng < graph.in > graph.png

Find a Dependency Path between a Target and a Dependency

bazel query 'somepath(//path/to/package:target, //dependency)'
bazel query 'somepath(//my_package:my_executable, //tools/somepackage/somelib)'

Scenarios

Clean Cache

bazel run @cached_local_xcode//:clear_cache; bazel clean --expunge; bazel shutdown; go clean -cache