Skip to content

Commit b5cac03

Browse files
committed
improve configure
1 parent 82fdf6f commit b5cac03

File tree

1 file changed

+28
-43
lines changed

1 file changed

+28
-43
lines changed

configure

Lines changed: 28 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1748,6 +1748,31 @@ _get_target_toolchain_flags_for_gcc() {
17481748
_ret="${flags}"
17491749
}
17501750

1751+
# get macOS sysroot and target flags for clang
1752+
# usage: _get_macosx_sysroot_flags [quoted]
1753+
# if quoted is "quoted", the sysroot path will be wrapped in escaped quotes (for eval)
1754+
_get_macosx_sysroot_flags() {
1755+
local flags=""
1756+
if is_plat "macosx"; then
1757+
_os_iorunv "xcrun" "-sdk" "macosx" "--show-sdk-path"; local sdkdir="${_ret}"
1758+
if test_nz "${sdkdir}"; then
1759+
if test_eq "${1}" "quoted"; then
1760+
flags="${flags} -isysroot \"${sdkdir}\""
1761+
else
1762+
flags="${flags} -isysroot ${sdkdir}"
1763+
fi
1764+
path_basename "${sdkdir}"; local basename="${_ret}"
1765+
if test_nz "${basename}" && string_startswith "${basename}" "MacOSX"; then
1766+
string_replace "${basename}" "MacOSX" ""; local target_minver="${_ret}"
1767+
if test_nz "${target_minver}"; then
1768+
flags="${flags} -target ${_target_arch}-apple-macos${target_minver}"
1769+
fi
1770+
fi
1771+
fi
1772+
fi
1773+
_ret="${flags}"
1774+
}
1775+
17511776
# get toolchain flags for clang in target
17521777
_get_target_toolchain_flags_for_clang() {
17531778
local name="${1}"
@@ -1776,21 +1801,7 @@ _get_target_toolchain_flags_for_clang() {
17761801
fi
17771802
fi
17781803
# set target and sysroot
1779-
if is_plat "macosx"; then
1780-
_os_iorunv "xcrun" "-sdk" "macosx" "--show-sdk-path"; local sdkdir="${_ret}"
1781-
if test_nz "${sdkdir}"; then
1782-
flags="${flags} -isysroot \"${sdkdir}\""
1783-
1784-
# get target minver and set target flags
1785-
path_basename "${sdkdir}"; local basename="${_ret}"
1786-
if test_nz "${basename}" && string_startswith "${basename}" "MacOSX"; then
1787-
string_replace "${basename}" "MacOSX" ""; local target_minver="${_ret}"
1788-
if test_nz "${target_minver}"; then
1789-
flags="${flags} -target ${arch}-apple-macos${target_minver}"
1790-
fi
1791-
fi
1792-
fi
1793-
fi
1804+
_get_macosx_sysroot_flags "quoted"; flags="${flags}${_ret}"
17941805
_ret="${flags}"
17951806
}
17961807

@@ -1822,21 +1833,7 @@ _get_target_toolchain_flags_for_tcc() {
18221833
fi
18231834
fi
18241835
# set target and sysroot
1825-
if is_plat "macosx"; then
1826-
_os_iorunv "xcrun" "-sdk" "macosx" "--show-sdk-path"; local sdkdir="${_ret}"
1827-
if test_nz "${sdkdir}"; then
1828-
flags="${flags} -isysroot \"${sdkdir}\""
1829-
1830-
# get target minver and set target flags
1831-
path_basename "${sdkdir}"; local basename="${_ret}"
1832-
if test_nz "${basename}" && string_startswith "${basename}" "MacOSX"; then
1833-
string_replace "${basename}" "MacOSX" ""; local target_minver="${_ret}"
1834-
if test_nz "${target_minver}"; then
1835-
flags="${flags} -target ${arch}-apple-macos${target_minver}"
1836-
fi
1837-
fi
1838-
fi
1839-
fi
1836+
_get_macosx_sysroot_flags "quoted"; flags="${flags}${_ret}"
18401837
_ret="${flags}"
18411838
}
18421839

@@ -3754,19 +3751,7 @@ _check_cxsnippets() {
37543751
compflags="${compflags} ${CPPFLAGS}"
37553752
fi
37563753
# add -isysroot and -target on macOS to ensure system SDK headers are used for option checking
3757-
if is_plat "macosx"; then
3758-
_os_iorunv "xcrun" "-sdk" "macosx" "--show-sdk-path"; local _sdkdir="${_ret}"
3759-
if test_nz "${_sdkdir}"; then
3760-
compflags="-isysroot ${_sdkdir} ${compflags}"
3761-
path_basename "${_sdkdir}"; local _basename="${_ret}"
3762-
if test_nz "${_basename}" && string_startswith "${_basename}" "MacOSX"; then
3763-
string_replace "${_basename}" "MacOSX" ""; local _target_minver="${_ret}"
3764-
if test_nz "${_target_minver}"; then
3765-
compflags="-target ${_target_arch}-apple-macos${_target_minver} ${compflags}"
3766-
fi
3767-
fi
3768-
fi
3769-
fi
3754+
_get_macosx_sysroot_flags; compflags="${_ret} ${compflags}"
37703755
_toolchain_compcmd "${sourcekind}" "${objectfile}" "${sourcefile}" "${compflags}"; local compcmd="${_ret}"
37713756
if ${xmake_sh_diagnosis}; then
37723757
print "> ${compcmd}"

0 commit comments

Comments
 (0)