mirror of
https://github.com/Relintai/osxcross.git
synced 2025-02-03 22:45:56 +01:00
libc++ works now out of the box as long 'tools/gen_sdk_package.sh' is used to create the SDK package
100 lines
2.7 KiB
Bash
Executable File
100 lines
2.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
pushd "${0%/*}" &>/dev/null
|
|
eval `./osxcross-env`
|
|
eval `./osxcross-conf`
|
|
popd &>/dev/null
|
|
|
|
type=`basename $0`
|
|
|
|
if [[ $type == *o64* ]] || [[ $type == *x86_64* ]]; then
|
|
ARCH="x86_64"
|
|
ARCHFLAG="-m64"
|
|
else
|
|
if [[ $type == *o32* ]] || [[ $type == *i386* ]]; then
|
|
ARCH="i386"
|
|
ARCHFLAG="-m32"
|
|
else
|
|
echo "unknown arch"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
if [[ $type == *++* ]]; then
|
|
COMPILER="$OSXCROSS_TARGET_DIR/bin/$ARCH-apple-$OSXCROSS_TARGET-base-g++"
|
|
else
|
|
COMPILER="$OSXCROSS_TARGET_DIR/bin/$ARCH-apple-$OSXCROSS_TARGET-base-gcc"
|
|
fi
|
|
|
|
OSX_VERSION_MIN=$OSXCROSS_OSX_VERSION_MIN
|
|
|
|
if [ $# -gt 0 ]; then
|
|
ARCHGIVEN=0
|
|
|
|
for p in "$@"
|
|
do
|
|
if [ "$p" == "-arch" ] || [ "$p" == "-m32" ] || [ "$p" == "-m64" ]; then
|
|
ARCHGIVEN=1
|
|
continue
|
|
fi
|
|
if [[ "$p" == -mmacosx-version-min=* ]]; then
|
|
OSXCROSS_OSX_VERSION_MIN="default"
|
|
OSX_VERSION_MIN=`echo "$p" | tr '=' ' ' | awk '{print $2}'`
|
|
continue
|
|
fi
|
|
if [ "$p" == "-v" ] || [ "$p" == "--version" ]; then
|
|
if [ $# -eq 1 ]; then
|
|
$COMPILER $p
|
|
exit $?
|
|
fi
|
|
fi
|
|
done
|
|
|
|
if [ $ARCHGIVEN -eq 0 ]; then
|
|
OSXCROSS_OPT_ARGS="$OSXCROSS_OPT_ARGS $ARCHFLAG"
|
|
fi
|
|
fi
|
|
|
|
if [[ $COMPILER == *g++ ]] && [[ $type == *libc++* ]]; then
|
|
if ( [ $OSX_VERSION_MIN != "default" ] &&
|
|
[ `echo "$OSX_VERSION_MIN<=10.6" | bc -l` -eq 1 ] );
|
|
then
|
|
if [ $OSXCROSS_OSX_VERSION_MIN = "default" ]; then
|
|
echo -en "\e[1mosxcross \e[31merror:\e[0m\e[0m" 2>&1
|
|
echo " -stdlib=libc++ requires Mac OS X 10.7 or later" 2>&1
|
|
exit 1
|
|
fi
|
|
OSXCROSS_OSX_VERSION_MIN="10.7"
|
|
fi
|
|
|
|
OSXCROSS_OPT_ARGS="$OSXCROSS_OPT_ARGS -std=c++0x -nostdinc++ -nodefaultlibs"
|
|
OSXCROSS_OPT_ARGS="$OSXCROSS_OPT_ARGS -lc -isystem $OSXCROSS_SDK/usr/include/c++/v1"
|
|
|
|
REGEX="\-o\s*[^ ]+\.gch"
|
|
if [[ ! "$@" =~ $REGEX ]]; then
|
|
OSXCROSS_OPT_ARGS="$OSXCROSS_OPT_ARGS -lc++ -lc++abi -lgcc_s.10.5"
|
|
fi
|
|
else
|
|
REGEX="\-o\s*[^ ]+\.gch"
|
|
if [[ ! "$@" =~ $REGEX ]]; then
|
|
if [[ $COMPILER == *g++ ]]; then
|
|
OSXCROSS_OPT_ARGS="$OSXCROSS_OPT_ARGS -static-libgcc -static-libstdc++"
|
|
else
|
|
OSXCROSS_OPT_ARGS="$OSXCROSS_OPT_ARGS -static-libgcc"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ $OSXCROSS_OSX_VERSION_MIN != "default" ]; then
|
|
OSX_VERSION_MIN_OPT="-mmacosx-version-min=$OSXCROSS_OSX_VERSION_MIN"
|
|
else
|
|
OSX_VERSION_MIN_OPT=""
|
|
fi
|
|
|
|
export COMPILER_PATH="$OSXCROSS_CCTOOLS_PATH:$COMPILER_PATH"
|
|
export LD_LIBRARY_PATH="/usr/local/lib:/usr/pkg/lib:$LD_LIBRARY_PATH"
|
|
|
|
$COMPILER $OSX_VERSION_MIN_OPT $OSXCROSS_OPT_ARGS ${1+"$@"}
|
|
|
|
exit $?
|