Skip to content

Commit 1a8cf66

Browse files
authored
feat: add macos arm64 (#6)
* feat: add macos arm64 * add dependencies * update qdl * fix arm64 sign * rename stuff * update name and qdl version * allow also tags * update crossbuild ref
1 parent 250a690 commit 1a8cf66

File tree

2 files changed

+88
-18
lines changed

2 files changed

+88
-18
lines changed

.github/workflows/release.yml

Lines changed: 84 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,19 @@ name: release
33
env:
44
PROJECT_NAME: qdl
55
REPO_NAME: linux-msm/qdl
6-
REPO_REF: 672abb1e81cc630640f2a88e42b6dfd2a429ad14
6+
REPO_REF: v2.2
77
DIST_DIR: dist
88
ARTIFACT_NAME: dist
99

1010
on:
11+
workflow_dispatch:
1112
push:
1213
tags:
13-
- '*.*.*'
14+
- '*'
1415

1516
jobs:
1617
build:
17-
name: build (${{ matrix.config.os }}, ${{ matrix.config.arch }})
18+
name: build
1819
runs-on:
1920
ubuntu-latest
2021
permissions:
@@ -71,20 +72,89 @@ jobs:
7172
- name: Package
7273
working-directory: ${{ env.PROJECT_NAME }}
7374
run: |
74-
tar -czvf ../${{ env.PROJECT_NAME }}_${{ github.ref_name }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz \
75+
tar -czvf ../${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz \
7576
qdl${{ matrix.config.extension }}
7677
7778
- name: Upload artifacts
7879
uses: actions/upload-artifact@v4
7980
with:
8081
if-no-files-found: error
8182
name: ${{ env.ARTIFACT_NAME }}_${{ matrix.config.os }}_${{ matrix.config.arch }}
82-
path: ${{ env.PROJECT_NAME }}_${{ github.ref_name }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz
83+
path: ${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz
84+
85+
build-macos-arm64:
86+
name: build
87+
permissions:
88+
contents: read
89+
strategy:
90+
matrix:
91+
config:
92+
- os: macOS
93+
arch: arm64
94+
runs-on: macos-latest
95+
env:
96+
CROSSBUILD_REF: main
97+
steps:
98+
- name: Install dependencies
99+
run: |
100+
brew install pkg-config autoconf automake libtool
101+
102+
- name: Checkout repository
103+
uses: actions/checkout@v4
104+
with:
105+
path: packing
106+
107+
- name: Checkout arduino/crossbuild repository
108+
uses: actions/checkout@v4
109+
with:
110+
repository: arduino/crossbuild
111+
ref: ${{ env.CROSSBUILD_REF }}
112+
path: crossbuild
113+
- name: build dependencies
114+
working-directory: crossbuild
115+
run: ./scripts/build_mac.sh
116+
117+
- name: Checkout linux-msm/qdl repository
118+
uses: actions/checkout@v4
119+
with:
120+
repository: ${{ env.REPO_NAME }}
121+
ref: ${{ env.REPO_REF }}
122+
path: ${{ env.PROJECT_NAME }}
123+
- name: Apply patches
124+
working-directory: ${{ env.PROJECT_NAME }}
125+
run: git apply -v ../packing/patches/*.patch
126+
127+
- name: build qdl
128+
working-directory: ${{ env.PROJECT_NAME }}
129+
run: make -j 8
130+
env:
131+
PKG_CONFIG_PATH: ../crossbuild/build/macos/dist/lib/pkgconfig
132+
LD_LIBRARY_PATH: ../crossbuild/build/macos/dist/lib
133+
C_INCLUDE_PATH: ../crossbuild/build/macos/dist/include
134+
135+
- name: Package
136+
working-directory: ${{ env.PROJECT_NAME }}
137+
run: |
138+
tar -czvf ../${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz qdl
139+
140+
- name: Upload artifacts
141+
uses: actions/upload-artifact@v4
142+
with:
143+
if-no-files-found: error
144+
name: ${{ env.ARTIFACT_NAME }}_${{ matrix.config.os }}_${{ matrix.config.arch }}
145+
path: ${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz
83146

84147
sign-and-notarize-macos:
85-
name: sign and notarize (macOS, 64bit)
148+
name: sign and notarize
86149
runs-on: macos-latest
87-
needs: build
150+
needs: [build, build-macos-arm64]
151+
strategy:
152+
matrix:
153+
config:
154+
- os: macOS
155+
arch: 64bit
156+
- os: macOS
157+
arch: arm64
88158
permissions:
89159
contents: read
90160

@@ -98,12 +168,12 @@ jobs:
98168
- name: Download macOS artifact
99169
uses: actions/download-artifact@v4
100170
with:
101-
name: ${{ env.ARTIFACT_NAME }}_macOS_64bit
171+
name: ${{ env.ARTIFACT_NAME }}_${{ matrix.config.os }}_${{ matrix.config.arch }}
102172
path: ${{ env.DIST_DIR }}/notarize_temp
103173

104174
- name: Extract macOS binary
105175
working-directory: ${{ env.DIST_DIR }}/notarize_temp
106-
run: tar -xzvf ${{ env.PROJECT_NAME }}_${{ github.ref_name }}_macOS_64bit.tar.gz
176+
run: tar -xzvf ${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz
107177

108178
- name: Import Code-Signing Certificates
109179
env:
@@ -147,19 +217,19 @@ jobs:
147217
working-directory: ${{ env.DIST_DIR }}/notarize_temp
148218
run: |
149219
chmod +x qdl
150-
tar -czvf ${{ env.PROJECT_NAME }}_${{ github.ref_name }}_macOS_64bit.tar.gz qdl
151-
mv ${{ env.PROJECT_NAME }}_${{ github.ref_name }}_macOS_64bit.tar.gz ../
220+
tar -czvf ${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz qdl
221+
mv ${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz ../
152222
153223
- name: Upload notarized macOS artifact
154224
uses: actions/upload-artifact@v4
155225
with:
156226
if-no-files-found: error
157-
name: ${{ env.ARTIFACT_NAME }}_macOS_64bit
158-
path: ${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_${{ github.ref_name }}_macOS_64bit.tar.gz
227+
name: ${{ env.ARTIFACT_NAME }}_${{ matrix.config.os }}_${{ matrix.config.arch }}
228+
path: ${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz
159229
overwrite: true # Important: replace the original macOS artifact
160230

161231
create-release:
162-
needs: [build, sign-and-notarize-macos]
232+
needs: [build, sign-and-notarize-macos, build-macos-arm64]
163233
runs-on: ubuntu-latest
164234
permissions:
165235
contents: write

patches/build_static.patch

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
diff --git a/Makefile b/Makefile
2-
index 203cb04..4482eb8 100644
2+
index a8fb0da..39c9cc5 100644
33
--- a/Makefile
44
+++ b/Makefile
55
@@ -3,7 +3,7 @@ RAMDUMP := qdl-ramdump
@@ -8,6 +8,6 @@ index 203cb04..4482eb8 100644
88
CFLAGS += -O2 -Wall -g `pkg-config --cflags libxml-2.0 libusb-1.0`
99
-LDFLAGS += `pkg-config --libs libxml-2.0 libusb-1.0`
1010
+LDFLAGS += `pkg-config --libs libxml-2.0 libusb-1.0 --static`
11-
prefix := /usr/local
12-
13-
QDL_SRCS := firehose.c io.c qdl.c sahara.c util.c patch.c program.c read.c sim.c ufs.c usb.c ux.c oscompat.c
11+
ifeq ($(OS),Windows_NT)
12+
LDFLAGS += -lws2_32
13+
endif

0 commit comments

Comments
 (0)