Files
haikuports/kde-base/krita/patches/krita-3.3.1.patchset
Gerasim Troeglazov 2ea63a12bb Krita: add recipe for version 3.3.1
* 3.3.2 is unstable for now
2017-11-19 16:51:35 +10:00

199 lines
6.2 KiB
Plaintext

From fd73beede56d6e70880bff91f861fbef4aeb3e66 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sun, 19 Nov 2017 15:08:47 +1000
Subject: Fix build for Haiku
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ae27e7f..9fab0b6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -264,7 +264,7 @@ set_package_properties(Qt5Multimedia PROPERTIES
macro_bool_to_01(Qt5Multimedia_FOUND HAVE_QT_MULTIMEDIA)
configure_file(config-qtmultimedia.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-qtmultimedia.h )
-if (NOT WIN32 AND NOT APPLE)
+if (NOT WIN32 AND NOT APPLE AND NOT HAIKU)
find_package(Qt5 ${MIN_QT_VERSION} REQUIRED X11Extras)
diff --git a/libs/ui/CMakeLists.txt b/libs/ui/CMakeLists.txt
index 1c8c43f..f402c9a 100644
--- a/libs/ui/CMakeLists.txt
+++ b/libs/ui/CMakeLists.txt
@@ -416,7 +416,7 @@ if(UNIX)
input/wintab/kis_tablet_support.cpp
qtlockedfile/qtlockedfile_unix.cpp
)
- if(NOT APPLE)
+ if(NOT APPLE AND NOT HAIKU)
set(kritaui_LIB_SRCS
${kritaui_LIB_SRCS}
input/wintab/kis_tablet_support_x11.cpp
@@ -524,7 +524,7 @@ if (HAVE_KIO)
target_link_libraries(kritaui KF5::KIOCore)
endif()
-if (NOT WIN32 AND NOT APPLE)
+if (NOT WIN32 AND NOT APPLE AND NOT HAIKU)
target_link_libraries(kritaui ${X11_X11_LIB}
${X11_Xinput_LIB}
${XCB_LIBRARIES})
@@ -535,11 +535,17 @@ if(APPLE)
target_link_libraries(kritaui ${APPKIT_LIBRARY})
endif ()
+if(HAIKU)
+ target_link_libraries(kritaui network)
+ target_link_libraries(kritaui expat)
+ target_link_libraries(kritaui iconv)
+ target_link_libraries(kritaui intl)
+endif ()
target_link_libraries(kritaui ${OPENEXR_LIBRARIES})
# Add VSync disable workaround
-if(NOT WIN32 AND NOT APPLE)
+if(NOT WIN32 AND NOT APPLE AND NOT HAIKU)
target_link_libraries(kritaui ${CMAKE_DL_LIBS} Qt5::X11Extras)
endif()
diff --git a/plugins/dockers/CMakeLists.txt b/plugins/dockers/CMakeLists.txt
index a2c0280..a407e59 100644
--- a/plugins/dockers/CMakeLists.txt
+++ b/plugins/dockers/CMakeLists.txt
@@ -12,7 +12,7 @@ add_subdirectory(tasksetdocker)
add_subdirectory(compositiondocker)
add_subdirectory(patterndocker)
add_subdirectory(griddocker)
-if(HAVE_OCIO)
+if(HAVE_OCIO AND NOT HAIKU)
add_subdirectory(lut)
endif()
add_subdirectory(overview)
--
2.15.0
From 5d145d8b8d9fffbfb2cebc73116df0fe07139906 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sun, 19 Nov 2017 15:17:49 +1000
Subject: Fix paths
diff --git a/krita/main.cc b/krita/main.cc
index 1903d1a..8adb80c 100644
--- a/krita/main.cc
+++ b/krita/main.cc
@@ -153,8 +153,11 @@ extern "C" int main(int argc, char **argv)
// first create the application so we can create a pixmap
KisApplication app(key, argc, argv);
-#ifdef Q_OS_LINUX
+#if defined(Q_OS_LINUX)
qputenv("XDG_DATA_DIRS", QFile::encodeName(KoResourcePaths::getApplicationRoot() + "share") + ":" + qgetenv("XDG_DATA_DIRS"));
+#elif defined(Q_OS_HAIKU)
+ qputenv("KRITA_PLUGIN_PATH", QFile::encodeName(KoResourcePaths::getApplicationRoot() + "lib"));
+ qputenv("XDG_DATA_DIRS", QFile::encodeName(KoResourcePaths::getApplicationRoot() + "share/") + ":" + qgetenv("XDG_DATA_DIRS"));
#else
qputenv("XDG_DATA_DIRS", QFile::encodeName(KoResourcePaths::getApplicationRoot() + "share"));
#endif
diff --git a/libs/widgetutils/KoResourcePaths.cpp b/libs/widgetutils/KoResourcePaths.cpp
index ce21a2a..c9b6e2f 100644
--- a/libs/widgetutils/KoResourcePaths.cpp
+++ b/libs/widgetutils/KoResourcePaths.cpp
@@ -115,6 +115,8 @@ QString getInstallationPrefix() {
debugWidgetUtils << ">>>>>>>>>>>" << bundlePath;
return bundlePath;
+ #elif defined(Q_OS_HAIKU)
+ return qApp->applicationDirPath() + "/";
#else
return qApp->applicationDirPath() + "/../";
#endif
--
2.15.0
From cc146fb2a57a653f5bc5b0537413fa2925df9432 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sun, 19 Nov 2017 15:19:23 +1000
Subject: Add memory size detection for Haiku platform
diff --git a/libs/image/kis_image_config.cpp b/libs/image/kis_image_config.cpp
index f0c8b73..af0c6d2 100644
--- a/libs/image/kis_image_config.cpp
+++ b/libs/image/kis_image_config.cpp
@@ -346,6 +346,8 @@ void KisImageConfig::setLazyFrameCreationEnabled(bool value)
#elif defined Q_OS_MAC
#include <sys/types.h>
#include <sys/sysctl.h>
+#elif defined Q_OS_HAIKU
+#include <OS.h>
#endif
#include <kis_debug.h>
@@ -376,6 +378,13 @@ int KisImageConfig::totalRAM()
if(!error) {
totalMemory = physmem >> 20;
}
+#elif defined Q_OS_HAIKU
+ system_info info;
+ error = get_system_info(&info)==B_OK?0:1;
+ if(!error) {
+ uint64_t size = (info.max_pages*B_PAGE_SIZE);
+ totalMemory = size >> 20;
+ }
#elif defined Q_OS_WIN
MEMORYSTATUSEX status;
status.dwLength = sizeof(status);
--
2.15.0
From a3a5e5e6ee975eee7bee79ab865f1943cb53dd99 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sun, 19 Nov 2017 15:20:02 +1000
Subject: Disable floating windows
diff --git a/libs/ui/widgets/kis_floating_message.cpp b/libs/ui/widgets/kis_floating_message.cpp
index be98d8b..8c94a5a 100644
--- a/libs/ui/widgets/kis_floating_message.cpp
+++ b/libs/ui/widgets/kis_floating_message.cpp
@@ -129,6 +129,7 @@ KisFloatingMessage::KisFloatingMessage(const QString &message, QWidget *parent,
, m_priority(priority)
, m_alignment(alignment)
{
+#ifndef Q_OS_HAIKU
m_icon = KisIconUtils::loadIcon("calligrakrita").pixmap(256, 256).toImage();
setWindowFlags(Qt::FramelessWindowHint | Qt::ToolTip);
@@ -139,6 +140,7 @@ KisFloatingMessage::KisFloatingMessage(const QString &message, QWidget *parent,
m_timer.setSingleShot( true );
connect(&m_timer, SIGNAL(timeout()), SLOT(startFade()));
+#endif
}
void KisFloatingMessage::tryOverrideMessage(const QString message,
@@ -160,12 +162,13 @@ void KisFloatingMessage::tryOverrideMessage(const QString message,
void KisFloatingMessage::showMessage()
{
-
+#ifndef Q_OS_HAIKU
setGeometry(determineMetrics(fontMetrics().width('x')));
setWindowOpacity(OSD_WINDOW_OPACITY);
QWidget::setVisible(true);
m_timer.start(m_timeout);
+#endif
}
void KisFloatingMessage::setShowOverParent(bool show)
--
2.15.0