Skip to content

Commit 4bdd5c3

Browse files
authored
Merge pull request veldrid#10 from JamiKettunen/arm64
Add win-arm64 & linux-arm64 targets
2 parents 36c2968 + 7de85fc commit 4bdd5c3

File tree

7 files changed

+59
-3
lines changed

7 files changed

+59
-3
lines changed

.github/workflows/build.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ jobs:
2121
build_args: Release win-x86
2222
build_target: win-x86
2323
artifact_name: build\Release\win-x86\libveldrid-spirv.dll
24+
- os: windows-latest
25+
build_args: Release win-arm64
26+
build_target: win-arm64
27+
artifact_name: build\Release\win-arm64\libveldrid-spirv.dll
2428
- os: windows-latest
2529
build_args: release android arm64-v8a --android-ndk '%ANDROID_NDK_HOME%'
2630
build_target: android-arm64-v8a
@@ -37,6 +41,10 @@ jobs:
3741
build_args: release linux-x64
3842
build_target: linux-x64
3943
artifact_name: build/Release/linux-x64/libveldrid-spirv.so
44+
- os: ubuntu-22.04-arm
45+
build_args: release linux-arm64
46+
build_target: linux-arm64
47+
artifact_name: build/Release/linux-arm64/libveldrid-spirv.so
4048
- os: macos-latest
4149
build_args: release osx 'arm64;x86_64'
4250
build_target: osx
@@ -123,6 +131,12 @@ jobs:
123131
name: win-x86
124132
path: build/Release/win-x86
125133

134+
- name: Download win-arm64
135+
uses: actions/download-artifact@v4
136+
with:
137+
name: win-arm64
138+
path: build/Release/win-arm64
139+
126140
- name: Download android-arm64-v8a
127141
uses: actions/download-artifact@v4
128142
with:
@@ -147,6 +161,12 @@ jobs:
147161
name: linux-x64
148162
path: build/Release/linux-x64
149163

164+
- name: Download linux-arm64
165+
uses: actions/download-artifact@v4
166+
with:
167+
name: linux-arm64
168+
path: build/Release/linux-arm64
169+
150170
- name: Download osx
151171
uses: actions/download-artifact@v4
152172
with:

build-full-package.ps1

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ if (Test-Path $PSScriptRoot\download\)
2020
New-Item -ItemType Directory -Force -Path $PSScriptRoot\download\$configuration | Out-Null
2121
New-Item -ItemType Directory -Force -Path $PSScriptRoot\download\$configuration\win-x86 | Out-Null
2222
New-Item -ItemType Directory -Force -Path $PSScriptRoot\download\$configuration\win-x64 | Out-Null
23+
New-Item -ItemType Directory -Force -Path $PSScriptRoot\download\$configuration\win-arm64 | Out-Null
2324
New-Item -ItemType Directory -Force -Path $PSScriptRoot\download\$configuration\linux-x64 | Out-Null
25+
New-Item -ItemType Directory -Force -Path $PSScriptRoot\download\$configuration\linux-arm64 | Out-Null
2426
New-Item -ItemType Directory -Force -Path $PSScriptRoot\download\$configuration\osx | Out-Null
2527
New-Item -ItemType Directory -Force -Path $PSScriptRoot\download\$configuration\ios | Out-Null
2628
New-Item -ItemType Directory -Force -Path $PSScriptRoot\download\$configuration\android-arm64-v8a | Out-Null
@@ -55,16 +57,40 @@ if( -not $? )
5557
Write-Host "- libveldrid-spirv.dll (x64)"
5658

5759
$client.DownloadFile(
58-
"https://github.com/mellinoe/veldrid-spirv/releases/download/$tag/libveldrid-spirv.so",
60+
"https://github.com/mellinoe/veldrid-spirv/releases/download/$tag/libveldrid-spirv.win-arm64.dll",
61+
"$PSScriptRoot/download/$configuration/win-arm64/libveldrid-spirv.dll")
62+
if( -not $? )
63+
{
64+
$msg = $Error[0].Exception.Message
65+
Write-Error "Couldn't download arm64 libveldrid-spirv.dll. This most likely indicates the Windows native build failed."
66+
exit
67+
}
68+
69+
Write-Host "- libveldrid-spirv.dll (arm64)"
70+
71+
$client.DownloadFile(
72+
"https://github.com/mellinoe/veldrid-spirv/releases/download/$tag/libveldrid-spirv-x86-64.so",
5973
"$PSScriptRoot/download/$configuration/linux-x64/libveldrid-spirv.so")
6074
if( -not $? )
6175
{
6276
$msg = $Error[0].Exception.Message
63-
Write-Error "Couldn't download libveldrid-spirv.so (64-bit Linux). This most likely indicates the Linux native build failed."
77+
Write-Error "Couldn't download libveldrid-spirv.so (x64 Linux). This most likely indicates the Linux native build failed."
78+
exit
79+
}
80+
81+
Write-Host "- libveldrid-spirv.so (x64 Linux)"
82+
83+
$client.DownloadFile(
84+
"https://github.com/mellinoe/veldrid-spirv/releases/download/$tag/libveldrid-spirv-arm64.so",
85+
"$PSScriptRoot/download/$configuration/linux-arm64/libveldrid-spirv.so")
86+
if( -not $? )
87+
{
88+
$msg = $Error[0].Exception.Message
89+
Write-Error "Couldn't download libveldrid-spirv.so (arm64 Linux). This most likely indicates the Linux native build failed."
6490
exit
6591
}
6692

