Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sammi/bazel-to-msbuild

Generate visual studio solution from a bazel workspace.
https://github.com/sammi/bazel-to-msbuild

bazel msbuild visualstudio

Last synced: 11 days ago
JSON representation

Generate visual studio solution from a bazel workspace.

Awesome Lists containing this project

README

        

bazel-to-msbuild
----------------

Generate msbuild project from bazel project

- [x] It is using ```bazel query ... output=proto``` to gather all cc_library, cc_binary, and cc_test packages;
- [x] It generates one msbuild project for one target;
- [x] It generates one solution for one bazel workspace;
- [x] It detects target dependencies and manage them as project references in msbuild project;
- [x] It detects Windows dll library and manage dll library as the application project reference;
- [ ] It detects midl file and manage it by Midl task in project;

# Install and Usage

Unzip the tool and put it in your PATH
```
wget https://github.com/sammi/bazel-to-msbuild/releases/download/v0.2.11/b2m-0.2.11.zip
unzip b2m-0.2.11.zip
#On linux and/or Mac
cd b2m
chmod a+x b2m
```

Run the command:

```
b2m {your_bazel_workspace_dir} {your_solution_file_name}
```

Generate project with static library
```
cd bazel-to-msbuild\integration\src\test\resources\stage3
b2m . app
```
Then you should be able to find msbuild solution and project files under stage3 folder:
```
app.sln
lib\hello-time.vcxproj
lib\hello-time.filters
lib\hello-time.user
main\hello-greet.vcxproj
main\hello-greet.filters
main\hello-greet.user
main\hello-world.vcxproj
main\hello-world.filters
main\hello-world.user
```
Generate project with static library
```
cd bazel-to-msbuild\integration\src\test\resources\dll
b2m . app
```
Then you should be able to find msbuild solution and project files under dll folder:
```
app.sln
clib\clib.vcxproj
clib\clib.filters
clib\clib.user
main\main.vcxproj
main\main.filters
main\main.user
```

Then Open app.sln by Visualstudio, set main as the startup project, you should be able to debug the application and its dll library clib.

# Sample bazel projects
We have sample projects in our integration test resources folder, which can be built by bazel, and be converted to msbuild solution and projects.

https://github.com/sammi/bazel-to-msbuild/tree/main/integration/src/test/resources