Skip to content

Commit aeece2f

Browse files
authored
Build Windows Arm64 binaries (#441)
1 parent 19b19f9 commit aeece2f

File tree

3 files changed

+59
-9
lines changed

3 files changed

+59
-9
lines changed

Docs/ChangeLog-4x.md

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ large core count Windows systems.
1919
use more than 64 cores on large core count systems. This change doubled
2020
command line performance for `-exhastive` compression when testing on an
2121
96 core/192 thread system.
22+
* **Feature:** Windows Arm64 native builds of the `astcenc` command line tool
23+
are now included in the prebuilt release binaries.
2224

2325
<!-- ---------------------------------------------------------------------- -->
2426
## 4.6.0

jenkins/nightly.Jenkinsfile

+34-6
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ pipeline {
6767
'''
6868
}
6969
}
70-
stage('Build R') {
70+
stage('Build R x64') {
7171
steps {
7272
sh '''
7373
mkdir build_rel
@@ -77,7 +77,7 @@ pipeline {
7777
'''
7878
}
7979
}
80-
stage('Build D') {
80+
stage('Build D x64') {
8181
steps {
8282
sh '''
8383
mkdir build_dbg
@@ -122,7 +122,7 @@ pipeline {
122122
bat 'git clean -ffdx'
123123
}
124124
}
125-
stage('Build R') {
125+
stage('Build R x64') {
126126
steps {
127127
bat '''
128128
call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvars64.bat
@@ -133,7 +133,7 @@ pipeline {
133133
'''
134134
}
135135
}
136-
stage('Build D') {
136+
stage('Build D x64') {
137137
steps {
138138
bat '''
139139
call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvars64.bat
@@ -172,7 +172,7 @@ pipeline {
172172
bat 'git clean -ffdx'
173173
}
174174
}
175-
stage('Build R') {
175+
stage('Build R x64') {
176176
steps {
177177
bat '''
178178
call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvars64.bat
@@ -185,7 +185,7 @@ pipeline {
185185
'''
186186
}
187187
}
188-
stage('Build D') {
188+
stage('Build D x64') {
189189
steps {
190190
bat '''
191191
call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvars64.bat
@@ -196,11 +196,36 @@ pipeline {
196196
'''
197197
}
198198
}
199+
stage('Build R Arm64') {
200+
steps {
201+
bat '''
202+
call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvarsall.bat x64_arm64
203+
mkdir build_rel_arm64
204+
cd build_rel_arm64
205+
cmake -G "Visual Studio 17 2022" -A ARM64 -T ClangCL -DASTCENC_ISA_NEON=ON -DASTCENC_PACKAGE=arm64-clangcl ..
206+
msbuild astcencoder.sln -property:Configuration=Release
207+
'''
208+
}
209+
}
210+
stage('Build D Arm64') {
211+
steps {
212+
bat '''
213+
call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvarsall.bat x64_arm64
214+
mkdir build_dbg_arm64
215+
cd build_dbg_arm64
216+
cmake -G "Visual Studio 17 2022" -A ARM64 -T ClangCL -DASTCENC_ISA_NEON=ON ..
217+
msbuild astcencoder.sln -property:Configuration=Debug
218+
'''
219+
}
220+
}
199221
stage('Stash') {
200222
steps {
201223
dir('build_rel') {
202224
stash name: 'astcenc-windows-x64-clangcl', includes: '*.zip'
203225
}
226+
dir('build_rel_arm64') {
227+
stash name: 'astcenc-windows-arm64-clangcl', includes: '*.zip'
228+
}
204229
}
205230
}
206231
stage('Test') {
@@ -305,6 +330,9 @@ spec:
305330
dir('upload/windows-x64-clangcl') {
306331
unstash 'astcenc-windows-x64-clangcl'
307332
}
333+
dir('upload/windows-arm64-clangcl') {
334+
unstash 'astcenc-windows-arm64-clangcl'
335+
}
308336
dir('upload/macos-x64') {
309337
unstash 'astcenc-macos-x64'
310338
}

jenkins/release.Jenkinsfile

+23-3
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ spec:
127127
sh 'git clean -ffdx'
128128
}
129129
}
130-
stage('Build astcenc R') {
130+
stage('Build astcenc R x64') {
131131
steps {
132132
sh '''
133133
export CXX=clang++-9
@@ -138,7 +138,7 @@ spec:
138138
'''
139139
}
140140
}
141-
stage('Build astcdec R') {
141+
stage('Build astcdec R x64') {
142142
steps {
143143
sh '''
144144
export CXX=clang++-9
@@ -178,7 +178,7 @@ spec:
178178
bat 'git clean -ffdx'
179179
}
180180
}
181-
stage('Build R') {
181+
stage('Build R x64') {
182182
steps {
183183
bat '''
184184
call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvars64.bat
@@ -191,6 +191,19 @@ spec:
191191
'''
192192
}
193193
}
194+
stage('Build R Arm64') {
195+
steps {
196+
bat '''
197+
call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvarsall.bat x64_arm64
198+
mkdir build_rel_arm64
199+
cd build_rel_arm64
200+
cmake -G "Visual Studio 17 2022" -A ARM64 -T ClangCL -DCMAKE_INSTALL_PREFIX=../ -DASTCENC_ISA_NEON=ON -DASTCENC_PACKAGE=arm64 ..
201+
msbuild astcencoder.sln -property:Configuration=Release
202+
msbuild PACKAGE.vcxproj -property:Configuration=Release
203+
msbuild INSTALL.vcxproj -property:Configuration=Release
204+
'''
205+
}
206+
}
194207
stage('Sign') {
195208
steps {
196209
dir('sign_tools') {
@@ -208,6 +221,7 @@ spec:
208221
usernameVariable: 'AF_USER',
209222
passwordVariable: 'APIKEY')]) {
210223
powershell 'C:\\Python311\\python.exe .\\sign_tools\\windows-client-wrapper.py -b $Env:BUILD_NUMBER -t $Env:APIKEY (Get-ChildItem -Filter build_rel\\*.zip)[0].FullName'
224+
powershell 'C:\\Python311\\python.exe .\\sign_tools\\windows-client-wrapper.py -b $Env:BUILD_NUMBER -t $Env:APIKEY (Get-ChildItem -Filter build_rel_arm64\\*.zip)[0].FullName'
211225
}
212226
}
213227
}
@@ -217,6 +231,10 @@ spec:
217231
stash name: 'astcenc-windows-x64', includes: '*.zip'
218232
stash name: 'astcenc-windows-x64-hash', includes: '*.zip.sha256'
219233
}
234+
dir('build_rel_arm64') {
235+
stash name: 'astcenc-windows-arm64', includes: '*.zip'
236+
stash name: 'astcenc-windows-arm64-hash', includes: '*.zip.sha256'
237+
}
220238
}
221239
}
222240
stage('Test') {
@@ -321,10 +339,12 @@ spec:
321339
steps {
322340
dir('upload') {
323341
unstash 'astcenc-windows-x64-hash'
342+
unstash 'astcenc-windows-arm64-hash'
324343
unstash 'astcenc-linux-x64-hash'
325344
unstash 'astcenc-macos-universal-hash'
326345

327346
unstash 'astcenc-windows-x64'
347+
unstash 'astcenc-windows-arm64'
328348
unstash 'astcenc-linux-x64'
329349
unstash 'astcenc-macos-universal'
330350

0 commit comments

Comments
 (0)