Files
haikuports/dev-qt/qt5/qt5base-5.5.0.recipe
2015-10-16 00:04:30 +10:00

236 lines
8.9 KiB
Bash

SUMMARY="A comprehensive C++ application development framework"
DESCRIPTION="Qt is a cross-platform application framework that is widely \
used for developing software with a graphical user interface, and also used \
for developing non-GUI programs such as command-line tools and consoles for \
servers."
HOMEPAGE="https://qt.io/"
COPYRIGHT="2015 The Qt Company Ltd."
LICENSE="GNU LGPL v2"
SOURCE_URI="https://download.qt.io/official_releases/qt/5.5/$portVersion/submodules/qtbase-opensource-src-$portVersion.tar.gz"
CHECKSUM_SHA256="7e82b1318f88e56a2a9376e069aa608d4fd96b48cb0e1b880ae658b0a1af0561"
SOURCE_DIR="qtbase-opensource-src-$portVersion"
PATCHES="qt5base-5.5.patchset"
SOURCE_URI_2="https://download.qt.io/official_releases/qt/5.5/$portVersion/submodules/qttools-opensource-src-$portVersion.tar.gz"
CHECKSUM_SHA256_2="d9e06bd19ecc86afba5e95d45a906d1bc1ad579aa70001e36143c1aaf695bdd6"
SOURCE_DIR_2="qttools-opensource-src-$portVersion"
SOURCE_URI_3="https://download.qt.io/official_releases/qt/5.5/$portVersion/submodules/qttranslations-opensource-src-$portVersion.tar.gz"
CHECKSUM_SHA256_3="c4bd6db6e426965c6f8824c54e81f68bbd61e2bae1bcadc328c6e81c45902a0d"
SOURCE_DIR_3="qttranslations-opensource-src-$portVersion"
SOURCE_URI_4="git+https://github.com/threedeyes/QPAHaikuExp#dd88f691e399f238b62cfef0d9ff872af34af77b"
REVISION="2"
ARCHITECTURES="!x86_gcc2 ?x86 ?x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
qt5base$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Bootstrap$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5CLucene$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Concurrent$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Core$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5DBus$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Designer$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5DesignerComponents$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Gui$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Help$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Network$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5PlatformSupport$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5PrintSupport$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Sql$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Test$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5UiTools$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Widgets$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Xml$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qtdiag$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qtpaths$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qtplugininfo$secondaryArchSuffix = $portVersion compat >= 5.5
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libcrypto$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libz$secondaryArchSuffix
lib:libicuuc$secondaryArchSuffix
lib:libjpeg$secondaryArchSuffix
lib:libpng$secondaryArchSuffix
lib:libtiff$secondaryArchSuffix
"
PROVIDES_devel="
qt5base${secondaryArchSuffix}_devel = $portVersion compat >= 5.5
devel:libQt5Bootstrap$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5CLucene$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Concurrent$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Core$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5DBus$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Designer$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5DesignerComponents$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Gui$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Help$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Network$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5PlatformSupport$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5PrintSupport$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Sql$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Test$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5UiTools$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Widgets$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Xml$secondaryArchSuffix = $portVersion compat >= 5.5
app:assistant$secondaryArchSuffix = $portVersion compat >= 5.5
app:designer$secondaryArchSuffix = $portVersion compat >= 5.5
app:linguist$secondaryArchSuffix = $portVersion compat >= 5.5
app:pixeltool$secondaryArchSuffix = $portVersion compat >= 5.5
app:qdbusviewer$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:lconvert$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:lrelease$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:lupdate$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:moc$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qcollectiongenerator$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qdbus$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qdbuscpp2xml$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qdbusxml2cpp$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qdoc$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qhelpconverter$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qhelpgenerator$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qlalr$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qmake$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:rcc$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:syncqt.pl$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:uic$secondaryArchSuffix = $portVersion compat >= 5.5
"
# if libssl and libcrypto are not in REQUIRES_devel,
# qmake will decide that there is no system OpenSSL support
# and thus build Qt apps without any SSL support.
REQUIRES_devel="
qt5base$secondaryArchSuffix == $portVersion base
haiku$secondaryArchSuffix
lib:libz$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libcrypto$secondaryArchSuffix
"
BUILD_REQUIRES="
icu${secondaryArchSuffix}_devel
devel:libz$secondaryArchSuffix
devel:libcrypto$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
devel:libjpeg$secondaryArchSuffix
devel:libpng$secondaryArchSuffix
devel:libtiff$secondaryArchSuffix
"
BUILD_PREREQUIRES="
haiku${secondaryArchSuffix}_devel
cmd:pkg_config$secondaryArchSuffix
cmd:cmp
cmd:which
cmd:make
cmd:g++$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:perl
cmd:find
cmd:awk
"
PATCH()
{
rm -rf $sourceDir/src/plugins/platforms/haiku
cp -s $sourceDir4/haiku $sourceDir/src/plugins/platforms/haiku
cd $sourceDir2
sed -i s/__linux__/__HAIKU__/g \
src/assistant/3rdparty/clucene/src/CLucene/config/compiler.h
sed -i s/-lm/-lroot/g src/designer/src/designer/designer.pro
}
BUILD()
{
# not an autotools configure
CFLAGS=-D_BSD_SOURCE CXXFLAGS=-D_BSD_SOURCE ./configure \
-prefix $prefix \
-bindir $binDir \
-libdir $libDir \
-libexecdir $libExecDir \
-headerdir $includeDir \
-docdir $docDir/Qt5 \
-datadir $dataDir/Qt5 \
-translationdir $dataDir/Qt5/translations \
-sysconfdir $settingsDir \
-testsdir $dataDir/Qt5/tests \
-examplesdir $dataDir/Qt5/examples \
-importdir $dataDir/Qt5/imports \
-plugindir $addOnsDir/Qt5 \
-platform haiku-g++ -no-pch -no-opengl \
-nomake examples -release -opensource \
-confirm-license -no-iconv -no-audio-backend
make $jobArgs
make install
export LIBRARY_PATH=$LIBRARY_PATH:$libDir
cd $sourceDir2
$binDir/qmake .
make $jobArgs
#pushd haiku
#./do-res.sh
#popd
make install
cd $sourceDir3
$binDir/qmake .
make $jobArgs
make install
}
INSTALL()
{
fixPkgconfig strict
prepareInstalledDevelLibs \
libQt5Bootstrap libQt5CLucene libQt5Concurrent libQt5Core \
libQt5DBus libQt5Designer libQt5DesignerComponents libQt5Gui \
libQt5Help libQt5Network libQt5PlatformSupport libQt5PrintSupport \
libQt5Sql libQt5Test libQt5UiTools libQt5Widgets libQt5Xml
# UGLY HACK -- REMOVE ME WHEN QMAKE/CMAKE/ETC IS FIXED
cd $libDir
for i in lib*.so.5.*;do
ln -fs $i $(echo $i | cut -f1,2 -d.)
done
devCommands="assistant designer linguist pixeltool qdbusviewer
lconvert lrelease lupdate moc qcollectiongenerator qdbus qdbuscpp2xml
qdbusxml2cpp qdoc qhelpconverter qhelpgenerator qlalr qmake rcc
syncqt.pl uic"
for i in $devCommands; do
devPackageCommands="$devPackageCommands $binDir/$i"
done
mkdir -p $dataDir/cmake/Modules/
cp -r $libDir/cmake/. $dataDir/cmake/Modules/.
rm -rf $libDir/cmake/
DIR_QT_DEVELOP_DESKBAR="${dataDir}/deskbar/menu/Applications/Qt"
mkdir -p ${DIR_QT_DEVELOP_DESKBAR}
addAppDeskbarSymlink $binDir/assistant "Qt/Assistant"
addAppDeskbarSymlink $binDir/designer "Qt/Designer"
addAppDeskbarSymlink $binDir/linguist "Qt/Lingist"
addAppDeskbarSymlink $binDir/pixeltool "Qt/PixelTool"
packageEntries devel \
$developDir \
$devPackageCommands \
${DIR_QT_DEVELOP_DESKBAR} \
$prefix/mkspecs
rm -rf $libDir/fonts/ $prefix/tests
rm -rf $dataDir/Qt5/demos $dataDir/Qt5/examples
}