Skip to content

Commit 77183ce

Browse files
committed
Add CI configs.
1 parent 2c64fe6 commit 77183ce

File tree

3 files changed

+232
-4
lines changed

3 files changed

+232
-4
lines changed

.github/workflows/ci.yml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
name: Godot AceessKit-C static libs
2+
3+
on:
4+
pull_request:
5+
6+
jobs:
7+
build-binaries:
8+
runs-on: ${{ matrix.os }}
9+
strategy:
10+
matrix:
11+
include:
12+
- os: macOS-latest
13+
target: aarch64-apple-darwin
14+
cmake-options: -DCMAKE_OSX_ARCHITECTURES=arm64
15+
path: macos/arm64
16+
- os: macOS-latest
17+
target: x86_64-apple-darwin
18+
cmake-options: -DCMAKE_OSX_ARCHITECTURES=x86_64
19+
path: macos/x86_64
20+
- os: windows-2019
21+
target: aarch64-pc-windows-msvc
22+
setup-step: 'cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsamd64_x86.bat" `& powershell'
23+
cmake-options: -A ARM64
24+
path: windows/arm64/msvc
25+
- os: windows-2019
26+
target: i686-pc-windows-msvc
27+
setup-step: 'cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars32.bat" `& powershell'
28+
cmake-options: -A Win32
29+
path: windows/x86/msvc
30+
- os: windows-2019
31+
target: x86_64-pc-windows-msvc
32+
setup-step: 'cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" `& powershell'
33+
path: windows/x86_64/msvc
34+
- os: ubuntu-latest
35+
target: aarch64-pc-windows-gnullvm
36+
setup-step: curl -L -O https://github.com/mstorsjo/llvm-mingw/releases/download/20240619/llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64.tar.xz && tar -xf ./llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64.tar.xz && rm llvm-mingw-*.xz && mv llvm-mingw-* "$HOME/llvm-mingw" && git apply ./godot-pathces/patch_gnullvm.diff && echo "$HOME/llvm-mingw/bin" >> $GITHUB_PATH
37+
cmake-options: -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_C_COMPILER=$HOME/llvm-mingw/bin/aarch64-w64-mingw32-clang -DCMAKE_CXX_COMPILER=$HOME/llvm-mingw/bin/aarch64-w64-mingw32-clang++
38+
post-step: mv ./lib/windows/arm64/mingw ./lib/windows/arm64/mingw-llvm
39+
path: windows/arm64/mingw-llvm
40+
- os: ubuntu-latest
41+
target: i686-pc-windows-gnullvm
42+
setup-step: curl -L -O https://github.com/mstorsjo/llvm-mingw/releases/download/20240619/llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64.tar.xz && tar -xf ./llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64.tar.xz && rm llvm-mingw-*.xz && mv llvm-mingw-* "$HOME/llvm-mingw" && git apply ./godot-pathces/patch_gnullvm.diff && echo "$HOME/llvm-mingw/bin" >> $GITHUB_PATH
43+
cmake-options: -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86 -DCMAKE_C_COMPILER=$HOME/llvm-mingw/bin/i686-w64-mingw32-clang -DCMAKE_CXX_COMPILER=$HOME/llvm-mingw/bin/i686-w64-mingw32-clang++
44+
post-step: mv ./lib/windows/x86/mingw ./lib/windows/x86/mingw-llvm
45+
path: windows/x86/mingw-llvm
46+
- os: ubuntu-latest
47+
target: x86_64-pc-windows-gnullvm
48+
setup-step: curl -L -O https://github.com/mstorsjo/llvm-mingw/releases/download/20240619/llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64.tar.xz && tar -xf ./llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64.tar.xz && rm llvm-mingw-*.xz && mv llvm-mingw-* "$HOME/llvm-mingw" && git apply ./godot-pathces/patch_gnullvm.diff && echo "$HOME/llvm-mingw/bin" >> $GITHUB_PATH
49+
cmake-options: -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_C_COMPILER=$HOME/llvm-mingw/bin/x86_64-w64-mingw32-clang -DCMAKE_CXX_COMPILER=$HOME/llvm-mingw/bin/x86_64-w64-mingw32-clang++
50+
post-step: mv ./lib/windows/x86_64/mingw ./lib/windows/x86_64/mingw-llvm
51+
path: windows/x86_64/mingw-llvm
52+
- os: ubuntu-latest
53+
target: i686-pc-windows-gnu
54+
setup-step: sudo apt update && sudo apt install -y mingw-w64
55+
cmake-options: -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86 -DCMAKE_C_COMPILER=i686-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=i686-w64-mingw32-g++
56+
path: windows/x86/mingw
57+
- os: ubuntu-latest
58+
target: x86_64-pc-windows-gnu
59+
setup-step: sudo apt update && sudo apt install -y mingw-w64
60+
cmake-options: -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++
61+
path: windows/x86_64/mingw
62+
- os: ubuntu-latest
63+
target: i686-unknown-linux-gnu
64+
setup-step: sudo apt update && sudo apt install -y gcc-multilib g++-multilib
65+
cmake-options: -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_SYSTEM_PROCESSOR=x86
66+
path: linux/x86
67+
- os: ubuntu-latest
68+
target: x86_64-unknown-linux-gnu
69+
path: linux/x86_64
70+
71+
name: Build
72+
steps:
73+
- uses: actions/checkout@v4
74+
with:
75+
submodules: 'true'
76+
77+
- name: install stable toolchain
78+
uses: dtolnay/rust-toolchain@master
79+
with:
80+
toolchain: stable
81+
target: ${{ matrix.target }}
82+
83+
- name: build libraries
84+
run: |
85+
${{ matrix.setup-step || '' }}
86+
cd accesskit-c
87+
cmake -S . -B build -DRust_CARGO_TARGET=${{ matrix.target }} ${{ matrix.cmake-options || '' }} ${{ !contains(matrix.target, 'msvc') && '-DCMAKE_BUILD_TYPE=Release' || '' }}
88+
cmake --build build ${{ contains(matrix.target, 'msvc') && '--config Release' || '' }}
89+
cmake --install build ${{ contains(matrix.target, 'msvc') && '--config Release' || '' }}
90+
${{ matrix.post-step || '' }}
91+
92+
- name: Upload binaries
93+
uses: actions/upload-artifact@v4
94+
with:
95+
name: ${{ matrix.target }}
96+
path: accesskit-c/lib

