---
name: "osx-qt"
suites:
- "precise"
architectures:
- "i386"
packages:
- "git-core"
- "automake"
- "p7zip-full"

reference_datetime: "2013-06-01 00:00:00"
remotes: []
files:
- "qt-everywhere-opensource-src-5.2.1.tar.gz"
- "osx-native-depends-r3.tar.gz"
- "osx-depends-r4.tar.gz"
- "MacOSX10.7.sdk.tar.gz"

script: |

  echo "84e924181d4ad6db00239d87250cc89868484a14841f77fb85ab1f1dbdcd7da1  qt-everywhere-opensource-src-5.2.1.tar.gz" | sha256sum -c

  REVISION=r4
  export SOURCES_PATH=`pwd`
  export TAR_OPTIONS="-m --mtime="$REFERENCE_DATE\\\ $REFERENCE_TIME""
  export ZERO_AR_DATE=1

  export TZ=UTC

  REAL_DATE=`which date`
  echo '#!/bin/bash' > $HOME/date
  echo "$REAL_DATE -d \"${REFERENCE_DATETIME}\" \"\$@\"" >> $HOME/date

  chmod +x $HOME/date
  export PATH=$HOME:$PATH

  mkdir -p osx-cross-depends/build
  cd osx-cross-depends

  PREFIX=`pwd`/prefix
  NATIVEPREFIX=`pwd`/native-prefix
  BUILD_BASE=`pwd`/build
  SDK=`pwd`/SDKs/MacOSX10.7.sdk
  HOST=x86_64-apple-darwin11
  MIN_VERSION=10.6

  INT_CFLAGS="-target ${HOST} -mmacosx-version-min=${MIN_VERSION} --sysroot ${SDK} -msse2 -Qunused-arguments"
  INT_CXXFLAGS="${INT_CFLAGS}"
  INT_LDFLAGS="-L${PREFIX}/lib -L${SDK}/usr/lib/i686-apple-darwin10/4.2.1"
  INT_LDFLAGS_CLANG="-B${NATIVEPREFIX}/bin"
  INT_CPPFLAGS="-I${PREFIX}/include"
  INT_CC=clang
  INT_CXX=clang++
  INT_OBJC=clang
  INT_OBJCXX=clang++
  INT_AR=${HOST}-ar
  INT_RANLIB=${HOST}-ranlib
  INT_LIBTOOL=${HOST}-libtool
  INT_INSTALL_NAME_TOOL=${HOST}-install_name_tool

  export PATH=${NATIVEPREFIX}/bin:${PATH}

  mkdir -p ${NATIVEPREFIX}/bin
  mkdir -p ${NATIVEPREFIX}/lib
  mkdir -p ${PREFIX}/bin
  mkdir -p ${PREFIX}/lib
  mkdir -p ${BUILD_BASE}

  mkdir -p SDKs
  tar -C SDKs -xf ${SOURCES_PATH}/MacOSX10.7.sdk.tar.gz

  tar xf /home/ubuntu/build/osx-native-depends-r3.tar.gz

  export PATH=`pwd`/native-prefix/bin:$PATH
  tar xf /home/ubuntu/build/osx-depends-r4.tar.gz

  SOURCE_FILE=${SOURCES_PATH}/qt-everywhere-opensource-src-5.2.1.tar.gz
  BUILD_DIR=${BUILD_BASE}/qt-everywhere-opensource-src-5.2.1


  tar -C ${BUILD_BASE} -xf ${SOURCE_FILE}

  # Install our mkspec. All files are pulled from the macx-clang spec, except for
  # our custom qmake.conf
  SPECFILE=${BUILD_DIR}/qtbase/mkspecs/macx-clang-linux/qmake.conf

  mkdir -p ${BUILD_DIR}/qtbase/mkspecs/macx-clang-linux
  cp -f ${BUILD_DIR}/qtbase/mkspecs/macx-clang/Info.plist.lib ${BUILD_DIR}/qtbase/mkspecs/macx-clang-linux/
  cp -f ${BUILD_DIR}/qtbase/mkspecs/macx-clang/Info.plist.app ${BUILD_DIR}/qtbase/mkspecs/macx-clang-linux/
  cp -f ${BUILD_DIR}/qtbase/mkspecs/macx-clang/qplatformdefs.h ${BUILD_DIR}/qtbase/mkspecs/macx-clang-linux/

  cat > ${SPECFILE} <<ENDCONF
 
  MAKEFILE_GENERATOR      = UNIX
  CONFIG                 += app_bundle incremental global_init_link_order lib_version_first plugin_no_soname absolute_library_soname
  QMAKE_INCREMENTAL_STYLE = sublib

  include(../common/macx.conf)
  include(../common/gcc-base-mac.conf)
  include(../common/clang.conf)
  include(../common/clang-mac.conf)

  QMAKE_XCODE_VERSION=4.3
  QMAKE_XCODE_DEVELOPER_PATH=/Developer

  QMAKE_MACOSX_DEPLOYMENT_TARGET = ${MIN_VERSION}

  QMAKE_MAC_SDK=macosx
  QMAKE_MAC_SDK.macosx.path = ${SDK}
  QMAKE_MAC_SDK.macosx.platform_name = macosx
  QMAKE_MAC_SDK_PATH=${SDK}

  QMAKE_CFLAGS += -target ${HOST}
  QMAKE_OBJECTIVE_CFLAGS += -target ${HOST}
  QMAKE_CXXFLAGS += -target ${HOST}

  QMAKE_LFLAGS += -target ${HOST}
  QMAKE_AR = ${HOST}-ar cq
  QMAKE_RANLIB=${HOST}-ranlib
  QMAKE_LIBTOOL=${HOST}-libtool
  QMAKE_INSTALL_NAME_TOOL=${HOST}-install_name_tool

  load(qt_config)
 
  ENDCONF

  pushd ${BUILD_DIR}
  ./configure -release -opensource -openssl-linked \
  -no-audio-backend  -no-javascript-jit -no-sql-sqlite -no-sql-tds \
  -no-cups -no-iconv -no-dbus -no-gif -no-audio-backend -no-freetype \
  -no-javascript-jit -no-sql-sqlite -no-nis -no-cups -no-iconv -no-pch \
  -no-dbus -no-gif -no-sm -nomake examples -no-feature-style-plastique \
  -no-xcb -no-qml-debug -no-pch -no-nis \
  -no-feature-style-cde -no-feature-style-s60 -no-feature-style-motif \
  -no-feature-style-windowsmobile -no-feature-style-windowsce \
  -no-feature-style-cleanlooks \
  -no-sql-db2 -no-sql-ibase -no-sql-oci -no-sql-tds -no-sql-mysql \
  -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 \
  -skip qtsvg -skip qtwebkit -skip qtwebkit-examples -skip qtserialport \
  -skip qtdeclarative -skip qtmultimedia -skip qtimageformats \
  -skip qtlocation -skip qtsensors -skip qtquick1 -skip qtxmlpatterns \
  -skip qtquickcontrols -skip qtactiveqt -skip qtconnectivity \
  -skip qtwinextras -skip qtscript \
  -prefix ${PREFIX} -bindir ${NATIVEPREFIX}/bin \
  -confirm-license -xplatform macx-clang-linux -v ${INT_LDFLAGS}

  # RCC's output is sorted using each file entry's hash as the key. Unfortunately,
  # the hash function uses a random seed for each run so the results aren't
  # deterministic. This leads to static resources being defined in a random order,
  # which in-turn means that object files are not predictable.
  # Fortunately, this upsets Qt's unit tests as well, so they've added the
  # QT_RCC_TEST environment variable to set a pre-defined seed. Here, do the same
  # thing for the same reason.
  QT_RCC_TEST=1 make $MAKEOPTS module-qtbase-make_first


  make $MAKEOPTS module-qttranslations-make_first
  make $MAKEOPTS module-qttools-make_first
  make $MAKEOPTS -C qtbase
  make -C qtbase install
  make -C qttranslations install
  make -C qttools/src/linguist install
  popd

  # This file should not be installed to the destination. It's native and
  # non-deterministic. Remove it.
  # See: https://bugreports.qt-project.org/browse/QTBUG-31393
  rm -f ${PREFIX}/lib/libQt5Bootstrap.a

  rm -f ${PREFIX}/lib/Qt*.framework/Qt*.prl
  pushd ${PREFIX}/include
  ln -sf ../lib/QtNetwork.framework/Headers/ QtNetwork
  ln -sf ../lib/QtWidgets.framework/Headers/ QtWidgets
  ln -sf ../lib/QtGui.framework/Headers/ QtGui
  ln -sf ../lib/QtCore.framework/Headers/ QtCore
  ln -sf ../lib/QtTest.framework/Headers/ QtTest
  popd

  rm -f ${PREFIX}/lib/*.la
  find ${PREFIX}/lib -name "*.prl" -delete

  export GZIP="-9n"
  find native-prefix prefix | sort | tar --no-recursion -czf osx-depends-qt-5.2.1-${REVISION}.tar.gz -T -

  mv osx-depends-qt-5.2.1-${REVISION}.tar.gz $OUTDIR
