Skip to content

Commit 0a60071

Browse files
use cbake actions
1 parent c35dbc0 commit 0a60071

File tree

1 file changed

+17
-75
lines changed

1 file changed

+17
-75
lines changed

.github/workflows/nuget.yml

Lines changed: 17 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -89,38 +89,10 @@ jobs:
8989
uses: actions/checkout@v4
9090

9191
- name: Configure Android NDK
92+
uses: Devolutions/actions-public/cargo-android-ndk@v1
9293
if: matrix.os == 'android'
93-
shell: pwsh
94-
run: |
95-
$CargoConfigFile = "~/.cargo/config.toml"
96-
$AndroidToolchain="${Env:ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64"
97-
98-
Get-ChildItem -Path $AndroidToolchain "libunwind.a" -Recurse | ForEach-Object {
99-
$libunwind = $_.FullName
100-
$libgcc = Join-Path $_.DirectoryName "libgcc.a"
101-
if (-Not (Test-Path $libgcc)) {
102-
Write-Host $libgcc
103-
Copy-Item $libunwind $libgcc
104-
}
105-
}
106-
107-
Get-ChildItem -Path "$AndroidToolchain/bin/"
108-
109-
echo "[target.i686-linux-android]" >> $CargoConfigFile
110-
echo "linker=`"$AndroidToolchain/bin/i686-linux-android21-clang`"" >> $CargoConfigFile
111-
echo "rustflags = [`"-C`", `"link-args=-z max-page-size=16384`"]" >> $CargoConfigFile
112-
113-
echo "[target.x86_64-linux-android]" >> $CargoConfigFile
114-
echo "linker=`"$AndroidToolchain/bin/x86_64-linux-android21-clang`"" >> $CargoConfigFile
115-
echo "rustflags = [`"-C`", `"link-args=-z max-page-size=16384`"]" >> $CargoConfigFile
116-
117-
echo "[target.armv7-linux-androideabi]" >> $CargoConfigFile
118-
echo "linker=`"$AndroidToolchain/bin/armv7a-linux-androideabi21-clang`"" >> $CargoConfigFile
119-
echo "rustflags = [`"-C`", `"link-args=-z max-page-size=16384`"]" >> $CargoConfigFile
120-
121-
echo "[target.aarch64-linux-android]" >> $CargoConfigFile
122-
echo "linker=`"$AndroidToolchain/bin/aarch64-linux-android21-clang`"" >> $CargoConfigFile
123-
echo "rustflags = [`"-C`", `"link-args=-z max-page-size=16384`"]" >> $CargoConfigFile
94+
with:
95+
android_api_level: "21"
12496

12597
- name: Setup build environment
12698
shell: pwsh
@@ -131,38 +103,21 @@ jobs:
131103
echo "IPHONEOS_DEPLOYMENT_TARGET=12.1" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
132104
}
133105
134-
- name: Install clang+llvm
106+
- name: Setup LLVM
107+
uses: Devolutions/actions-public/setup-llvm@v1
135108
if: matrix.os == 'linux'
136-
shell: pwsh
137-
run: |
138-
$ClangLlvmVersion='18.1.8'
139-
$ClangLlvmArch='x86_64'
140-
$ClangLlvmPlatform=@{'win'='windows';'osx'='macos';'linux'='ubuntu-22.04'}['${{matrix.os}}']
141-
$ClangLlvmBaseUrl="https://github.com/awakecoding/llvm-prebuilt/releases/download/v2025.2.0"
142-
$ClangLlvmName="clang+llvm-${ClangLlvmVersion}-${ClangLlvmArch}-${ClangLlvmPlatform}"
143-
wget -q "${ClangLlvmBaseUrl}/${ClangLlvmName}.tar.xz"
144-
$LLVM_PREFIX="/opt/llvm"
145-
tar -xf "${ClangLlvmName}.tar.xz" -C /tmp
146-
sudo mv "/tmp/${ClangLlvmName}" $LLVM_PREFIX
147-
$LLVM_BIN_PATH="$LLVM_PREFIX/bin"
148-
echo "PATH=$LLVM_BIN_PATH$([IO.Path]::PathSeparator)$Env:PATH" >> $Env:GITHUB_ENV
109+
with:
110+
version: "18.1.8"
149111