67-
Write-Host "- libveldrid-spirv.so (64-bit Linux)"
93+
Write-Host "- libveldrid-spirv.so (arm64 Linux)"
6894

6995
$client.DownloadFile(
7096
"https://github.com/mellinoe/veldrid-spirv/releases/download/$tag/libveldrid-spirv.dylib",

build-local-package.cmd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33

44
call .\build-native.cmd release win-x86
55
call .\build-native.cmd release win-x64
6+
call .\build-native.cmd release win-arm64
67
call dotnet pack -c Release src\Veldrid.SPIRV\Veldrid.SPIRV.csproj

build-local-package.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ while :; do
2727
linux-x64)
2828
_Platform=linux-x64
2929
;;
30+
linux-arm64)
31+
_Platform=linux-arm64
32+
;;
3033
*)
3134
__UnprocessedBuildArgs="$__UnprocessedBuildArgs $1"
3235
esac

build-native.cmd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ if /i [%1] == [release] (set _CMAKE_BUILD_TYPE=Release&& shift & goto ArgLoop)
1515
if /i [%1] == [debug] (set _CMAKE_BUILD_TYPE=Debug&& shift & goto ArgLoop)
1616
if /i [%1] == [win-x64] (set _BUILD_ARCH=x64&& set _CMAKE_GENERATOR_PLATFORM=x64&& shift & goto ArgLoop)
1717
if /i [%1] == [win-x86] (set _BUILD_ARCH=x86&& set _CMAKE_GENERATOR_PLATFORM=Win32&& shift & goto ArgLoop)
18+
if /i [%1] == [win-arm64] (set _BUILD_ARCH=arm64&& set _CMAKE_GENERATOR_PLATFORM=ARM64&& shift & goto ArgLoop)
1819
if /i [%1] == [android] (set _ANDROID_ABI=%2&& set _BUILD_ARCH=%2&& shift && shift & goto ArgLoop)
1920
if /i [%1] == [--android-ndk] (set _NDK_DIR=%2&& shift && shift & goto ArgLoop)
2021
if /i [%1] == [--android-platform] (set _ANDROID_PLATFORM=%2&& shift && shift & goto ArgLoop)

build-native.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ while :; do
3131
linux-x64)
3232
_OSDir=linux-x64
3333
;;
34+
linux-arm64)
35+
_OSDir=linux-arm64
36+
;;
3437
ios)
3538
_CMakeEnableBitcode=-DENABLE_BITCODE=0
3639
_CMakeBuildTarget=veldrid-spirv

src/Veldrid.SPIRV/Veldrid.SPIRV.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@
4646
<ItemGroup>
4747
<_NativeAssetName Include="$(Configuration)/win-x86/libveldrid-spirv.dll" PackagePath="runtimes/win-x86/native" />
4848
<_NativeAssetName Include="$(Configuration)/win-x64/libveldrid-spirv.dll" PackagePath="runtimes/win-x64/native" />
49+
<_NativeAssetName Include="$(Configuration)/win-arm64/libveldrid-spirv.dll" PackagePath="runtimes/win-arm64/native" />
4950
<_NativeAssetName Include="$(Configuration)/linux-x64/libveldrid-spirv.so" PackagePath="runtimes/linux-x64/native" />
51+
<_NativeAssetName Include="$(Configuration)/linux-arm64/libveldrid-spirv.so" PackagePath="runtimes/linux-arm64/native" />
5052
<_NativeAssetName Include="$(Configuration)/osx/libveldrid-spirv.dylib" PackagePath="runtimes/osx/native" />
5153
<_NativeAssetName Include="$(Configuration)/ios/**/*" PackagePath="runtimes/ios/native" />
5254
<_NativeAssetName Include="$(Configuration)/android-arm64-v8a/libveldrid-spirv.so" PackagePath="build/MonoAndroid10/native/arm64-v8a" />

0 commit comments

Comments
 (0)