@@ -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