|
|
|
---
|
|
|
|
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
|