mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
New refcount representation and weak variable implementation. See SwiftShims/RefCount.h for details.
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) plaforms. 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
|
|
-licui18n
|
|
-licuuc
|
|
-licudata
|
|
EOF
|
|
}
|
|
|
|
|
|
function write_linkfile {
|
|
if [ -z "${OUTPUTFILE}" ]; then
|
|
echo $0: No outputfile specified
|
|
exit 1
|
|
fi
|
|
cat >$OUTPUTFILE <<EOF
|
|
-ldl
|
|
-lpthread
|
|
-latomic
|
|
-lswiftCore
|
|
-latomic
|
|
-lswiftImageInspectionShared
|
|
$ICU_LIBS
|
|
-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
|