mirror of
https://github.com/YimMenu/YimMenuV2.git
synced 2026-10-10 03:43:15 +08:00
0beb0d1c72
* feat: working cross-compilation * feat: CI for Cross-compilation * fix: non-reproducible builds are failing when cross-compiling * fix: update ImGui Fixed compilation under some MinGW versions. * feat: Add .clangd configuration for C and C++ compilers * fix: link correct d3dcompiler library conditionally * fix: usage of deprecated `FetchContent` function in CMake * chore: denote difference in CI artifacts
89 lines
2.7 KiB
YAML
89 lines
2.7 KiB
YAML
name: CI
|
|
|
|
on: [ push, pull_request ]
|
|
|
|
jobs:
|
|
native-compilation:
|
|
runs-on: [ self-hosted, Windows ]
|
|
name: Native Compilation
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Check CMake version
|
|
run: cmake --version
|
|
|
|
- name: Setup MSVC environment
|
|
uses: ilammy/msvc-dev-cmd@v1
|
|
with:
|
|
arch: amd64
|
|
|
|
- name: Generate CMake project
|
|
run: cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B build -G Ninja
|
|
|
|
- name: Build 64bit RelWithDebInfo DLL
|
|
run: cmake --build ./build --config RelWithDebInfo --target YimMenuV2 --
|
|
|
|
- name: Check if DLL got built
|
|
run: if (-Not (Test-Path -path "build/YimMenuV2.dll")) {throw 1}
|
|
|
|
- name: Rename DLL to YimMenuV2-dev-{GITHUB_SHA}.dll
|
|
run: |
|
|
del YimMenuV2-dev-*.dll
|
|
del YimMenuV2-dev-*.pdb
|
|
ren YimMenuV2.dll YimMenuV2-dev-${{github.sha}}.dll
|
|
ren YimMenuV2.pdb YimMenuV2-dev-${{github.sha}}.pdb
|
|
working-directory: build/
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: RelWithDebInfo-Native-Clang
|
|
path: |
|
|
build/YimMenuV2-dev-*.dll
|
|
build/YimMenuV2-dev-*.pdb
|
|
|
|
cross-compilation:
|
|
runs-on: ubuntu-latest
|
|
name: Cross-compilation
|
|
strategy:
|
|
matrix:
|
|
compiler: ["Zig", "Clang"]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup Zig
|
|
if: matrix.compiler == 'Zig'
|
|
uses: mlugg/setup-zig@v2
|
|
|
|
- name: Setup MinGW
|
|
if: matrix.compiler == 'Clang'
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y clang lld binutils-mingw-w64-x86-64 mingw-w64-x86-64-dev gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64
|
|
|
|
- name: Check CMake version
|
|
run: cmake --version
|
|
|
|
- name: Generate CMake project
|
|
run: cmake -DUSE_CROSSCOMPILER=${{ matrix.compiler }} -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B build -G Ninja
|
|
|
|
- name: Build 64bit RelWithDebInfo DLL
|
|
run: cmake --build ./build --config RelWithDebInfo --target YimMenuV2 --
|
|
|
|
- name: Check if DLL got built
|
|
run: if [ ! -f build/libYimMenuV2.dll ]; then exit 1; fi
|
|
|
|
- name: Rename DLL to libYimMenuV2-dev-{GITHUB_SHA}.dll
|
|
run: |
|
|
mv libYimMenuV2.dll libYimMenuV2-dev-${{github.sha}}.dll
|
|
mv libYimMenuV2.pdb libYimMenuV2-dev-${{github.sha}}.pdb || true
|
|
working-directory: build/
|
|
|
|
- name: Upload Artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: RelWithDebInfo-Cross-${{ matrix.compiler }}
|
|
path: |
|
|
build/libYimMenuV2-dev-*.dll
|
|
build/libYimMenuV2-dev-*.pdb
|