Skip to content

Commit

Permalink
Build rust projects with x86_64-win7-windows-msvc target
Browse files Browse the repository at this point in the history
  • Loading branch information
CasualPokePlayer committed Jun 18, 2024
1 parent f309dbc commit 6e5de79
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 7 deletions.
Binary file modified Assets/dll/chd_capi.dll
Binary file not shown.
Binary file modified Assets/dll/waterboxhost.dll
Binary file not shown.
13 changes: 10 additions & 3 deletions ExternalProjects/libchd-rs-capi/build_release.bat
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion waterbox/waterboxhost/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand Down
13 changes: 10 additions & 3 deletions waterbox/waterboxhost/build-release.bat
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 6e5de79

Please sign in to comment.