mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
The dependency on libatomic was removed in 97df90fbf1. This commit removes leftover cases that still link against libatomic.
85 lines
1.6 KiB
Bash
Executable File
85 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
#
|
|
# Generate the static-stdlib-args.lnk used by the -static-stdlib option for
|
|
# 'GenericUnix' (eg linux) platforms. Tries to find static .a files for libs
|
|
# not normally installed by default (currently libicu)
|
|
# If libicu is built locally then include libicudata
|
|
#
|
|
|
|
# SDK=$1
|
|
OUTPUTFILE=$2
|
|
ICU_STATIC_LIB=$3
|
|
# libdirs from pkg-config
|
|
ICU_UC_LIBDIR=$4
|
|
ICU_I18N_LIBDIR=$5
|
|
|
|
|
|
# Try and find the libicu .a library files to directly link in using the
|
|
# fullpath to the files otherwise fullback to the default
|
|
function find_static_iculibs {
|
|
if [ -n "${ICU_I18N_LIBDIR}" ]; then
|
|
LIBICU_I18N_A=${ICU_I18N_LIBDIR}/libicui18n.a
|
|
fi
|
|
|
|
if [ -n "${ICU_UC_LIBDIR}" ]; then
|
|
LIBICU_UC_A=${ICU_UC_LIBDIR}/libicuuc.a
|
|
LIBICU_DATA_A=${ICU_UC_LIBDIR}/libicudata.a
|
|
fi
|
|
|
|
if [ -f "${LIBICU_I18N_A}" ] && [ -f "${LIBICU_UC_A}" ] &&
|
|
[ -f "${LIBICU_DATA_A}" ]; then
|
|
read -d '' ICU_LIBS <<EOF
|
|
$LIBICU_I18N_A
|
|
$LIBICU_UC_A
|
|
$LIBICU_DATA_A
|
|
EOF
|
|
else
|
|
read -d '' ICU_LIBS <<EOF
|
|
-licui18n
|
|
-licuuc
|
|
EOF
|
|
fi
|
|
}
|
|
|
|
|
|
# If libicu was compiled as part of the swift build then link the libs as normal
|
|
function use_local_iculibs {
|
|
read -d '' ICU_LIBS <<EOF
|
|
-licui18nswift
|
|
-licuucswift
|
|
-licudataswift
|
|
EOF
|
|
}
|
|
|
|
|
|
function write_linkfile {
|
|
if [ -z "${OUTPUTFILE}" ]; then
|
|
echo $0: No outputfile specified
|
|
exit 1
|
|
fi
|
|
cat >$OUTPUTFILE <<EOF
|
|
-ldl
|
|
-lpthread
|
|
-lswiftCore
|
|
-lswiftImageInspectionShared
|
|
$ICU_LIBS
|
|
-lstdc++
|
|
-lm
|
|
-Xlinker
|
|
-export-dynamic
|
|
-Xlinker
|
|
--exclude-libs
|
|
-Xlinker
|
|
ALL
|
|
EOF
|
|
}
|
|
|
|
|
|
if [ "${ICU_STATIC_LIB}" == "TRUE" ]; then
|
|
use_local_iculibs
|
|
else
|
|
find_static_iculibs
|
|
fi
|
|
write_linkfile
|