.github/workflows/publish.yml

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
on:
2+
workflow_dispatch:
3+
4+
name: Publish C bindings
5+
6+
jobs:
7+
build-binaries:
8+
runs-on: ${{ matrix.os }}
9+
strategy:
10+
matrix:
11+
include:
12+
- os: macOS-latest
13+
target: aarch64-apple-darwin
14+
cmake-options: -DCMAKE_OSX_ARCHITECTURES=arm64
15+
path: macos/arm64
16+
- os: macOS-latest
17+
target: x86_64-apple-darwin
18+
cmake-options: -DCMAKE_OSX_ARCHITECTURES=x86_64
19+
path: macos/x86_64
20+
- os: windows-2019
21+
target: aarch64-pc-windows-msvc
22+
setup-step: 'cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsamd64_x86.bat" `& powershell'
23+
cmake-options: -A ARM64
24+
path: windows/arm64/msvc
25+
- os: windows-2019
26+
target: i686-pc-windows-msvc
27+
setup-step: 'cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars32.bat" `& powershell'
28+
cmake-options: -A Win32
29+
path: windows/x86/msvc
30+
- os: windows-2019
31+
target: x86_64-pc-windows-msvc
32+
setup-step: 'cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" `& powershell'
33+
path: windows/x86_64/msvc
34+
- os: ubuntu-latest
35+
target: aarch64-pc-windows-gnullvm
36+
setup-step: curl -L -O https://github.com/mstorsjo/llvm-mingw/releases/download/20240619/llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64.tar.xz && tar -xf ./llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64.tar.xz && rm llvm-mingw-*.xz && mv llvm-mingw-* "$HOME/llvm-mingw" && git apply ./godot-pathces/patch_gnullvm.diff && echo "$HOME/llvm-mingw/bin" >> $GITHUB_PATH
37+
cmake-options: -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_C_COMPILER=$HOME/llvm-mingw/bin/aarch64-w64-mingw32-clang -DCMAKE_CXX_COMPILER=$HOME/llvm-mingw/bin/aarch64-w64-mingw32-clang++
38+
post-step: mv ./lib/windows/arm64/mingw ./lib/windows/arm64/mingw-llvm
39+
path: windows/arm64/mingw-llvm
40+
- os: ubuntu-latest
41+
target: i686-pc-windows-gnullvm
42+
setup-step: curl -L -O https://github.com/mstorsjo/llvm-mingw/releases/download/20240619/llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64.tar.xz && tar -xf ./llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64.tar.xz && rm llvm-mingw-*.xz && mv llvm-mingw-* "$HOME/llvm-mingw" && git apply ./godot-pathces/patch_gnullvm.diff && echo "$HOME/llvm-mingw/bin" >> $GITHUB_PATH
43+
cmake-options: -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86 -DCMAKE_C_COMPILER=$HOME/llvm-mingw/bin/i686-w64-mingw32-clang -DCMAKE_CXX_COMPILER=$HOME/llvm-mingw/bin/i686-w64-mingw32-clang++
44+
post-step: mv ./lib/windows/x86/mingw ./lib/windows/x86/mingw-llvm
45+
path: windows/x86/mingw-llvm
46+
- os: ubuntu-latest
47+
target: x86_64-pc-windows-gnullvm
48+
setup-step: curl -L -O https://github.com/mstorsjo/llvm-mingw/releases/download/20240619/llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64.tar.xz && tar -xf ./llvm-mingw-20240619-ucrt-ubuntu-20.04-x86_64.tar.xz && rm llvm-mingw-*.xz && mv llvm-mingw-* "$HOME/llvm-mingw" && git apply ./godot-pathces/patch_gnullvm.diff && echo "$HOME/llvm-mingw/bin" >> $GITHUB_PATH
49+
cmake-options: -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_C_COMPILER=$HOME/llvm-mingw/bin/x86_64-w64-mingw32-clang -DCMAKE_CXX_COMPILER=$HOME/llvm-mingw/bin/x86_64-w64-mingw32-clang++
50+
post-step: mv ./lib/windows/x86_64/mingw ./lib/windows/x86_64/mingw-llvm
51+
path: windows/x86_64/mingw-llvm
52+
- os: ubuntu-latest
53+
target: i686-pc-windows-gnu
54+
setup-step: sudo apt update && sudo apt install -y mingw-w64
55+
cmake-options: -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86 -DCMAKE_C_COMPILER=i686-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=i686-w64-mingw32-g++
56+
path: windows/x86/mingw
57+
- os: ubuntu-latest
58+
target: x86_64-pc-windows-gnu
59+
setup-step: sudo apt update && sudo apt install -y mingw-w64
60+
cmake-options: -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++
61+
path: windows/x86_64/mingw
62+
- os: ubuntu-latest
63+
target: i686-unknown-linux-gnu
64+
setup-step: sudo apt update && sudo apt install -y gcc-multilib g++-multilib
65+
cmake-options: -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_SYSTEM_PROCESSOR=x86
66+
path: linux/x86
67+
- os: ubuntu-latest
68+
target: x86_64-unknown-linux-gnu
69+
path: linux/x86_64
70+
71+
name: Build
72+
steps:
73+
- uses: actions/checkout@v4
74+
with:
75+
submodules: 'true'
76+
77+
- name: install stable toolchain
78+
uses: dtolnay/rust-toolchain@master
79+
with:
80+
toolchain: stable
81+
target: ${{ matrix.target }}
82+
83+
- name: build libraries
84+
run: |
85+
${{ matrix.setup-step || '' }}
86+
cd accesskit-c
87+
cmake -S . -B build -DRust_CARGO_TARGET=${{ matrix.target }} ${{ matrix.cmake-options || '' }} ${{ !contains(matrix.target, 'msvc') && '-DCMAKE_BUILD_TYPE=Release' || '' }}
88+
cmake --build build ${{ contains(matrix.target, 'msvc') && '--config Release' || '' }}
89+
cmake --install build ${{ contains(matrix.target, 'msvc') && '--config Release' || '' }}
90+
${{ matrix.post-step || '' }}
91+
92+
- name: Upload binaries
93+
uses: actions/upload-artifact@v4
94+
with:
95+
name: ${{ matrix.target }}
96+
path: accesskit-c/lib
97+
98+
publish:
99+
needs: [build-binaries]
100+
runs-on: ubuntu-latest
101+
name: Publish
102+
103+
permissions:
104+
contents: write
105+
106+
steps:
107+
- uses: actions/checkout@v4
108+
with:
109+
submodules: 'true'
110+
111+
- uses: actions/download-artifact@v4
112+
with:
113+
path: artifacts
114+
115+
- run: |
116+
cd accesskit-c
117+
mkdir -p accesskit-c/lib
118+
cp -r ../artifacts/*/* accesskit-c/lib
119+
cp -r include accesskit-c/
120+
cp AUTHORS LICENSE* accesskit-c/
121+
mv accesskit-c accesskit-c-${{ github.ref_name }}
122+
zip -r ../accesskit-c-${{ github.ref_name }}.zip accesskit-c-${{ github.ref_name }}
123+
124+
- name: Create Release
125+
uses: ncipollo/release-action@v1
126+
with:
127+
allowUpdates: true
128+
removeArtifacts: true
129+
omitNameDuringUpdate: true
130+
omitBodyDuringUpdate: true
131+
artifacts: accesskit-c-${{ github.ref_name }}.zip
132+
artifactErrorsFailBuild: true

godot-pathces/patch_gnullvm.diff

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
diff --git a/CMakeLists.txt b/CMakeLists.txt
2-
index 05c8d7e..3458978 100644
3-
--- a/CMakeLists.txt
4-
+++ b/CMakeLists.txt
2+
index a09b9b6..5def2ce 100644
3+
--- a/accesskit-c/CMakeLists.txt
4+
+++ b/accesskit-c/CMakeLists.txt
55
@@ -11,7 +11,7 @@ if (ACCESSKIT_BUILD_LIBRARIES)
66
FetchContent_Declare(
77
Corrosion
88
GIT_REPOSITORY https://github.com/corrosion-rs/corrosion.git
99
- GIT_TAG v0.5.1
10-
+ GIT_TAG 934fee27ad0fa8f7ec24dcf671f7a40247c2bc2d
10+
+ GIT_TAG fcd8b41981cb1e80f4dcc20fa8970dc6aa981c9f
1111
)
1212
FetchContent_MakeAvailable(Corrosion)
1313

0 commit comments

Comments
 (0)