Use Clang (#473)

This commit is contained in:
Logan McNaughton 2025-07-06 10:44:05 +02:00 committed by GitHub
parent 6d43191c56
commit 8ab31b0c28
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 31 additions and 33 deletions

View File

@ -3,3 +3,7 @@ rustflags = ["-C", "target-cpu=x86-64-v3"]
[target.'cfg(target_arch = "aarch64")']
rustflags = ["-C", "target-cpu=cortex-a76"]
[env]
CC = "clang"
CXX = "clang++"

View File

@ -10,6 +10,7 @@ on:
env:
CARGO_TERM_COLOR: always
LLVM_VERSION: "20.1"
jobs:
build-linux:
@ -44,6 +45,10 @@ jobs:
libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev \
libpipewire-0.3-dev libwayland-dev libdecor-0-dev liburing-dev
version: ${{ matrix.target }}-1.0
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v2
with:
version: "${{ env.LLVM_VERSION }}"
- name: Build
run: |
cargo build --release -v --target=${{ matrix.target }}
@ -75,11 +80,19 @@ jobs:
with:
target: ${{ matrix.target }}
rustflags: ""
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v2
with:
version: "${{ env.LLVM_VERSION }}"
- name: Build
run: |
cargo build --release -v --target=${{ matrix.target }}
mkdir output
cp target/${{ matrix.target }}/release/gopher64.exe output/gopher64-${{ matrix.arch }}.exe
env:
CC: clang-cl
CXX: clang-cl
AR: llvm-lib
- name: Upload file
uses: actions/upload-artifact@v4
with:
@ -87,6 +100,7 @@ jobs:
path: output/gopher64-${{ matrix.arch }}.exe
build-macos:
if: false
runs-on: macos-15
strategy:
fail-fast: false

View File

@ -11,6 +11,7 @@ permissions:
env:
CARGO_TERM_COLOR: always
LLVM_VERSION: "20.1"
jobs:
lint-linux:
@ -34,6 +35,10 @@ jobs:
libegl1-mesa-dev libdbus-1-dev libibus-1.0-dev libudev-dev fcitx-libs-dev \
libpipewire-0.3-dev libwayland-dev libdecor-0-dev liburing-dev
version: lint-1.0
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v2
with:
version: "${{ env.LLVM_VERSION }}"
- name: Rustfmt Check
uses: actions-rust-lang/rustfmt@v1
- name: Lint

View File

@ -62,46 +62,21 @@ fn main() {
let os = std::env::var("CARGO_CFG_TARGET_OS").unwrap();
let arch = std::env::var("CARGO_CFG_TARGET_ARCH").unwrap();
let env = std::env::var("CARGO_CFG_TARGET_ENV").unwrap();
if arch == "x86_64" {
build.flag("-march=x86-64-v3");
} else if arch == "aarch64" {
build.flag("-march=armv8.2-a");
simd_build.flag("-march=armv8.2-a");
} else {
panic!("unknown arch")
}
if os == "windows" {
if arch == "x86_64" {
if env == "msvc" {
build.flag("/arch:AVX2");
} else if env == "gnu" {
build.flag("-march=x86-64-v3");
} else {
panic!("unknown env")
}
} else if arch == "aarch64" {
if env == "msvc" {
build.flag("/arch:armv8.2");
simd_build.flag("/arch:armv8.2");
} else if env == "gnu" {
build.flag("-march=armv8.2-a");
simd_build.flag("-march=armv8.2-a");
} else {
panic!("unknown env")
}
} else {
panic!("unknown arch")
}
build.flag("-DVK_USE_PLATFORM_WIN32_KHR");
winresource::WindowsResource::new()
.set_icon("data/icon.ico")
.compile()
.unwrap();
} else if os == "linux" || os == "macos" {
if arch == "x86_64" {
build.flag("-march=x86-64-v3");
} else if arch == "aarch64" {
build.flag("-march=armv8.2-a");
simd_build.flag("-march=armv8.2-a");
} else {
panic!("unknown arch")
}
} else {
panic!("unknown OS")
}
build.compile("parallel-rdp");