Skip to content

Commit 9ff9939

Browse files
committed
dist: add aarch64-apple-darwin build
This is done with a new cross-compiling vcpkg build.
1 parent 3c4dbf5 commit 9ff9939

3 files changed

Lines changed: 28 additions & 9 deletions

File tree

dist/azure-build-and-test-vcpkg.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,16 @@ parameters:
1616
- name: windowsVcpkgWorkaround
1717
type: boolean
1818
default: false
19+
- name: testIt
20+
type: boolean
21+
default: true
1922

2023
steps:
2124
- template: azure-generic-build-setup.yml
2225

26+
- bash: rustup target add $TARGET
27+
displayName: Add target $(TARGET)
28+
2329
- bash: |
2430
set -xeuo pipefail
2531
brew install autoconf-archive automake libtool pkg-config
@@ -57,7 +63,7 @@ steps:
5763
5864
- bash: |
5965
set -xeuo pipefail
60-
cargo vcpkg -v build
66+
cargo vcpkg -v build --target $TARGET
6167
ls target/vcpkg
6268
echo target/vcpkg/installed/*
6369
ls target/vcpkg/installed/*/lib
@@ -76,3 +82,4 @@ steps:
7682
parameters:
7783
canaryBuild: ${{ parameters.canaryBuild }}
7884
explicitFeatures: "external-harfbuzz"
85+
testIt: ${{ parameters.testIt }}

dist/azure-build-and-test.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,14 +132,22 @@ parameters:
132132
- name: vcpkgBuilds
133133
type: object
134134
default:
135-
- name: macos
135+
- name: x86_64_apple_darwin
136136
vmImage: macos-11
137137
params: {}
138138
vars:
139139
TARGET: x86_64-apple-darwin
140140
TOOLCHAIN: stable
141141

142-
- name: windows
142+
- name: aarch64_apple_darwin
143+
vmImage: macos-11
144+
params:
145+
testIt: false
146+
vars:
147+
TARGET: aarch64-apple-darwin
148+
TOOLCHAIN: stable
149+
150+
- name: x86_64_pc_windows_msvc
143151
vmImage: windows-2019
144152
params:
145153
windowsVcpkgWorkaround: true
@@ -184,7 +192,7 @@ jobs:
184192
# TODO: I think Linux/vcpkg is broken: https://github.com/mcgoo/vcpkg-rs/issues/21
185193
- ${{ each build in parameters.vcpkgBuilds }}:
186194
- job: ${{ format('build_{0}_vcpkg', build.name) }}
187-
${{ if eq(build.name, 'windows') }}: # work around timeouts with slow builds
195+
${{ if eq(build.name, 'x86_64_pc_windows_msvc') }}: # work around timeouts with slow builds
188196
dependsOn: windows_vcpkg_prebuild
189197
pool:
190198
vmImage: ${{ build.vmImage }}

dist/azure-generic-build.yml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ parameters:
2222
- name: explicitFeatures
2323
type: string
2424
default: ''
25+
- name: testIt
26+
type: boolean
27+
default: true
2528

2629
steps:
2730
# We use two variables for feature flagging just because I'm worried about
@@ -48,19 +51,20 @@ steps:
4851
DEFAULT_FEATURES_FLAG: ${{ parameters.defaultFeatures }}
4952
EXPLICIT_FEATURES: ${{ parameters.explicitFeatures }}
5053

51-
- bash: cargo build --all --release $CARGO_FEATURES_FLAGS --features="$CARGO_FEATURES_EXPLICIT" -v
52-
displayName: "cargo build"
54+
- bash: cargo build --all --target $TARGET --release $CARGO_FEATURES_FLAGS --features="$CARGO_FEATURES_EXPLICIT" -v
55+
displayName: cargo build for $(TARGET)
5356

54-
- bash: cargo test --all --release $CARGO_FEATURES_FLAGS --features="$CARGO_FEATURES_EXPLICIT"
55-
displayName: "cargo test"
57+
- ${{ if parameters.testIt }}:
58+
- bash: cargo test --all --target $TARGET --release $CARGO_FEATURES_FLAGS --features="$CARGO_FEATURES_EXPLICIT"
59+
displayName: cargo test
5660

5761
# For non-canary builds, export artifacts.
5862

5963
- ${{ if eq(parameters.canaryBuild, false) }}:
6064
- bash: |
6165
artifact_dir="$(Build.ArtifactStagingDirectory)/binary-$TARGET"
6266
mkdir -p "$artifact_dir"
63-
cranko cargo package-released-binaries -t $TARGET $artifact_dir -- build --release
67+
cranko cargo package-released-binaries -t $TARGET $artifact_dir -- build --target $TARGET --release
6468
displayName: Package binaries
6569
6670
- task: PublishPipelineArtifact@1

0 commit comments

Comments
 (0)