Skip to content

Commit 204f033

Browse files
authored
Merge pull request #959 from pkgw/darwin-aarch64
dist: first attempt at darwin-aarch64 build support
2 parents 3c4dbf5 + df2247a commit 204f033

4 files changed

Lines changed: 45 additions & 11 deletions

File tree

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ tokio = "0.1.22"
120120

121121
[package.metadata.vcpkg]
122122
git = "https://github.com/microsoft/vcpkg"
123-
rev = "01b29f6d8212bc845da64773b18665d682f5ab66"
123+
rev = "1be5a98d090b1d2beeb63a48ba800fbf006e8aca"
124124

125125
[package.metadata.vcpkg.target]
126126
x86_64-apple-darwin = { install = ["freetype","harfbuzz[icu,graphite2]"] }

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

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,30 @@ 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
2632
displayName: "Install vcpkg dependencies (macOS)"
2733
condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin'))
2834

35+
- bash: |
36+
set -xeuo pipefail
37+
sudo apt-get update
38+
sudo env DEBIAN_FRONTEND=noninteractive apt-get install -y \
39+
autoconf-archive
40+
displayName: "Install vcpkg dependencies (Ubuntu)"
41+
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))
42+
2943
# Note: setvariable + `set -x` adds spurious single quotes at ends of variable values
3044
- bash: |
3145
echo "##vso[task.setvariable variable=VCPKG_ROOT;]$(pwd)/target/vcpkg"
@@ -57,7 +71,7 @@ steps:
5771
5872
- bash: |
5973
set -xeuo pipefail
60-
cargo vcpkg -v build
74+
cargo vcpkg -v build --target $TARGET
6175
ls target/vcpkg
6276
echo target/vcpkg/installed/*
6377
ls target/vcpkg/installed/*/lib
@@ -76,3 +90,4 @@ steps:
7690
parameters:
7791
canaryBuild: ${{ parameters.canaryBuild }}
7892
explicitFeatures: "external-harfbuzz"
93+
testIt: ${{ parameters.testIt }}

dist/azure-build-and-test.yml

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,14 +132,30 @@ parameters:
132132
- name: vcpkgBuilds
133133
type: object
134134
default:
135-
- name: macos
135+
- name: x86_64_unknown_linux_gnu
136+
vmImage: ubuntu-20.04
137+
params:
138+
canaryBuild: true
139+
vars:
140+
TARGET: x86_64-unknown-linux-gnu
141+
TOOLCHAIN: stable
142+
143+
- name: x86_64_apple_darwin
136144
vmImage: macos-11
137145
params: {}
138146
vars:
139147
TARGET: x86_64-apple-darwin
140148
TOOLCHAIN: stable
141149

142-
- name: windows
150+
- name: aarch64_apple_darwin
151+
vmImage: macos-11
152+
params:
153+
testIt: false
154+
vars:
155+
TARGET: aarch64-apple-darwin
156+
TOOLCHAIN: stable
157+
158+
- name: x86_64_pc_windows_msvc
143159
vmImage: windows-2019
144160
params:
145161
windowsVcpkgWorkaround: true
@@ -181,10 +197,9 @@ jobs:
181197
${{ insert }}: ${{ build.vars }}
182198

183199
# vcpkg builds
184-
# TODO: I think Linux/vcpkg is broken: https://github.com/mcgoo/vcpkg-rs/issues/21
185200
- ${{ each build in parameters.vcpkgBuilds }}:
186201
- job: ${{ format('build_{0}_vcpkg', build.name) }}
187-
${{ if eq(build.name, 'windows') }}: # work around timeouts with slow builds
202+
${{ if eq(build.name, 'x86_64_pc_windows_msvc') }}: # work around timeouts with slow builds
188203
dependsOn: windows_vcpkg_prebuild
189204
pool:
190205
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)