Skip to content

Commit

Permalink
Merge pull request ggerganov#27 from prichmp/master
Browse files Browse the repository at this point in the history
Build instructions for Windows
  • Loading branch information
tazz4843 authored Apr 10, 2023
2 parents 34260d4 + 33cb6c3 commit dfe7450
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 4 deletions.
40 changes: 40 additions & 0 deletions BUILDING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@

# Running on Windows using MSYS2

The following are instructions for building whisper-rs on Windows using the msys2 set of compilers.

1. install msys2/mingw by following [https://code.visualstudio.com/docs/cpp/config-mingw](`https://code.visualstudio.com/docs/cpp/config-mingw`)
1. Install g++ and make within msys2 ucrt64
- `pacman -S --needed base-devel mingw-w64-x86_64-toolchain`
2. Add the msys2 ucrt64 bin folder to path `C:\msys64\ucrt64\bin`
2. Install make by running `pacman -S make` in msys2 ucrt66
3. Set rust to use msys2: by running `rustup toolchain install stable-x86_64-pc-windows-gnu` in Windows Powershell/Cmd
4. Add `.cargo/config.toml` file in the project with the following contents:
```
[target.x86_64-pc-windows-gnu]
linker = "C:\\msys64\\ucrt64\\bin\\gcc.exe"
ar = "C:\\msys64\\ucrt64\\bin\\ar.exe"
```
5. Run `cargo run` in Windows Powershell/Cmd

# Running on Windows using Microsoft Visual Studio C++

It has been reported that it is also possible to build whisper-rs using Visual Studio C++.

Make sure you have installed and in the path:

- Visual Studio C++
- cmake

You may need to clone the git repository instead of using the Cargo package.

# Running on M1 OSX

To build on a M1 Mac, make sure to add the following to your project's `.cargo/config.toml`:

```
[target.aarch64-apple-darwin]
rustflags = "-lc++ -l framework=Accelerate"
```

See https://github.com/tazz4843/whisper-rs/pull/2 for more information.
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,23 +37,25 @@ See [examples/basic_use.rs](examples/basic_use.rs) for more details.
Lower level bindings are exposed if needed, but the above should be enough for most use cases.
See the docs: https://docs.rs/whisper-rs/ for more details.

## Building

See [BUILDING.md](BUILDING.md) for instructions for building whisper-rs on Windows and OSX M1.

## Troubleshooting

* I get an error about a lot of undefined symbols at compile time!
* These symbols might be part of the C++ standard library.
* Try linking against it with the `-Clink-args=-lstdc++` compiler flag:
* `RUSTFLAGS="-Clink-args=-lstdc++" cargo build`
* Windows/macOS/Android aren't working!
* macOS/Android aren't working!
* I don't have a way to test these platforms, so I can't really help you.
* If you can get it working, please open a PR!
* If you can get it working, please open a PR with any changes to make it work and build instructions in BUILDING.md!
* I get a panic during binding generation build!
* You can attempt to fix it yourself, or you can set the `WHISPER_DONT_GENERATE_BINDINGS` environment variable.
This skips attempting to build the bindings whatsoever and copies the existing ones. They may be out of date,
but it's better than nothing.
* `WHISPER_DONT_GENERATE_BINDINGS=1 cargo build`
* If you can fix the issue, please open a PR!
* M1 build info:
* See [this issue](https://github.com/tazz4843/whisper-rs/pull/2) for more info.

## License
[Unlicense](LICENSE)
Expand Down

0 comments on commit dfe7450

Please sign in to comment.