150-
- name: Configure CBake
112+
- name: Setup CBake
113+
uses: Devolutions/actions-public/setup-cbake@v1
151114
if: matrix.os == 'linux'
152-
shell: pwsh
153-
run: |
154-
$CBakeVersion = "v2025.02.18.0"
155-
$CBakeRepoUrl = "https://github.com/Devolutions/CBake"
156-
$CBakeDownloadUrl = "$CBakeRepoUrl/releases/download/$CBakeVersion"
157-
git clone -b $CBakeVersion "https://github.com/Devolutions/CBake" cbake
158-
@('ubuntu-20.04-amd64-sysroot.tar.xz', 'ubuntu-20.04-arm64-sysroot.tar.xz') | % {
159-
curl -L --output "cbake/sysroots/$_" "$CBakeDownloadUrl/$_"
160-
tar -C "cbake/sysroots" -xf "cbake/sysroots/$_"
161-
Remove-Item "cbake/sysroots/$_" | Out-Null
162-
}
163-
$CBakeHome = Join-Path (Get-Location) 'cbake'
164-
echo "CBAKE_HOME=$CBakeHome" >> $Env:GITHUB_ENV
165-
sudo apt install ninja-build g++-aarch64-linux-gnu
115+
with:
116+
version: "v2025.02.18.0"
117+
sysroots: |
118+
- ubuntu-20.04-amd64
119+
- ubuntu-20.04-arm64
120+
cargo_env_scripts: true
166121

167122
- name: Build picky (${{matrix.os}}-${{matrix.arch}})
168123
shell: pwsh
@@ -193,15 +148,7 @@ jobs:
193148
194149
if ($DotNetOs -eq 'linux') {
195150
$LinuxArch = @{'x64'='amd64';'arm64'='arm64'}[$DotNetArch]
196-
$CMakeToolchainFile = Join-Path $Env:CBAKE_HOME "cmake/linux.toolchain.cmake"
197151
$Env:SYSROOT_NAME = "ubuntu-20.04-$LinuxArch"
198-
$CMakeSourceDir = "$Env:CBAKE_HOME/cargo"
199-
$CMakeBuildDir = "$Env:CBAKE_HOME/cargo/${Env:SYSROOT_NAME}"
200-
$CMakeArgs = @(
201-
"-DSYSROOT_NAME=$Env:SYSROOT_NAME",
202-
"-DCMAKE_TOOLCHAIN_FILE=$CMakeToolchainFile"
203-
)
204-
cmake $CMakeSourceDir -G Ninja -B $CMakeBuildDir $CMakeArgs
205152
. "$HOME/.cargo/cbake/${RustTarget}-enter.ps1"
206153
}
207154
@@ -249,13 +196,8 @@ jobs:
249196
- name: Checkout ${{ github.repository }}
250197
uses: actions/checkout@v4
251198

252-
- name: Configure runner
253-
shell: pwsh
254-
run: |
255-
wget -q https://github.com/awakecoding/llvm-prebuilt/releases/download/v2025.2.0/cctools-x86_64-ubuntu-24.04.tar.xz
256-
tar -xf cctools-x86_64-ubuntu-24.04.tar.xz -C /tmp
257-
sudo mv /tmp/cctools-x86_64-ubuntu-24.04/bin/lipo /usr/local/bin
258-
sudo mv /tmp/cctools-x86_64-ubuntu-24.04/bin/install_name_tool /usr/local/bin
199+
- name: Setup CCTools
200+
uses: Devolutions/actions-public/setup-cctools@v1
259201

260202
- name: Download native components
261203
uses: actions/download-artifact@v4

0 commit comments

Comments
 (0)