From c0d3a073e6309939a82b58d9aa693084b088644c Mon Sep 17 00:00:00 2001 From: konablend Date: Tue, 24 Sep 2013 00:14:48 +0000 Subject: BuildSystem: initial Xcode5 support Tested on MacOSX 10.8.5 w/ Xcode 5.0, 4.6.3 and 4.5.2, various builds, including terminal Xcode, terminal no Xcode and Xcode IDE, and permutations with/without mp4v2 and mkv. - push defs for optional static libraries (OSL) to respective modules - adjust make-driven linking to use OSL - adjust Xcode-driven linking to use OSL via ld -filelist option - add Xcode project group for all OSL - set Xcode project to use clang compiler - add osx 10.8 xcconfig files - add "supplemental" xcconfig file where EXTERNAL_CONFIGURE may be used to specify configure-time options - patch mp4v2 to compile with clang Intructions for custom configure-options within Xcode IDE: 1. edit macosx/xcconfig/supplemental.xcconfig 2. save file (unsure how long it takes IDE to see change but it does) 3. build clean 4. build 5. never commit supplemental.xcconfig to repository - it is meant to exist but not effect the build on a clean checkout, and to be used only as a developer transient developer customization file. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@5800 b64f7644-9d1e-0410-96f1-a4d463321fa5 --- make/xcodemake | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) (limited to 'make/xcodemake') diff --git a/make/xcodemake b/make/xcodemake index a5950811b..f3aa4e6ae 100755 --- a/make/xcodemake +++ b/make/xcodemake @@ -106,15 +106,21 @@ if [ -n "$reconfigure" ]; then driver="--xcode-driver=$EXTERNAL_DRIVER" fi + ## determine which compiler to use based on Xcode environment (project). case "$GCC_VERSION" in com.apple.compilers.llvmgcc42) - gcc="--gcc=$DEVELOPER_BIN_DIR/llvm-gcc-4.2" + gcc="--gcc=`$DEVELOPER_BIN_DIR/xcodebuild -find-executable llvm-gcc-4.2`" ;; com.apple.compilers.llvm.clang.1_0) - gcc="--gcc=$DEVELOPER_BIN_DIR/clang" + gcc="--gcc=`$DEVELOPER_BIN_DIR/xcodebuild -find-executable clang`" ;; *) - gcc= + echo "*********************************************************************" + echo "***" + echo "*** ERROR: unexpected value for GCC_VERSION: $GCC_VERSION" + echo "***" + echo "*********************************************************************" + exit 1 ;; esac @@ -145,6 +151,14 @@ if [ -n "$reconfigure" ]; then minver= fi + ## pickup user setting from Xcode IDE and avoid recursion + if [ -n "$EXTERNAL_CONFIGURE" ]; then + extconf="$EXTERNAL_CONFIGURE" + else + extconf= + fi + EXTERNAL_CONFIGURE= + ## invoke configure with (hidden) option which indicates conf performed by xcode (set -ex; $EXTERNAL_SRC/configure --force \ $EXTERNAL_CONF_ARGS \ @@ -152,7 +166,7 @@ if [ -n "$reconfigure" ]; then $driver \ --xcode-symroot="$SYMROOT" \ --xcode-config="$EXTERNAL_XCCONFIG" \ - $gcc $arch $debug $sysroot $minver) + $gcc $arch $debug $sysroot $minver $extconf) [ $? -ne 0 ] && exit 1 fi -- cgit v1.2.3