Skip to content

Commit 1a583e7

Browse files
committed
no
1 parent 9d415ad commit 1a583e7

1 file changed

Lines changed: 19 additions & 11 deletions

File tree

.github/workflows/build.yml

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -135,28 +135,36 @@ jobs:
135135
- name: Build binaries (${{ matrix.arch }})
136136
run: |
137137
target_env=$(echo "${{ matrix.target }}" | tr '-' '_')
138+
target_env_upper=$(echo "${target_env}" | tr '[:lower:]' '[:upper:]')
138139
prefix="${{ matrix.osxcross_prefix }}"
139140
osxcross_bin="$(dirname "$(command -v "${prefix}-clang")")"
140-
ld_candidate=""
141+
osxcross_root="$(cd "${osxcross_bin}/.." && pwd)"
142+
sdk_dir="${osxcross_root}/SDK"
143+
if [ -d "${sdk_dir}" ]; then
144+
sdkroot="$(ls -d "${sdk_dir}"/MacOSX*.sdk 2>/dev/null | sort -V | tail -n1)"
145+
if [ -n "${sdkroot}" ]; then
146+
export SDKROOT="${sdkroot}"
147+
fi
148+
fi
149+
export MACOSX_DEPLOYMENT_TARGET="11.0"
150+
ld_path=""
141151
for name in "${prefix}-ld" "${prefix}-ld64" "ld64" "ld"; do
142152
if [ -x "${osxcross_bin}/${name}" ]; then
143-
ld_candidate="${osxcross_bin}/${name}"
153+
ld_path="${osxcross_bin}/${name}"
144154
break
145155
fi
146156
done
147-
toolchain_bin="$(mktemp -d)"
148-
if [ -n "${ld_candidate}" ]; then
149-
ln -s "${ld_candidate}" "${toolchain_bin}/ld"
150-
ln -s "${ld_candidate}" "${toolchain_bin}/ld64"
151-
fi
152-
export PATH="${toolchain_bin}:${osxcross_bin}:${PATH}"
153157
export "CC_${target_env}=${osxcross_bin}/${prefix}-clang"
154158
export "CXX_${target_env}=${osxcross_bin}/${prefix}-clang++"
155159
export "AR_${target_env}=${osxcross_bin}/${prefix}-ar"
156160
export "RANLIB_${target_env}=${osxcross_bin}/${prefix}-ranlib"
157-
export "CFLAGS_${target_env}=-B${toolchain_bin} -B${osxcross_bin} -fuse-ld=ld64"
158-
export "CXXFLAGS_${target_env}=-B${toolchain_bin} -B${osxcross_bin} -fuse-ld=ld64"
159-
export "LDFLAGS_${target_env}=-B${toolchain_bin} -B${osxcross_bin} -fuse-ld=ld64"
161+
export "CARGO_TARGET_${target_env_upper}_LINKER=${osxcross_bin}/${prefix}-clang"
162+
if [ -n "${ld_path}" ]; then
163+
export "CFLAGS_${target_env}=-fuse-ld=${ld_path}"
164+
export "CXXFLAGS_${target_env}=-fuse-ld=${ld_path}"
165+
export "LDFLAGS_${target_env}=-fuse-ld=${ld_path}"
166+
export RUSTFLAGS="${RUSTFLAGS:+$RUSTFLAGS }-C link-arg=-fuse-ld=${ld_path}"
167+
fi
160168
cargo build --bins --workspace --release --target ${{ matrix.target }}
161169
mkdir -p dist
162170
cp target/${{ matrix.target }}/release/plumeimpactor dist/plumeimpactor-macos-${{ matrix.suffix }}

0 commit comments

Comments
 (0)