Skip to content
Generate Visual Studio projects for Bazel (experimental)
Branch: master
Clone or download

Latest commit

tmandry Merge pull request #13 from laszlocsomor/fix-bazel-0.28
Fix Starlark errors for Bazel 0.28.0
Latest commit 6b8311a Jul 12, 2019


Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE Create LICENSE Feb 28, 2018 Add related projects section to README Apr 19, 2018


Generate Visual Studio projects with bazel. The projects use bazel to do the actual building.

Currently this only works for C++. Support for building targets in other languages is planned.

Formerly bazel-msbuild.


  • bazel
  • Python 2 or 3

Getting started

Run this in your normal development environment (MSYS bash, cmd.exe, or PowerShell):

$ git clone

# Then, in your bazel project...
$ python /path/to/lavender/ //mypackage/...

$ start msbuild/myproject.sln

Where //mypackage/... is an optional Bazel query describing which packages you want to generate projects for. Generally, you want to use a package name, label name, or wildcard such as //mypackage/..., which means "mypackage and everything beneath it".

You can specify more than one query. If you specify no query, projects will be generated for ALL packages. Be careful on large repos!


The environment you start Visual Studio from affects how Bazel is configured. Make sure this environment is configured according to the Using Bazel on Windows docs; in particular, it's important to set BAZEL_SH system-wide. If your environment settings are different between Visual Studio and your terminal, you might end up talking to two different Bazel servers.


Full C++ debugging is supported.

However, when debugging, Visual Studio will open up source file names built into the binary that are symlinks to the original source. This can be confusing, because you will have two copies of the same file open. Making a change to one may cause Visual Studio to prompt you about changes made to the other tab. It is best to check "Always reload files when there are no unsaved changes", so that this becomes less annoying.


Lavender is the color of the Visual Studio logo. It's also an herb, like basil.


usage: [-h] [--output OUTPUT] [--solution SOLUTION]
                   [--config CONFIG]
                   [query [query ...]]

Generates Visual Studio project files from Bazel projects.

positional arguments:
  query                 Target query to generate project for [default: all

optional arguments:
  -h, --help            show this help message and exit
  --output OUTPUT, -o OUTPUT
                        Output directory
  --solution SOLUTION, -n SOLUTION
                        Solution name [default: current directory name]
  --config CONFIG       Additional --config option to pass to bazel; may be
                        used multiple times

Related projects

You can’t perform that action at this time.