Unfortunately, since we rely on LLVM, compiling from scratch can be painful.
This guide is meant to reduce that pain. Different system configurations may yield different results.
Rust Setup:
- Download rustup
- Continue WITHOUT installing the C++ build tools
- Press
2
for customization - Enter the default target triple as
x86_64-pc-windows-gnu
- Enter nightly as default toolchain
- Choose default installation profile
- Tell it to modify the path variable
- Press
1
to proceed with the installation
MSYS2 Setup:
- Download MSYS2
- Install MSYS2
- Open the MSYS2 Mingw64 Prompt
pacman -S git --noconfirm
pacman -S mingw-w64-x86_64-gcc --noconfirm
pacman -S mingw-w64-x86_64-llvm --noconfirm
git clone https://github.com/IsaacShelton/Adept3x
cd Adept3x
LLVM_SYS_191_PREFIX=/mingw64 ~/.cargo/bin/cargo +nightly build --release
The output will be in ./target/release
.
Then, either copy the ./infrastructure
folder to
./target/release/infrastructure
, or specify the infrastructure to use via the
command line - ./target/release/adept.exe --infrastructure ./infrastructure
.
This folder contains files for linking on Windows, as well as files needed for cross-compilation.
- Install rust nightly (most likely via rustup)
brew install llvm-18-dev
cargo +nightly build --release
- (optional) copy
./infrastructure
folder to./target/release/infrastructure
for easy cross-compiling to other platforms
- Install rust nightly (most likely via rustup)
sudo apt install -y git
:sudo apt install -y llvm-18-dev
:sudo apt install -y libstdc++14-dev
:git clone https://github.com/IsaacShelton/Adept3x
cd Adept3x
RUSTFLAGS='-L /usr/lib/gcc/x86_64-linux-gnu/14/' cargo +nightly build --release
- (optional) copy
./infrastructure
folder to./target/release/infrastructure
for easy cross-compiling to other platforms
pkg install git
pkg install devel/llvm18
pkg install lang/rust-nightly
git clone https://github.com/IsaacShelton/Adept3x
cd Adept3x
cargo +nightly build --release
- (optional) copy
./infrastructure
folder to./target/release/infrastructure
for easy cross-compiling to other platforms
These necessary files are packaged for convenience, but feel free to replace them if you want to source your own.
- The
to_windows/*.(a|o)
files come from MSYS2's x86_64 mingw64 to_windows/from_x86_64_windows/ld.exe
comes from MSYS2's x86_64 mingw64to_windows/from_x86_64_windows/llvm-windres.exe
comes from thellvm-rc.exe
of MSYS2's LLVM packageto_windows/from_x86_64_linux/ld
comes from Ubuntu 24.04's build of x86_64 mingw64to_windows/from_x86_64_linux/llvm-windres
comes from Ubuntu 24.04's build of LLVM 18.1.8to_windows/from_aarch64_macos/ld
comes from Homebrew's build of x86_64 mingw64to_windows/from_aarch64_macos/llvm-windres
comes from Homebrew's build of LLVM 18.1.8