Build rust projects with x86_64-win7-windows-msvc target

This commit is contained in:
CasualPokePlayer 2024-06-17 19:41:52 -07:00
parent f309dbc316
commit 6e5de797d2
5 changed files with 21 additions and 7 deletions

Binary file not shown.

Binary file not shown.

View File

@ -1,3 +1,10 @@
@cargo b --release
@copy target\release\chd_capi.dll ..\..\Assets\dll
@copy target\release\chd_capi.dll ..\..\output\dll
:: To maintain Win7/8/8.1 compat for release builds, we must compile using the *-win7-windows-msvc target
:: This is a "Tier 3" target, which does not have prebuilt binaries (e.g. for standard library) available in rustup
:: The simplest way to use this target is to use the build-std argument, which builds the standard library
:: This requires the user to install the nightly toolchain (build-std is not in stable), then add the rust-src component
:: rustup toolchain install nightly-x86_64-pc-windows-msvc
:: rustup component add rust-src --toolchain nightly-x86_64-pc-windows-msvc
:: These don't need to be done for developer only builds (e.g. debug), only release builds need this
@cargo +nightly-x86_64-pc-windows-msvc b --release -Z build-std --target x86_64-win7-windows-msvc
@copy target\x86_64-win7-windows-msvc\release\chd_capi.dll ..\..\Assets\dll
@copy target\x86_64-win7-windows-msvc\release\chd_capi.dll ..\..\output\dll

View File

@ -35,7 +35,7 @@ Some more advanced features:
## Building
Standard rust build infrastructure is used and can be installed with `rustup`. At the moment, we're using the `nightly-x86_64-pc-windows-gnu`
Standard rust build infrastructure is used and can be installed with `rustup`. At the moment, we're using the `nightly-x86_64-pc-windows-msvc`
chain on Windows, and the `nightly-x86_64-unknown-linux-gnu` chain on linux. I don't know much about crosspiling, but presumably that will work.
The linux chain works fine in WSL, anyway. When used in a Windows environment with the right default chain, `build-release.bat` will build
waterboxhost.dll and copy it to the right place. When used in a Linux (or WSL) environment with the right default chain, `build-release.sh`

View File

@ -1,3 +1,10 @@
@cargo b --release
@copy target\release\waterboxhost.dll ..\..\Assets\dll
@copy target\release\waterboxhost.dll ..\..\output\dll
:: To maintain Win7/8/8.1 compat for release builds, we must compile using the *-win7-windows-msvc target
:: This is a "Tier 3" target, which does not have prebuilt binaries (e.g. for standard library) available in rustup
:: The simplest way to use this target is to use the build-std argument, which builds the standard library
:: This requires the user to install the nightly toolchain (build-std is not in stable), then add the rust-src component
:: rustup toolchain install nightly-x86_64-pc-windows-msvc
:: rustup component add rust-src --toolchain nightly-x86_64-pc-windows-msvc
:: These don't need to be done for developer only builds (e.g. debug and/or no-dirty-detection), only release builds need this
@cargo +nightly-x86_64-pc-windows-msvc b --release -Z build-std --target x86_64-win7-windows-msvc
@copy target\x86_64-win7-windows-msvc\release\waterboxhost.dll ..\..\Assets\dll
@copy target\x86_64-win7-windows-msvc\release\waterboxhost.dll ..\..\output\dll