https://github.com/maulingmonkey/cargo-vs
autogenerate visual studio solutions / projects
https://github.com/maulingmonkey/cargo-vs
2017 cargo rust studio visual vs
Last synced: 7 months ago
JSON representation
autogenerate visual studio solutions / projects
- Host: GitHub
- URL: https://github.com/maulingmonkey/cargo-vs
- Owner: MaulingMonkey
- License: other
- Created: 2020-10-12T00:42:37.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-10-15T09:31:59.000Z (about 2 years ago)
- Last Synced: 2024-10-14T04:22:30.734Z (about 1 year ago)
- Topics: 2017, cargo, rust, studio, visual, vs
- Language: Rust
- Homepage:
- Size: 23.4 KB
- Stars: 18
- Watchers: 5
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# cargo-vs • autogenerate visual studio solutions / projects
[](https://github.com/MaulingMonkey/cargo-vs)
[](https://crates.io/crates/cargo-vs)
[![%23![forbid(unsafe_code)]](https://img.shields.io/github/search/MaulingMonkey/cargo-vs/unsafe%2bextension%3Ars?color=green&label=%23![forbid(unsafe_code)])](https://github.com/MaulingMonkey/cargo-vs/search?q=forbid%28unsafe_code%29+extension%3Ars)
[](https://gist.github.com/MaulingMonkey/c81a9f18811079f19326dac4daa5a359#minimum-supported-rust-versions-msrv)
[](https://github.com/MaulingMonkey/cargo-vs)
[](https://github.com/MaulingMonkey/cargo-vs/actions?query=workflow%3Arust)
Quickstart
```cmd
cd my-rust-project
cargo install cargo-vs
cargo vs2017
"%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe" vs\vs2017.sln
```
What's generated?
`vs/.gitignore` since many/most projects don't want .vsode boilerplate checked in IME (although I always provide mine)
`vs/vs2017.sln`
`vs/vs2017/*.vcsproj` - Makefile style projects which will invoke `cargo +stable-%ARCH%-pc-windows-msvc build --target %ARCH%-pc-windows-msvc --package [package] [--bin|--example] [target] [--release]`
Caveat: 32-bit (x86/Win32) builds require an i686 toolchain
When MSVC configures a build environment, rustc will pick up the `%PATH%` provided `link.exe`.
On the plus side, this means it should work for new VS versions rustc doesn't recognize.
On the minus side, this means that `build.rs` and your target use the same linker, and must match architectures.
This could be "fixed" by clearing a bunch of environment variables, but...
Why makefile projects instead of .vs/*.vs.json?
* Easier to retrofit support for legacy Visual Studio versions
* Presumably easier to integrate into your existing C++/C# msbuild mess
* I can't figure out how to launch the graphics debugger with .vs/*
* Proper build matricies
License
Licensed under either of
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.