mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-05 16:46:26 +00:00
f6af9a3909
--HG-- extra : commitid : EAxgCmmuwAx extra : rebase_source : 854a55e62573e59e042a326d62450fa3fbf2db18
109 lines
3.1 KiB
Plaintext
109 lines
3.1 KiB
Plaintext
dnl This Source Code Form is subject to the terms of the Mozilla Public
|
|
dnl License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
AC_DEFUN([MOZ_IOS_PATH_PROG],
|
|
[
|
|
changequote({,})
|
|
_prog_name=ifelse($2, {}, `echo $1 | tr "[:upper:]" "[:lower:]"`, $2)
|
|
changequote([,])
|
|
AC_CACHE_CHECK([for $_prog_name in iOS SDK],
|
|
ac_cv_ios_path_$1,
|
|
[
|
|
_path=`xcrun --sdk $ios_sdk --find $_prog_name 2>/dev/null`
|
|
_res=$?
|
|
if test $_res -ne 0; then
|
|
AC_MSG_ERROR([Could not find '$_prog_name' in the iOS SDK])
|
|
fi
|
|
ac_cv_ios_path_$1=$_path
|
|
])
|
|
$1="${ac_cv_ios_path_$1}$3"
|
|
])
|
|
|
|
AC_DEFUN([MOZ_IOS_SDK],
|
|
[
|
|
|
|
MOZ_ARG_WITH_STRING(ios-sdk,
|
|
[ --with-ios-sdk=TYPE
|
|
Type of iOS SDK to use (iphonesimulator, iphoneos)
|
|
and optionally version (like iphoneos8.2)],
|
|
ios_sdk=$withval)
|
|
|
|
MOZ_ARG_ENABLE_STRING(ios-target,
|
|
[ --enable-ios-target=VER (default=8.0)
|
|
Set the minimum iOS version needed at runtime],
|
|
[_IOS_TARGET=$enableval])
|
|
_IOS_TARGET_DEFAULT=8.0
|
|
|
|
case "$target" in
|
|
arm*-apple-darwin*)
|
|
if test -z "$ios_sdk" -o "$ios_sdk" = "yes"; then
|
|
ios_sdk=iphoneos
|
|
fi
|
|
case "$ios_sdk" in
|
|
iphoneos*)
|
|
ios_target_arg="-miphoneos-version-min"
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([Only 'iphoneos' SDKs are valid when targeting iOS device, don't know what to do with '$ios_sdk'.])
|
|
;;
|
|
esac
|
|
;;
|
|
*-apple-darwin*)
|
|
ios_target_arg="-mios-simulator-version-min"
|
|
case "$ios_sdk" in
|
|
# Empty SDK is okay, this might be an OS X desktop build.
|
|
""|iphonesimulator*)
|
|
;;
|
|
# Default to iphonesimulator
|
|
yes)
|
|
ios_sdk=iphonesimulator
|
|
;;
|
|
*)
|
|
AC_MSG_ERROR([Only 'iphonesimulator' SDKs are valid when targeting iOS simulator.])
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
|
|
|
|
if test -n "$ios_sdk"; then
|
|
if test -z "$_IOS_TARGET"; then
|
|
_IOS_TARGET=$_IOS_TARGET_DEFAULT
|
|
ios_target_arg="${ios_target_arg}=${_IOS_TARGET}"
|
|
fi
|
|
# Ensure that xcrun knows where this SDK is.
|
|
ios_sdk_path=`xcrun --sdk $ios_sdk --show-sdk-path 2>/dev/null`
|
|
_ret=$?
|
|
if test $_ret -ne 0; then
|
|
AC_MSG_ERROR([iOS SDK '$ios_sdk' could not be found.])
|
|
fi
|
|
MOZ_IOS=1
|
|
export HOST_CC=clang
|
|
export HOST_CXX=clang++
|
|
# Add isysroot, arch, and ios target arguments
|
|
case "$target_cpu" in
|
|
arm*)
|
|
ARGS="-arch armv7"
|
|
;;
|
|
*)
|
|
# Unfortunately simulator builds need this.
|
|
export CROSS_COMPILE=1
|
|
;;
|
|
esac
|
|
ARGS=" $ARGS -isysroot $ios_sdk_path $ios_target_arg"
|
|
# Now find our tools
|
|
MOZ_IOS_PATH_PROG(CC, clang, $ARGS)
|
|
MOZ_IOS_PATH_PROG(CXX, clang++, $ARGS)
|
|
export CPP="$CC -E"
|
|
export LD="$CXX"
|
|
MOZ_IOS_PATH_PROG(AR)
|
|
MOZ_IOS_PATH_PROG(AS, as, $ARGS)
|
|
MOZ_IOS_PATH_PROG(OTOOL)
|
|
MOZ_IOS_PATH_PROG(STRIP)
|
|
export PKG_CONFIG_PATH=${ios_sdk_path}/usr/lib/pkgconfig/
|
|
fi
|
|
|
|
AC_SUBST(MOZ_IOS)
|
|
])
|