diff --git a/.github/workflows/draft.yml b/.github/workflows/draft.yml index a546cc92..13dc3a2c 100644 --- a/.github/workflows/draft.yml +++ b/.github/workflows/draft.yml @@ -96,7 +96,7 @@ jobs: uses: mozilla-actions/sccache-action@v0.0.6 - name: Build - run: cargo build --release --locked --target ${{ matrix.target }} + run: cargo build --profile release-windows --locked --target ${{ matrix.target }} - name: Pack artifact env: diff --git a/Cargo.toml b/Cargo.toml index babdcdc7..716898d2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,8 +9,10 @@ lto = true panic = "abort" strip = true -[target.'cfg(windows)'.profile.release] -panic = "unwind" +[profile.release-windows] +codegen-units = 1 +lto = true +strip = true [workspace.dependencies] ansi-to-tui = "7.0.0" diff --git a/yazi-fm/build.rs b/yazi-fm/build.rs new file mode 100644 index 00000000..c77220ff --- /dev/null +++ b/yazi-fm/build.rs @@ -0,0 +1,16 @@ +use std::{env, error::Error}; + +fn main() -> Result<(), Box> { + if env::var_os("CARGO_CFG_TARGET_FAMILY").unwrap() != "windows" { + return Ok(()); + } + if env::var_os("CARGO_CFG_PANIC").unwrap() == "unwind" { + return Ok(()); + } + + panic!( + "Unwinding must be enabled for Windows. Please use `cargo build --profile release-windows --locked` instead to build Yazi." + ); + + Ok(()) +}