Create recipe for qt5base.

This commit is contained in:
Augustin Cavalier
2015-08-14 17:10:25 -04:00
parent ffb12bfab4
commit 1d1213da54
2 changed files with 623 additions and 0 deletions

View File

@@ -0,0 +1,394 @@
From 8f27586b1e96ad377ac84bc6853fd522cdd09af2 Mon Sep 17 00:00:00 2001
From: Tobias Koenig <tobias.koenig@kdab.com>
Date: Fri, 13 Feb 2015 14:04:34 +0000
Subject: [PATCH] Haiku: Fix tst_qfileselector.cpp unit test
Add the missing test data for haiku platform selector
and adapt unit test to use them.
Change-Id: I578e7f7e04f2a4c68f23d5356ea201e9562dbe6c
Reviewed-by: Augustin Cavalier <waddlesplash@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
---
tests/auto/corelib/io/qfileselector/platforms/+haiku/test | 0
tests/auto/corelib/io/qfileselector/platforms/+haiku/test2 | 0
tests/auto/corelib/io/qfileselector/platforms/+unix/+haiku/test | 0
tests/auto/corelib/io/qfileselector/qfileselector.qrc | 3 +++
tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp | 2 +-
5 files changed, 4 insertions(+), 1 deletion(-)
create mode 100644 tests/auto/corelib/io/qfileselector/platforms/+haiku/test
create mode 100644 tests/auto/corelib/io/qfileselector/platforms/+haiku/test2
create mode 100644 tests/auto/corelib/io/qfileselector/platforms/+unix/+haiku/test
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+haiku/test b/tests/auto/corelib/io/qfileselector/platforms/+haiku/test
new file mode 100644
index 0000000..e69de29
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+haiku/test2 b/tests/auto/corelib/io/qfileselector/platforms/+haiku/test2
new file mode 100644
index 0000000..e69de29
diff --git a/tests/auto/corelib/io/qfileselector/platforms/+unix/+haiku/test b/tests/auto/corelib/io/qfileselector/platforms/+unix/+haiku/test
new file mode 100644
index 0000000..e69de29
diff --git a/tests/auto/corelib/io/qfileselector/qfileselector.qrc b/tests/auto/corelib/io/qfileselector/qfileselector.qrc
index 661647f..6e26997 100644
--- a/tests/auto/corelib/io/qfileselector/qfileselector.qrc
+++ b/tests/auto/corelib/io/qfileselector/qfileselector.qrc
@@ -19,6 +19,7 @@
<file>platforms/+unix/+darwin/+mac/+osx/test</file>
<file>platforms/+unix/+darwin/+mac/test</file>
<file>platforms/+unix/+darwin/test</file>
+ <file>platforms/+unix/+haiku/test</file>
<file>platforms/+unix/+linux/test</file>
<file>platforms/+unix/test</file>
<file>platforms/+windows/+wince/test</file>
@@ -30,6 +31,7 @@
<file>platforms/+osx/test</file>
<file>platforms/+darwin/test</file>
<file>platforms/+mac/test</file>
+ <file>platforms/+haiku/test</file>
<file>platforms/+linux/test</file>
<file>platforms/+wince/test</file>
@@ -39,6 +41,7 @@
<file>platforms/+blackberry/test2</file>
<file>platforms/+ios/test2</file>
<file>platforms/+osx/test2</file>
+ <file>platforms/+haiku/test2</file>
<file>platforms/+linux/test2</file>
<file>platforms/+wince/test2</file>
<file>platforms/+winnt/test2</file>
diff --git a/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp b/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp
index b3767b4..87381f4 100644
--- a/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp
+++ b/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp
@@ -89,7 +89,7 @@ void tst_QFileSelector::basicTest_data()
QString expectedPlatform2File(""); //Only the last selector
QString expectedPlatform3File; // Only the first selector (the family)
#if defined(Q_OS_UNIX) && !defined(Q_OS_ANDROID) && !defined(Q_OS_BLACKBERRY) && \
- !defined(Q_OS_DARWIN) && !defined(Q_OS_LINUX)
+ !defined(Q_OS_DARWIN) && !defined(Q_OS_LINUX) && !defined(Q_OS_HAIKU)
/* We are only aware of specific unixes, and do not have test files for any of the others.
However those unixes can get a selector added from the result of a uname call, so this will
lead to a case where we don't have that file so we can't expect the concatenation of platform
---
git 2.2.2
From 7dd5726380f5d5422edd4b71c6beba6d02b4e3df Mon Sep 17 00:00:00 2001
From: Tobias Koenig <tobias.koenig@kdab.com>
Date: Fri, 20 Feb 2015 15:47:02 +0000
Subject: [PATCH] Haiku: Fix clipboard implementation
Fix the behavior of the clipboard implementation
to pass the unit test.
Change-Id: Ia8d5428eebf17a626565e8f4a4d895a67f35b20b
Reviewed-by: Augustin Cavalier <waddlesplash@gmail.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
---
src/plugins/platforms/haiku/qhaikuclipboard.cpp | 45 ++++++++++++++++++++-----
src/plugins/platforms/haiku/qhaikuclipboard.h | 4 +++
2 files changed, 40 insertions(+), 9 deletions(-)
diff --git a/src/plugins/platforms/haiku/qhaikuclipboard.cpp b/src/plugins/platforms/haiku/qhaikuclipboard.cpp
index f3aa9dc..a2d7e96 100644
--- a/src/plugins/platforms/haiku/qhaikuclipboard.cpp
+++ b/src/plugins/platforms/haiku/qhaikuclipboard.cpp
@@ -41,6 +41,8 @@
#include <Clipboard.h>
QHaikuClipboard::QHaikuClipboard()
+ : m_systemMimeData(Q_NULLPTR)
+ , m_userMimeData(Q_NULLPTR)
{
if (be_clipboard)
be_clipboard->StartWatching(BMessenger(this));
@@ -50,17 +52,26 @@ QHaikuClipboard::~QHaikuClipboard()
{
if (be_clipboard)
be_clipboard->StopWatching(BMessenger(this));
+
+ delete m_userMimeData;
+ delete m_systemMimeData;
}
QMimeData *QHaikuClipboard::mimeData(QClipboard::Mode mode)
{
- QMimeData *mimeData = new QMimeData();
-
if (mode != QClipboard::Clipboard)
- return mimeData;
+ return 0;
+
+ if (m_userMimeData)
+ return m_userMimeData;
if (!be_clipboard->Lock())
- return mimeData;
+ return 0;
+
+ if (!m_systemMimeData)
+ m_systemMimeData = new QMimeData();
+ else
+ m_systemMimeData->clear();
const BMessage *clipboard = be_clipboard->Data();
if (clipboard) {
@@ -76,11 +87,11 @@ QMimeData *QHaikuClipboard::mimeData(QClipboard::Mode mode)
if (dataLen && (status == B_OK)) {
const QString format = QString::fromLatin1(name);
if (format == QStringLiteral("text/plain")) {
- mimeData->setText(QString::fromLocal8Bit(reinterpret_cast<const char*>(data), dataLen));
+ m_systemMimeData->setText(QString::fromLocal8Bit(reinterpret_cast<const char*>(data), dataLen));
} else if (format == QStringLiteral("text/html")) {
- mimeData->setHtml(QString::fromLocal8Bit(reinterpret_cast<const char*>(data), dataLen));
+ m_systemMimeData->setHtml(QString::fromLocal8Bit(reinterpret_cast<const char*>(data), dataLen));
} else {
- mimeData->setData(format, QByteArray(reinterpret_cast<const char*>(data), dataLen));
+ m_systemMimeData->setData(format, QByteArray(reinterpret_cast<const char*>(data), dataLen));
}
}
}
@@ -88,7 +99,7 @@ QMimeData *QHaikuClipboard::mimeData(QClipboard::Mode mode)
be_clipboard->Unlock();
- return mimeData;
+ return m_systemMimeData;
}
void QHaikuClipboard::setMimeData(QMimeData *mimeData, QClipboard::Mode mode)
@@ -96,6 +107,14 @@ void QHaikuClipboard::setMimeData(QMimeData *mimeData, QClipboard::Mode mode)
if (mode != QClipboard::Clipboard)
return;
+ if (mimeData) {
+ if (m_systemMimeData == mimeData)
+ return;
+
+ if (m_userMimeData == mimeData)
+ return;
+ }
+
if (!be_clipboard->Lock())
return;
@@ -115,6 +134,10 @@ void QHaikuClipboard::setMimeData(QMimeData *mimeData, QClipboard::Mode mode)
qWarning("Unable to store mime data on clipboard");
be_clipboard->Unlock();
+
+ m_userMimeData = mimeData;
+
+ emitChanged(QClipboard::Clipboard);
}
bool QHaikuClipboard::supportsMode(QClipboard::Mode mode) const
@@ -131,8 +154,12 @@ bool QHaikuClipboard::ownsMode(QClipboard::Mode mode) const
void QHaikuClipboard::MessageReceived(BMessage* message)
{
- if (message->what == B_CLIPBOARD_CHANGED)
+ if (message->what == B_CLIPBOARD_CHANGED) {
+ delete m_userMimeData;
+ m_userMimeData = Q_NULLPTR;
+
emitChanged(QClipboard::Clipboard);
+ }
BHandler::MessageReceived(message);
}
diff --git a/src/plugins/platforms/haiku/qhaikuclipboard.h b/src/plugins/platforms/haiku/qhaikuclipboard.h
index 0dc2bfd..3c1f92c 100644
--- a/src/plugins/platforms/haiku/qhaikuclipboard.h
+++ b/src/plugins/platforms/haiku/qhaikuclipboard.h
@@ -55,6 +55,10 @@ class QHaikuClipboard : public QPlatformClipboard, public BHandler
// override from BHandler to catch change notifications from Haiku clipboard
void MessageReceived(BMessage* message) Q_DECL_OVERRIDE;
+
+private:
+ QMimeData *m_systemMimeData;
+ QMimeData *m_userMimeData;
};
QT_END_NAMESPACE
---
git 2.2.2
From 8a51ca091873d099a2816b3d19f21fef618d9ab8 Mon Sep 17 00:00:00 2001
From: Tobias Koenig <tobias.koenig@kdab.com>
Date: Sat, 2 May 2015 12:29:00 +0000
Subject: [PATCH] Haiku: Fix compilation after QPA API change
Remove the calls to QWindowSystemInterface::setSynchronousWindowsSystemEvents
in the Haiku QPA plugin, because the method was renamed in latest QPA API and
we do not really have to call them anyway (was a copy&paste leftover from QNX QPA).
Change-Id: I67db43e89c093e5679f11d967d609846008cad0d
Reviewed-by: Augustin Cavalier <waddlesplash@gmail.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
---
src/plugins/platforms/haiku/qhaikuwindow.cpp | 4 ----
1 file changed, 4 deletions(-)
diff --git a/src/plugins/platforms/haiku/qhaikuwindow.cpp b/src/plugins/platforms/haiku/qhaikuwindow.cpp
index 5768e1c..140b79a 100644
--- a/src/plugins/platforms/haiku/qhaikuwindow.cpp
+++ b/src/plugins/platforms/haiku/qhaikuwindow.cpp
@@ -306,10 +306,8 @@ void QHaikuWindow::haikuWindowMoved(const QPoint &pos)
const QRect newGeometry(pos, geometry().size());
QPlatformWindow::setGeometry(newGeometry);
- QWindowSystemInterface::setSynchronousWindowsSystemEvents(true);
QWindowSystemInterface::handleGeometryChange(window(), newGeometry);
QWindowSystemInterface::handleExposeEvent(window(), newGeometry);
- QWindowSystemInterface::setSynchronousWindowsSystemEvents(false);
}
void QHaikuWindow::haikuWindowResized(const QSize &size, bool zoomInProgress)
@@ -317,10 +315,8 @@ void QHaikuWindow::haikuWindowResized(const QSize &size, bool zoomInProgress)
const QRect newGeometry(geometry().topLeft(), size);
QPlatformWindow::setGeometry(newGeometry);
- QWindowSystemInterface::setSynchronousWindowsSystemEvents(true);
QWindowSystemInterface::handleGeometryChange(window(), newGeometry);
QWindowSystemInterface::handleExposeEvent(window(), newGeometry);
- QWindowSystemInterface::setSynchronousWindowsSystemEvents(false);
if ((m_windowState == Qt::WindowMaximized) && !zoomInProgress) {
// the user has resized the window while maximized -> reset maximized flag
---
git 2.2.2
From 85d9403a129100c00ef096baa01c3c024d0f705a Mon Sep 17 00:00:00 2001
From: Tobias Koenig <tobias.koenig@kdab.com>
Date: Fri, 27 Feb 2015 18:24:43 +0000
Subject: [PATCH] Haiku: Enable FreeType2/FontConfig support
Pass the correct include path to the config test, otherwise compilation
will fail.
Change-Id: I6723cad41ec289b051dcc9c47b3b1d67af7c5879
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
---
config.tests/unix/freetype/freetype.pri | 1 +
1 file changed, 1 insertion(+)
diff --git a/config.tests/unix/freetype/freetype.pri b/config.tests/unix/freetype/freetype.pri
index be2fc33..05299ed 100644
--- a/config.tests/unix/freetype/freetype.pri
+++ b/config.tests/unix/freetype/freetype.pri
@@ -2,6 +2,7 @@
TRY_INCLUDEPATHS = /include /usr/include $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH
# LSB doesn't allow using headers from /include or /usr/include
linux-lsb-g++:TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH
+ haiku:TRY_INCLUDEPATHS += /system/develop/headers
for(p, TRY_INCLUDEPATHS) {
p = $$join(p, "", "", "/freetype2")
exists($$p):INCLUDEPATH *= $$p
---
git 2.2.2
From 5f21aa22fbc224cdd4102ae6a7797574a463af3b Mon Sep 17 00:00:00 2001
From: Tobias Koenig <tobias.koenig@kdab.com>
Date: Sat, 2 May 2015 12:50:25 +0000
Subject: [PATCH] Haiku: Fix reported geometry of platform window
Report the proper window geometry and adapt the
geometry parameters of expose events to be relative
to the window coordinate system.
Change-Id: Ifb32b2663fdf41df0c9783e76e0ebc5e5cf978a3
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
---
src/plugins/platforms/haiku/qhaikuwindow.cpp | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/src/plugins/platforms/haiku/qhaikuwindow.cpp b/src/plugins/platforms/haiku/qhaikuwindow.cpp
index 140b79a..9622d12 100644
--- a/src/plugins/platforms/haiku/qhaikuwindow.cpp
+++ b/src/plugins/platforms/haiku/qhaikuwindow.cpp
@@ -130,6 +130,7 @@ QHaikuWindow::QHaikuWindow(QWindow *window)
if (!m_window)
qFatal("QHaikuWindow: failed to create window");
+ setGeometry(rect);
setWindowFlags(window->flags());
}
@@ -164,13 +165,13 @@ void QHaikuWindow::setVisible(bool visible)
{
if (visible) {
m_window->Show();
+
+ window()->requestActivate();
+
+ QWindowSystemInterface::handleExposeEvent(window(), QRect(QPoint(0, 0), window()->geometry().size()));
} else {
m_window->Hide();
}
-
- window()->requestActivate();
-
- QWindowSystemInterface::handleExposeEvent(window(), window()->geometry());
}
bool QHaikuWindow::isExposed() const
@@ -307,7 +308,7 @@ void QHaikuWindow::haikuWindowMoved(const QPoint &pos)
QPlatformWindow::setGeometry(newGeometry);
QWindowSystemInterface::handleGeometryChange(window(), newGeometry);
- QWindowSystemInterface::handleExposeEvent(window(), newGeometry);
+ QWindowSystemInterface::handleExposeEvent(window(), QRect(QPoint(0, 0), newGeometry.size()));
}
void QHaikuWindow::haikuWindowResized(const QSize &size, bool zoomInProgress)
@@ -316,7 +317,7 @@ void QHaikuWindow::haikuWindowResized(const QSize &size, bool zoomInProgress)
QPlatformWindow::setGeometry(newGeometry);
QWindowSystemInterface::handleGeometryChange(window(), newGeometry);
- QWindowSystemInterface::handleExposeEvent(window(), newGeometry);
+ QWindowSystemInterface::handleExposeEvent(window(), QRect(QPoint(0, 0), newGeometry.size()));
if ((m_windowState == Qt::WindowMaximized) && !zoomInProgress) {
// the user has resized the window while maximized -> reset maximized flag
---
git 2.2.2
From f80b103910cc936e16c247fefb2daa781e09d17e Mon Sep 17 00:00:00 2001
From: Tobias Koenig <tobias.koenig@kdab.com>
Date: Thu, 19 Feb 2015 14:10:53 +0000
Subject: [PATCH] Haiku: Fix QWaitCondition on Haiku
The latest version of Haiku provides the implementation
for pthread_condattr_setclock, so we can enable the code
in QWaitCondition again to make it use the monotonic clock
correctly.
Change-Id: Ibb9ad33d873c3b34f2c516087c4e0aeac04cc83f
Reviewed-by: Augustin Cavalier <waddlesplash@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
---
src/corelib/thread/qwaitcondition_unix.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/corelib/thread/qwaitcondition_unix.cpp b/src/corelib/thread/qwaitcondition_unix.cpp
index fd6af7d..89bf523 100644
--- a/src/corelib/thread/qwaitcondition_unix.cpp
+++ b/src/corelib/thread/qwaitcondition_unix.cpp
@@ -77,7 +77,7 @@ void qt_initialize_pthread_cond(pthread_cond_t *cond, const char *where)
#if defined(Q_OS_ANDROID)
if (local_condattr_setclock && QElapsedTimer::clockType() == QElapsedTimer::MonotonicClock)
local_condattr_setclock(&condattr, CLOCK_MONOTONIC);
-#elif !defined(Q_OS_MAC) && !defined(Q_OS_HAIKU)
+#elif !defined(Q_OS_MAC)
if (QElapsedTimer::clockType() == QElapsedTimer::MonotonicClock)
pthread_condattr_setclock(&condattr, CLOCK_MONOTONIC);
#endif
--
git 2.2.2

View File

@@ -0,0 +1,229 @@
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"
REVISION="1"
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="
libqt4$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()
{
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
}