summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2026-03-20 22:06:04 +0800
committerruki <[email protected]>2026-03-20 22:06:04 +0800
commit7b70e1d163b9727417faa09fc682bd902200a924 (patch)
tree24141375865ee477f754eaad70e6b005f106ee6b
parented0996a0ead18b79a3e279a200db0f9e13a4ec23 (diff)
fix ci
-rwxr-xr-xconfigure59
1 files changed, 29 insertions, 30 deletions
diff --git a/configure b/configure
index d5bcbf5a0..1220a4cb9 100755
--- a/configure
+++ b/configure
@@ -1748,6 +1748,31 @@ _get_target_toolchain_flags_for_gcc() {
_ret="${flags}"
}
+# get macOS sysroot and target flags for clang
+# usage: _get_macosx_sysroot_flags [quoted]
+# if quoted is "quoted", the sysroot path will be wrapped in escaped quotes (for eval)
+_get_macosx_sysroot_flags() {
+ local flags=""
+ if is_plat "macosx"; then
+ _os_iorunv "xcrun" "-sdk" "macosx" "--show-sdk-path"; local sdkdir="${_ret}"
+ if test_nz "${sdkdir}"; then
+ if test_eq "${1}" "quoted"; then
+ flags="${flags} -isysroot \"${sdkdir}\""
+ else
+ flags="${flags} -isysroot ${sdkdir}"
+ fi
+ path_basename "${sdkdir}"; local basename="${_ret}"
+ if test_nz "${basename}" && string_startswith "${basename}" "MacOSX"; then
+ string_replace "${basename}" "MacOSX" ""; local target_minver="${_ret}"
+ if test_nz "${target_minver}"; then
+ flags="${flags} -target ${_target_arch}-apple-macos${target_minver}"
+ fi
+ fi
+ fi
+ fi
+ _ret="${flags}"
+}
+
# get toolchain flags for clang in target
_get_target_toolchain_flags_for_clang() {
local name="${1}"
@@ -1776,21 +1801,7 @@ _get_target_toolchain_flags_for_clang() {
fi
fi
# set target and sysroot
- if is_plat "macosx"; then
- _os_iorunv "xcrun" "-sdk" "macosx" "--show-sdk-path"; local sdkdir="${_ret}"
- if test_nz "${sdkdir}"; then
- flags="${flags} -isysroot \"${sdkdir}\""
-
- # get target minver and set target flags
- path_basename "${sdkdir}"; local basename="${_ret}"
- if test_nz "${basename}" && string_startswith "${basename}" "MacOSX"; then
- string_replace "${basename}" "MacOSX" ""; local target_minver="${_ret}"
- if test_nz "${target_minver}"; then
- flags="${flags} -target ${arch}-apple-macos${target_minver}"
- fi
- fi
- fi
- fi
+ _get_macosx_sysroot_flags "quoted"; flags="${flags}${_ret}"
_ret="${flags}"
}
@@ -1822,21 +1833,7 @@ _get_target_toolchain_flags_for_tcc() {
fi
fi
# set target and sysroot
- if is_plat "macosx"; then
- _os_iorunv "xcrun" "-sdk" "macosx" "--show-sdk-path"; local sdkdir="${_ret}"
- if test_nz "${sdkdir}"; then
- flags="${flags} -isysroot \"${sdkdir}\""
-
- # get target minver and set target flags
- path_basename "${sdkdir}"; local basename="${_ret}"
- if test_nz "${basename}" && string_startswith "${basename}" "MacOSX"; then
- string_replace "${basename}" "MacOSX" ""; local target_minver="${_ret}"
- if test_nz "${target_minver}"; then
- flags="${flags} -target ${arch}-apple-macos${target_minver}"
- fi
- fi
- fi
- fi
+ _get_macosx_sysroot_flags "quoted"; flags="${flags}${_ret}"
_ret="${flags}"
}
@@ -3753,6 +3750,8 @@ _check_cxsnippets() {
if test_nz "${CPPFLAGS}"; then
compflags="${compflags} ${CPPFLAGS}"
fi
+ # add -isysroot and -target on macOS to ensure system SDK headers are used for option checking
+ _get_macosx_sysroot_flags; compflags="${_ret} ${compflags}"
_toolchain_compcmd "${sourcekind}" "${objectfile}" "${sourcefile}" "${compflags}"; local compcmd="${_ret}"
if ${xmake_sh_diagnosis}; then
print "> ${compcmd}"