Files
haikuports/dev-qt/qt5/qt5-5.5.1.recipe
2015-10-26 22:03:58 +10:00

344 lines
14 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/single/qt-everywhere-opensource-src-$portVersion.tar.gz"
CHECKSUM_SHA256="c7fad41a009af1996b62ec494e438aedcb072b3234b2ad3eeea6e6b1f64be3b3"
SOURCE_DIR="qt-everywhere-opensource-src-$portVersion"
PATCHES="qt5-5.5.1.patchset"
REVISION="1"
ARCHITECTURES="!x86_gcc2 ?x86 ?x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
qt5$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libqt5$secondaryArchSuffix = $portVersion compat >= 5.5
# qtbase
lib:libQt5Concurrent$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Core$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5DBus$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Gui$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Network$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5OpenGL$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:libQt5Widgets$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Xml$secondaryArchSuffix = $portVersion compat >= 5.5
# qtxmlpatterns
lib:libQt5XmlPatterns$secondaryArchSuffix = $portVersion compat >= 5.5
# qtwebsockets
lib:libQt5WebSockets$secondaryArchSuffix = $portVersion compat >= 5.5
# qtwebkit
lib:libQt5WebKit$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5WebKitWidgets$secondaryArchSuffix = $portVersion compat >= 5.5
# qt3d
lib:libQt53DCollision$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt53DCore$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt53DInput$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt53DLogic$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt53DQuick$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt53DQuickRenderer$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt53DRenderer$secondaryArchSuffix = $portVersion compat >= 5.5
# qtconnectivity
lib:libQt5Bluetooth$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Nfc$secondaryArchSuffix = $portVersion compat >= 5.5
# qtdeclarative
lib:libQt5Qml$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Quick$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5QuickParticles$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5QuickTest$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5QuickWidgets$secondaryArchSuffix = $portVersion compat >= 5.5
# qtenginio
lib:libEnginio$secondaryArchSuffix = $portVersion compat >= 5.5
# qtlocation
lib:libQt5Location$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Positioning$secondaryArchSuffix = $portVersion compat >= 5.5
# qtmultimedia
lib:libQt5Multimedia$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5MultimediaQuick_p$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5MultimediaWidgets$secondaryArchSuffix = $portVersion compat >= 5.5
# qtquick1
lib:libQt5Declarative$secondaryArchSuffix = $portVersion compat >= 5.5
# qtscript
lib:libQt5Script$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5ScriptTools$secondaryArchSuffix = $portVersion compat >= 5.5
# qtsensors
lib:libQt5Sensors$secondaryArchSuffix = $portVersion compat >= 5.5
# qtserialport
lib:libQt5SerialPort$secondaryArchSuffix = $portVersion compat >= 5.5
# qtsvg
lib:libQt5Svg$secondaryArchSuffix = $portVersion compat >= 5.5
# qttools
lib:libQt5CLucene$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Help$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Designer$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5DesignerComponents$secondaryArchSuffix = $portVersion compat >= 5.5
# qtwebchannel
lib:libQt5WebChannel$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
lib:libgl$secondaryArchSuffix
lib:libglu$secondaryArchSuffix
lib:libfreetype$secondaryArchSuffix
lib:libfontconfig$secondaryArchSuffix
lib:libxml2$secondaryArchSuffix
"
PROVIDES_devel="
qt5${secondaryArchSuffix}_devel = $portVersion compat >= 5.5
devel:libqt5$secondaryArchSuffix = $portVersion compat >= 5.5
# qtbase
devel:libQt5Concurrent$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Core$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5DBus$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Gui$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Network$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5OpenGL$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:libQt5Widgets$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Xml$secondaryArchSuffix = $portVersion compat >= 5.5
# qtxmlpatterns
devel:libQt5XmlPatterns$secondaryArchSuffix = $portVersion compat >= 5.5
# qtwebsockets
devel:libQt5WebSockets$secondaryArchSuffix = $portVersion compat >= 5.5
# qtwebkit
devel:libQt5WebKit$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5WebKitWidgets$secondaryArchSuffix = $portVersion compat >= 5.5
# qt3d
devel:libQt53DCollision$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt53DCore$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt53DInput$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt53DLogic$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt53DQuick$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt53DQuickRenderer$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt53DRenderer$secondaryArchSuffix = $portVersion compat >= 5.5
# qtconnectivity
devel:libQt5Bluetooth$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Nfc$secondaryArchSuffix = $portVersion compat >= 5.5
# qtdeclarative
devel:libQt5Qml$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Quick$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5QuickParticles$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5QuickTest$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5QuickWidgets$secondaryArchSuffix = $portVersion compat >= 5.5
# qtenginio
lib:libEnginio$secondaryArchSuffix = $portVersion compat >= 5.5
# qtlocation
lib:libQt5Location$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5Positioning$secondaryArchSuffix = $portVersion compat >= 5.5
# qtmultimedia
devel:libQt5Multimedia$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5MultimediaQuick_p$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5MultimediaWidgets$secondaryArchSuffix = $portVersion compat >= 5.5
# qtquick1
devel:libQt5Declarative$secondaryArchSuffix = $portVersion compat >= 5.5
# qtscript
lib:libQt5Script$secondaryArchSuffix = $portVersion compat >= 5.5
lib:libQt5ScriptTools$secondaryArchSuffix = $portVersion compat >= 5.5
# qtsensors
devel:libQt5Sensors$secondaryArchSuffix = $portVersion compat >= 5.5
# qtserialport
devel:libQt5SerialPort$secondaryArchSuffix = $portVersion compat >= 5.5
# qtsvg
devel:libQt5Svg$secondaryArchSuffix = $portVersion compat >= 5.5
# qttools
devel:libQt5CLucene$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Designer$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5DesignerComponents$secondaryArchSuffix = $portVersion compat >= 5.5
devel:libQt5Help$secondaryArchSuffix = $portVersion compat >= 5.5
# qtwebchannel
devel:libQt5WebChannel$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:moc$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: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
cmd:lconvert$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:lrelease$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:lupdate$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:pixeltool$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qcollectiongenerator$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qdbusviewer$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qdbus$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:qhelpconverter$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:xmlpatterns$secondaryArchSuffix = $portVersion compat >= 5.5
cmd:xmlpatternsvalidator$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="
qt5$secondaryArchSuffix == $portVersion base
haiku$secondaryArchSuffix
lib:libz$secondaryArchSuffix
lib:libssl$secondaryArchSuffix
lib:libcrypto$secondaryArchSuffix
lib:libgl$secondaryArchSuffix
lib:libglu$secondaryArchSuffix
"
PROVIDES_docs="
qt5${secondaryArchSuffix}_docs = $portVersion compat >= 5.5
"
REQUIRES_docs="
qt5${secondaryArchSuffix}_devel == $portVersion base
"
BUILD_REQUIRES="
icu${secondaryArchSuffix}_devel
devel:libz$secondaryArchSuffix
devel:libcrypto$secondaryArchSuffix
devel:libssl$secondaryArchSuffix
devel:libjpeg$secondaryArchSuffix
devel:libpng$secondaryArchSuffix
devel:libtiff$secondaryArchSuffix
devel:libgl$secondaryArchSuffix
devel:libglu$secondaryArchSuffix
devel:libfreetype$secondaryArchSuffix
devel:libfontconfig$secondaryArchSuffix
devel:libxml2$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:python
cmd:ruby
cmd:find
cmd:flex
cmd:bison
cmd:gperf
cmd:awk
"
BUILD()
{
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 \
-nomake examples -release -opensource \
-confirm-license -no-iconv -no-audio-backend
make $jobArgs
}
INSTALL()
{
make install
export LIBRARY_PATH=$LIBRARY_PATH:$libDir
# make $jobArgs docs
make install_docs
fixPkgconfig
prepareInstalledDevelLibs \
libQt5Concurrent libQt5Core libQt5DBus libQt5Gui \
libQt5Network libQt5PrintSupport libQt5OpenGL \
libQt5Sql libQt5Test libQt5Widgets libQt5Xml \
libQt5XmlPatterns libQt5WebSockets libQt5WebKitWidgets \
libQt5WebKit libQt5WebChannel libQt5Svg \
libQt5SerialPort libQt5Sensors libQt5ScriptTools libQt5Script \
libQt5QuickWidgets libQt5QuickTest libQt5QuickParticles \
libQt5Quick libQt5Qml libQt5Positioning libQt5Nfc \
libQt5MultimediaWidgets libQt5MultimediaQuick_p libQt5Multimedia \
libQt5Location libQt5Help libQt5Designer libQt5DesignerComponents \
libQt5Declarative libQt5CLucene libQt5Bluetooth libQt53DQuickRenderer \
libQt53DQuick libQt53DLogic libQt53DInput libQt53DCore \
libQt53DCollision libQt53DRenderer libEnginio
cd $libDir
for i in lib*.so.5.*;do
ln -fs $i $(echo $i | cut -f1,2 -d.)
done
rm -rf $libDir/fonts/ $prefix/tests
rm -rf $dataDir/Qt5/demos $dataDir/Qt5/examples
mkdir -p $dataDir/cmake/Modules/
cp -r $libDir/cmake/. $dataDir/cmake/Modules/.
rm -rf $libDir/cmake/
mv -f $libDir/libQt5UiTools* $developLibDir/
mv -f $libDir/libQt5QmlDevTools* $developLibDir/
mv -f $libDir/libQt5Bootstrap* $developLibDir/
mv -f $libDir/libQt5PlatformSupport* $developLibDir/
mv -f $libDir/libQt5OpenGLExtensions* $developLibDir/
devCommands="assistant designer linguist lconvert lrelease lupdate
pixeltool qcollectiongenerator qdbusviewer qdbus qhelpconverter
qhelpgenerator xmlpatterns xmlpatternsvalidator moc qdbuscpp2xml
qdbusxml2cpp qdoc qlalr qmake rcc syncqt.pl uic"
for i in $devCommands; do
devPackageCommands="$devPackageCommands $binDir/$i"
done
iconFiles="assistant designer linguist qdbusviewer qhelpconverter qhelpconverter qmlviewer"
for j in $iconFiles; do
rc -o $sourceDir/haiku/$j.rsrc $sourceDir/haiku/$j.rdef
xres -o "$binDir/$j" $sourceDir/haiku/$j.rsrc
mimeset -f "$binDir/$j"
done
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/qdbusviewer "Qt/Qt D-Bus Viewer"
addAppDeskbarSymlink $binDir/qmlviewer "Qt/QML Viewer"
addAppDeskbarSymlink $binDir/qhelpconverter "Qt/Qt Help Converter"
packageEntries docs \
$docDir/Qt5
packageEntries devel \
$developDir \
$devPackageCommands \
${DIR_QT_DEVELOP_DESKBAR} \
$dataDir/cmake/Modules \
$prefix/mkspecs
}