diff --git a/BUILDING.md b/BUILDING.md new file mode 100644 index 00000000000..05cded6e432 --- /dev/null +++ b/BUILDING.md @@ -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. diff --git a/README.md b/README.md index d05270be851..101fa328751 100644 --- a/README.md +++ b/README.md @@ -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)