mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-22 19:50:05 +02:00
kdevelop_kf6, add KF6 version 25.08.0 (#12763)
This commit is contained in:
308
dev-util/kdevelop/kdevelop_kf6-25.08.0.recipe
Normal file
308
dev-util/kdevelop/kdevelop_kf6-25.08.0.recipe
Normal file
@@ -0,0 +1,308 @@
|
||||
SUMMARY="A cross-platform IDE for C, C++, Python, QML/JavaScript and PHP"
|
||||
DESCRIPTION="KDevelop is a free software integrated development environment \
|
||||
(IDE) developed under the KDE Umbrella. KDevelop provides support for a wide \
|
||||
variety of languages (such as C/C++, Python, PHP, Ruby, ...) via an extensible \
|
||||
plugin framework."
|
||||
HOMEPAGE="https://www.kdevelop.org/"
|
||||
COPYRIGHT="2010-2025 KDE Organisation"
|
||||
LICENSE="GNU GPL v3
|
||||
GNU LGPL v3"
|
||||
REVISION="1"
|
||||
SOURCE_URI="https://download.kde.org/stable/release-service/$portVersion/src/kdevelop-$portVersion.tar.xz"
|
||||
CHECKSUM_SHA256="8682c13bad865433cf93574275f3da8fe6ff7080ee6178541c5c46cb4560a0ad"
|
||||
SOURCE_DIR="kdevelop-$portVersion"
|
||||
PATCHES="kdevelop-$portVersion.patchset"
|
||||
ADDITIONAL_FILES="kdevelop.rdef.in"
|
||||
|
||||
ARCHITECTURES="all !x86_gcc2"
|
||||
SECONDARY_ARCHITECTURES="x86"
|
||||
|
||||
libVersion="6.2.${portVersion//./}0"
|
||||
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
|
||||
|
||||
clangVer="20"
|
||||
|
||||
PROVIDES="
|
||||
kdevelop_kf6$secondaryArchSuffix = $portVersion
|
||||
# should be cmd:kdevelop! but haikuporter doesn't handle this
|
||||
cmd:kdevelop = $portVersion
|
||||
cmd:kdevplatform_shell_environment.sh = $portVersion
|
||||
cmd:kdev_dbus_socket_transformer$secondaryArchSuffix = $portVersion
|
||||
cmd:kdev_format_source$secondaryArchSuffix = $portVersion
|
||||
cmd:kdev_includepathsconverter$secondaryArchSuffix = $portVersion
|
||||
cmd:kdevelop$secondaryArchSuffix = $portVersion
|
||||
lib:libKDevClangPrivate$secondaryArchSuffix
|
||||
lib:libKDevCmakeCommon$secondaryArchSuffix
|
||||
lib:libKDevCompileAnalyzerCommon$secondaryArchSuffix
|
||||
lib:libKDevPlatformDebugger$secondaryArchSuffix = $libVersionCompat
|
||||
lib:libKDevPlatformDocumentation$secondaryArchSuffix = $libVersionCompat
|
||||
lib:libKDevPlatformInterfaces$secondaryArchSuffix = $libVersionCompat
|
||||
lib:libKDevPlatformLanguage$secondaryArchSuffix = $libVersionCompat
|
||||
lib:libKDevPlatformOutputView$secondaryArchSuffix = $libVersionCompat
|
||||
lib:libKDevPlatformProject$secondaryArchSuffix = $libVersionCompat
|
||||
lib:libKDevPlatformSerialization$secondaryArchSuffix = $libVersionCompat
|
||||
lib:libKDevPlatformShell$secondaryArchSuffix = $libVersionCompat
|
||||
lib:libKDevPlatformSublime$secondaryArchSuffix = $libVersionCompat
|
||||
lib:libKDevPlatformTests$secondaryArchSuffix = $libVersionCompat
|
||||
lib:libKDevPlatformUtil$secondaryArchSuffix = $libVersionCompat
|
||||
lib:libKDevPlatformVcs$secondaryArchSuffix = $libVersionCompat
|
||||
"
|
||||
REQUIRES="
|
||||
haiku$secondaryArchSuffix
|
||||
# cmd:dbus_launch # needs the one from x86 on 32bit
|
||||
# kde_cli_tools6$secondaryArchSuffix
|
||||
cmd:clazy_standalone
|
||||
cmd:kdev_pg_qt$secondaryArchSuffix
|
||||
lib:libboost_system$secondaryArchSuffix
|
||||
lib:libclang$secondaryArchSuffix
|
||||
lib:libdbus_1$secondaryArchSuffix
|
||||
lib:libGL$secondaryArchSuffix
|
||||
lib:libkomparediff2$secondaryArchSuffix
|
||||
lib:libLLVM$secondaryArchSuffix
|
||||
lib:libsvn_client_1$secondaryArchSuffix
|
||||
lib:libsvn_fs_1$secondaryArchSuffix
|
||||
lib:libsvn_repos_1$secondaryArchSuffix
|
||||
lib:libsvn_ra_1$secondaryArchSuffix
|
||||
lib:libsvn_subr_1$secondaryArchSuffix
|
||||
lib:libsvn_wc_1$secondaryArchSuffix
|
||||
lib:libz$secondaryArchSuffix
|
||||
# KF6
|
||||
lib:libKF6Archive$secondaryArchSuffix
|
||||
lib:libKF6Attica$secondaryArchSuffix
|
||||
lib:libKF6AuthCore$secondaryArchSuffix
|
||||
lib:libKF6Bookmarks$secondaryArchSuffix
|
||||
lib:libKF6Codecs$secondaryArchSuffix
|
||||
lib:libKF6ColorScheme$secondaryArchSuffix
|
||||
lib:libKF6Completion$secondaryArchSuffix
|
||||
lib:libKF6ConfigCore$secondaryArchSuffix
|
||||
lib:libKF6ConfigGui$secondaryArchSuffix
|
||||
lib:libKF6ConfigWidgets$secondaryArchSuffix
|
||||
lib:libKF6CoreAddons$secondaryArchSuffix
|
||||
lib:libKF6Crash$secondaryArchSuffix
|
||||
lib:libKF6DBusAddons$secondaryArchSuffix
|
||||
lib:libKF6FileMetadata$secondaryArchSuffix
|
||||
lib:libKF6GuiAddons$secondaryArchSuffix
|
||||
lib:libKF6I18n$secondaryArchSuffix
|
||||
lib:libKF6IconThemes$secondaryArchSuffix
|
||||
lib:libKF6ItemModels$secondaryArchSuffix
|
||||
lib:libKF6ItemViews$secondaryArchSuffix
|
||||
lib:libKF6JobWidgets$secondaryArchSuffix
|
||||
lib:libKF6KCMUtils$secondaryArchSuffix
|
||||
lib:libKF6KioCore$secondaryArchSuffix
|
||||
lib:libKF6KIOCore$secondaryArchSuffix
|
||||
lib:libKF6KIOWidgets$secondaryArchSuffix
|
||||
lib:libKF6NewStuffCore$secondaryArchSuffix
|
||||
lib:libKF6Notifications$secondaryArchSuffix
|
||||
lib:libKF6NotifyConfig$secondaryArchSuffix
|
||||
lib:libKF6Package$secondaryArchSuffix
|
||||
lib:libKF6Parts$secondaryArchSuffix
|
||||
lib:libKF6Service$secondaryArchSuffix
|
||||
lib:libKF6Solid$secondaryArchSuffix
|
||||
lib:libKF6SonnetUi$secondaryArchSuffix
|
||||
lib:libKF6SyntaxHighlighting$secondaryArchSuffix
|
||||
lib:libKF6TextEditor$secondaryArchSuffix
|
||||
lib:libKF6TextTemplate$secondaryArchSuffix
|
||||
lib:libKF6TextWidgets$secondaryArchSuffix
|
||||
lib:libKF6ThreadWeaver$secondaryArchSuffix
|
||||
lib:libKF6UnitConversion$secondaryArchSuffix
|
||||
lib:libKF6WidgetsAddons$secondaryArchSuffix
|
||||
lib:libKF6WindowSystem$secondaryArchSuffix
|
||||
lib:libKF6XmlGui$secondaryArchSuffix
|
||||
# Qt6
|
||||
lib:libQt6Core$secondaryArchSuffix
|
||||
lib:libQt6Core5Compat$secondaryArchSuffix
|
||||
lib:libQt6Gui$secondaryArchSuffix
|
||||
lib:libQt6Network$secondaryArchSuffix
|
||||
lib:libQt6PrintSupport$secondaryArchSuffix
|
||||
lib:libQt6Qml$secondaryArchSuffix
|
||||
lib:libQt6Quick$secondaryArchSuffix
|
||||
lib:libQt6Svg$secondaryArchSuffix
|
||||
lib:libQt6Test$secondaryArchSuffix
|
||||
# lib:libQt6WebKit$secondaryArchSuffix
|
||||
# lib:libQt6WebKitWidgets$secondaryArchSuffix
|
||||
lib:libQt6Widgets$secondaryArchSuffix
|
||||
lib:libQt6Xml$secondaryArchSuffix
|
||||
"
|
||||
CONFLICTS="
|
||||
kdevelop$secondaryArchSuffix
|
||||
"
|
||||
|
||||
PROVIDES_devel="
|
||||
kdevelop_kf6${secondaryArchSuffix}_devel = $portVersion
|
||||
devel:libKDevPlatformDebugger$secondaryArchSuffix = $libVersionCompat
|
||||
devel:libKDevPlatformDocumentation$secondaryArchSuffix = $libVersionCompat
|
||||
devel:libKDevPlatformInterfaces$secondaryArchSuffix = $libVersionCompat
|
||||
devel:libKDevPlatformLanguage$secondaryArchSuffix = $libVersionCompat
|
||||
devel:libKDevPlatformOutputView$secondaryArchSuffix = $libVersionCompat
|
||||
devel:libKDevPlatformProject$secondaryArchSuffix = $libVersionCompat
|
||||
devel:libKDevPlatformSerialization$secondaryArchSuffix = $libVersionCompat
|
||||
devel:libKDevPlatformShell$secondaryArchSuffix = $libVersionCompat
|
||||
devel:libKDevPlatformSublime$secondaryArchSuffix = $libVersionCompat
|
||||
devel:libKDevPlatformTests$secondaryArchSuffix = $libVersionCompat
|
||||
devel:libKDevPlatformUtil$secondaryArchSuffix = $libVersionCompat
|
||||
devel:libKDevPlatformVcs$secondaryArchSuffix = $libVersionCompat
|
||||
"
|
||||
REQUIRES_devel="
|
||||
kdevelop_kf6$secondaryArchSuffix == $portVersion base
|
||||
"
|
||||
|
||||
BUILD_REQUIRES="
|
||||
haiku${secondaryArchSuffix}_devel
|
||||
kdevelop_pg_qt6${secondaryArchSuffix}_devel
|
||||
cmd:clazy_standalone
|
||||
devel:libboost_system$secondaryArchSuffix >= 1.88.0
|
||||
devel:libkomparediff2$secondaryArchSuffix >= 6
|
||||
devel:libLLVM_$clangVer$secondaryArchSuffix
|
||||
devel:libomp$secondaryArchSuffix
|
||||
devel:libsvn_client_1$secondaryArchSuffix
|
||||
devel:libsvn_fs_1$secondaryArchSuffix
|
||||
devel:libsvn_repos_1$secondaryArchSuffix
|
||||
devel:libsvn_ra_1$secondaryArchSuffix
|
||||
devel:libsvn_subr_1$secondaryArchSuffix
|
||||
devel:libsvn_wc_1$secondaryArchSuffix
|
||||
devel:libz$secondaryArchSuffix
|
||||
# KF6
|
||||
extra_cmake_modules$secondaryArchSuffix
|
||||
devel:libKF6Archive$secondaryArchSuffix
|
||||
devel:libKF6ConfigCore$secondaryArchSuffix
|
||||
devel:libKF6Crash$secondaryArchSuffix
|
||||
devel:libKF6DocTools$secondaryArchSuffix
|
||||
devel:libKF6GuiAddons$secondaryArchSuffix
|
||||
devel:libKF6I18n$secondaryArchSuffix
|
||||
devel:libKF6IconThemes$secondaryArchSuffix
|
||||
devel:libKF6ItemModels$secondaryArchSuffix
|
||||
devel:libKF6ItemViews$secondaryArchSuffix
|
||||
devel:libKF6JobWidgets$secondaryArchSuffix
|
||||
devel:libKF6KCMUtils$secondaryArchSuffix
|
||||
devel:libKF6KIOCore$secondaryArchSuffix
|
||||
devel:libKF6NewStuffCore$secondaryArchSuffix
|
||||
devel:libKF6Notifications$secondaryArchSuffix
|
||||
devel:libKF6NotifyConfig$secondaryArchSuffix
|
||||
devel:libKF6Parts$secondaryArchSuffix
|
||||
devel:libKF6Purpose$secondaryArchSuffix
|
||||
devel:libKF6Service$secondaryArchSuffix
|
||||
devel:libKF6SonnetUi$secondaryArchSuffix
|
||||
devel:libKF6TextEditor$secondaryArchSuffix
|
||||
devel:libKF6TextTemplate$secondaryArchSuffix
|
||||
devel:libKF6TextWidgets$secondaryArchSuffix
|
||||
devel:libKF6ThreadWeaver$secondaryArchSuffix
|
||||
devel:libKF6WindowSystem$secondaryArchSuffix
|
||||
devel:libKF6XmlGui$secondaryArchSuffix
|
||||
# Qt6
|
||||
qt6_tools${secondaryArchSuffix}_devel
|
||||
devel:libQt6Core$secondaryArchSuffix
|
||||
devel:libQt6Core5Compat$secondaryArchSuffix
|
||||
devel:libQt6Quick$secondaryArchSuffix
|
||||
# devel:libQt6WebKit$secondaryArchSuffix
|
||||
# devel:libQt6WebKitWidgets$secondaryArchSuffix
|
||||
"
|
||||
|
||||
BUILD_PREREQUIRES="
|
||||
cmd:apr_1_config$secondaryArchSuffix
|
||||
cmd:apu_1_config$secondaryArchSuffix
|
||||
cmd:clang_$clangVer
|
||||
cmd:clazy_standalone
|
||||
cmd:cmake
|
||||
cmd:cppcheck$secondaryArchSuffix
|
||||
cmd:find
|
||||
cmd:g++$secondaryArchSuffix
|
||||
cmd:kdev_pg_qt$secondaryArchSuffix
|
||||
cmd:llvm_config >= $clangVer
|
||||
cmd:make
|
||||
cmd:meson
|
||||
cmd:msgfmt$secondaryArchSuffix
|
||||
cmd:msgmerge$secondaryArchSuffix
|
||||
cmd:pkg_config$secondaryArchSuffix
|
||||
cmd:sed
|
||||
cmd:update_mime_database$secondaryArchSuffix
|
||||
"
|
||||
|
||||
TEST_REQUIRES="
|
||||
qthaikuplugins$secondaryArchSuffix
|
||||
"
|
||||
|
||||
PATCH()
|
||||
{
|
||||
# disable docs generation until libxml package is fixed
|
||||
sed -e '/add_subdirectory(doc)/ s/^#*/#/' -i CMakeLists.txt
|
||||
sed -e '/kdoctools_install(po)/ s/^#*/#/' -i CMakeLists.txt
|
||||
# use Haiku's icon theme
|
||||
sed -e 's,\ KIconTheme::initTheme();,\// KIconTheme::initTheme();,g' -i app/main.cpp
|
||||
}
|
||||
|
||||
# BUILD_TESTING needs to be enabled for libKDevPlatformTests
|
||||
# required to build kdevelop_python ...
|
||||
|
||||
BUILD()
|
||||
{
|
||||
CLANG_VERSION="`clang --version | head -n 1 | cut -d " " -f3`"
|
||||
BUILTIN_DIR="`finddir B_SYSTEM_LIB_DIRECTORY`/clang/$CLANG_VERSION/include"
|
||||
|
||||
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release \
|
||||
$cmakeDirArgs \
|
||||
-DCMAKE_AUTOGEN_PARALLEL=1 \
|
||||
-DKDE_INSTALL_QMLDIR=$dataDir/Qt6/qml \
|
||||
-DKDE_INSTALL_PLUGINDIR=$addOnsDir/Qt6 \
|
||||
-DKDE_INSTALL_QTPLUGINDIR=$addOnsDir/Qt6 \
|
||||
-DECM_DIR=/system/data/cmake/Modules/ECM/cmake \
|
||||
-DCLANG_BUILTIN_DIR="$BUILTIN_DIR" \
|
||||
-DBUILD_DOC_VIEWER=OFF \
|
||||
-DBUILD_TESTING=ON \
|
||||
-Wno-dev
|
||||
|
||||
make -C build $jobArgs
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
make -C build install
|
||||
|
||||
# cleanup
|
||||
rm -rf $dataDir/{applications,icons,metainfo}
|
||||
# don't mess with shared_mime_info files
|
||||
rm $dataDir/mime/{version,types,treemagic,subclasses,magic,mime.cache}
|
||||
rm $dataDir/mime/{icons,globs,globs2,generic-icons,aliases,XMLnamespaces}
|
||||
|
||||
local APP_SIGNATURE="application/x-vnd.Qt6-kdevelop"
|
||||
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
|
||||
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
|
||||
local MINOR="`echo "$portVersion" | cut -d. -f3`"
|
||||
local LONG_INFO="$SUMMARY"
|
||||
sed \
|
||||
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
|
||||
-e "s|@MAJOR@|$MAJOR|" \
|
||||
-e "s|@MIDDLE@|$MIDDLE|" \
|
||||
-e "s|@MINOR@|$MINOR|" \
|
||||
-e "s|@LONG_INFO@|$LONG_INFO|" \
|
||||
$portDir/additional-files/kdevelop.rdef.in > kdevelop.rdef
|
||||
|
||||
addResourcesToBinaries kdevelop.rdef $binDir/kdevelop
|
||||
addAppDeskbarSymlink $binDir/kdevelop KDevelop
|
||||
|
||||
prepareInstalledDevelLibs \
|
||||
libKDevPlatformDebugger \
|
||||
libKDevPlatformDocumentation \
|
||||
libKDevPlatformInterfaces \
|
||||
libKDevPlatformLanguage \
|
||||
libKDevPlatformOutputView \
|
||||
libKDevPlatformProject \
|
||||
libKDevPlatformSerialization \
|
||||
libKDevPlatformShell \
|
||||
libKDevPlatformSublime \
|
||||
libKDevPlatformTests \
|
||||
libKDevPlatformUtil \
|
||||
libKDevPlatformVcs
|
||||
|
||||
packageEntries devel \
|
||||
$developDir \
|
||||
$libDir/cmake
|
||||
}
|
||||
|
||||
TEST()
|
||||
{
|
||||
# 39% tests passed, 82 tests failed out of 135
|
||||
# Error window pops up witht: Could not find any plugins during startup.
|
||||
# Please make sure QT_PLUGIN_PATH is set correctly
|
||||
export LIBRARY_PATH="$sourceDir/build/bin${LIBRARY_PATH:+:$LIBRARY_PATH}"
|
||||
ctest --test-dir build --output-on-failure
|
||||
}
|
||||
426
dev-util/kdevelop/patches/kdevelop-25.08.0.patchset
Normal file
426
dev-util/kdevelop/patches/kdevelop-25.08.0.patchset
Normal file
@@ -0,0 +1,426 @@
|
||||
From 633b66892f8851d82f61ead659c34fafca238e56 Mon Sep 17 00:00:00 2001
|
||||
From: begasus <begasus@gmail.com>
|
||||
Date: Mon, 23 Dec 2024 19:54:46 +0000
|
||||
Subject: Add option BUILD_DOC_VIEWER to disable the integrated document viewer
|
||||
|
||||
|
||||
diff --git a/config-kdevelop.h.cmake b/config-kdevelop.h.cmake
|
||||
index 28b8465..cd5d425 100644
|
||||
--- a/config-kdevelop.h.cmake
|
||||
+++ b/config-kdevelop.h.cmake
|
||||
@@ -7,4 +7,6 @@
|
||||
|
||||
#cmakedefine01 HAVE_KSYSGUARD
|
||||
|
||||
+#cmakedefine01 BUILD_DOC_VIEWER
|
||||
+
|
||||
#endif // CONFIG_KDEVELOP_H
|
||||
diff --git a/kdevplatform/documentation/CMakeLists.txt b/kdevplatform/documentation/CMakeLists.txt
|
||||
index 74759ff..f710a12 100644
|
||||
--- a/kdevplatform/documentation/CMakeLists.txt
|
||||
+++ b/kdevplatform/documentation/CMakeLists.txt
|
||||
@@ -1,10 +1,13 @@
|
||||
add_definitions(-DTRANSLATION_DOMAIN=\"kdevplatform\")
|
||||
|
||||
-find_package(Qt6WebEngineWidgets CONFIG)
|
||||
-set_package_properties(Qt6WebEngineWidgets PROPERTIES
|
||||
- PURPOSE "QtWebEngine, for integrated documentation"
|
||||
- URL "https://qt.io/"
|
||||
- TYPE REQUIRED)
|
||||
+option(BUILD_DOC_VIEWER "Build integrated documentation viewer" ON)
|
||||
+if(BUILD_DOC_VIEWER)
|
||||
+ find_package(Qt6WebEngineWidgets CONFIG)
|
||||
+ set_package_properties(Qt6WebEngineWidgets PROPERTIES
|
||||
+ PURPOSE "QtWebEngine, for integrated documentation"
|
||||
+ URL "https://qt.io/"
|
||||
+ TYPE REQUIRED)
|
||||
+endif()
|
||||
|
||||
set(KDevPlatformDocumentation_LIB_SRCS
|
||||
standarddocumentationview.cpp
|
||||
@@ -23,10 +26,16 @@ kdevplatform_add_library(KDevPlatformDocumentation SOURCES ${KDevPlatformDocumen
|
||||
target_link_libraries(KDevPlatformDocumentation
|
||||
PUBLIC
|
||||
KDev::Interfaces
|
||||
- Qt::WebEngineWidgets
|
||||
PRIVATE
|
||||
KDev::Util
|
||||
)
|
||||
+if(BUILD_DOC_VIEWER)
|
||||
+ target_compile_definitions(KDevPlatformDocumentation PUBLIC -DKDEV_STANDARD_DOCUMENTATION_VIEW_ENABLED=1)
|
||||
+ target_link_libraries(KDevPlatformDocumentation PUBLIC Qt::WebEngineWidgets)
|
||||
+else()
|
||||
+ target_compile_definitions(KDevPlatformDocumentation PUBLIC -DKDEV_STANDARD_DOCUMENTATION_VIEW_ENABLED=0)
|
||||
+ message(WARNING "Integrated documentation viewer will not function without QtWebEngine")
|
||||
+endif()
|
||||
|
||||
install(FILES
|
||||
documentationfindwidget.h
|
||||
diff --git a/kdevplatform/documentation/standarddocumentationview.cpp b/kdevplatform/documentation/standarddocumentationview.cpp
|
||||
index e5e09be..2d4f759 100644
|
||||
--- a/kdevplatform/documentation/standarddocumentationview.cpp
|
||||
+++ b/kdevplatform/documentation/standarddocumentationview.cpp
|
||||
@@ -5,6 +5,7 @@
|
||||
SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
*/
|
||||
|
||||
+#include "config-kdevelop.h"
|
||||
#include "standarddocumentationview.h"
|
||||
#include "documentationfindwidget.h"
|
||||
#include "debug.h"
|
||||
@@ -21,18 +22,21 @@
|
||||
#include <QMenu>
|
||||
#include <QUrl>
|
||||
#include <QFile>
|
||||
+#if BUILD_DOC_VIEWER
|
||||
#include <QWebEngineView>
|
||||
#include <QWebEnginePage>
|
||||
#include <QWebEngineUrlScheme>
|
||||
#include <QWebEngineProfile>
|
||||
#include <QWebEngineScript>
|
||||
#include <QWebEngineScriptCollection>
|
||||
+#endif
|
||||
|
||||
using namespace KDevelop;
|
||||
|
||||
namespace {
|
||||
auto qtHelpSchemeName() { return QByteArrayLiteral("qthelp"); }
|
||||
|
||||
+#if BUILD_DOC_VIEWER
|
||||
class StandardDocumentationPage : public QWebEnginePage
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -67,13 +71,15 @@ private:
|
||||
KDevelop::StandardDocumentationView* const m_view;
|
||||
bool m_isDelegating = false;
|
||||
};
|
||||
-
|
||||
+#endif
|
||||
} // unnamed namespace
|
||||
|
||||
void StandardDocumentationView::registerCustomUrlSchemes()
|
||||
{
|
||||
+#if BUILD_DOC_VIEWER
|
||||
QWebEngineUrlScheme scheme(qtHelpSchemeName());
|
||||
QWebEngineUrlScheme::registerScheme(scheme);
|
||||
+#endif
|
||||
}
|
||||
|
||||
class KDevelop::StandardDocumentationViewPrivate
|
||||
@@ -82,18 +88,23 @@ public:
|
||||
ZoomController* m_zoomController = nullptr;
|
||||
IDocumentation::Ptr m_doc;
|
||||
|
||||
+#if BUILD_DOC_VIEWER
|
||||
QWebEngineView* m_view = nullptr;
|
||||
StandardDocumentationPage* m_page = nullptr;
|
||||
+#endif
|
||||
|
||||
~StandardDocumentationViewPrivate()
|
||||
{
|
||||
// make sure the page is deleted before the profile
|
||||
// see https://doc.qt.io/qt-5/qwebenginepage.html#QWebEnginePage-1
|
||||
+#if BUILD_DOC_VIEWER
|
||||
delete m_page;
|
||||
+#endif
|
||||
}
|
||||
|
||||
void init(StandardDocumentationView* parent)
|
||||
{
|
||||
+#if BUILD_DOC_VIEWER
|
||||
// prevent QWebEngine (Chromium) from overriding the signal handlers of KCrash
|
||||
const auto chromiumFlags = qgetenv("QTWEBENGINE_CHROMIUM_FLAGS");
|
||||
if (!chromiumFlags.contains("disable-in-process-stack-traces")) {
|
||||
@@ -110,6 +121,7 @@ public:
|
||||
|
||||
// The event filter is necessary for handling mouse events since they are swallowed by QWebEngineView.
|
||||
m_view->installEventFilter(parent);
|
||||
+#endif
|
||||
}
|
||||
};
|
||||
|
||||
@@ -118,13 +130,16 @@ StandardDocumentationView::StandardDocumentationView(DocumentationFindWidget* fi
|
||||
, d_ptr(new StandardDocumentationViewPrivate)
|
||||
{
|
||||
Q_D(StandardDocumentationView);
|
||||
-
|
||||
+#if BUILD_DOC_VIEWER
|
||||
auto mainLayout = new QVBoxLayout(this);
|
||||
mainLayout->setContentsMargins(0, 0, 0, 0);
|
||||
setLayout(mainLayout);
|
||||
+#endif
|
||||
|
||||
d->init(this);
|
||||
+#if BUILD_DOC_VIEWER
|
||||
layout()->addWidget(d->m_view);
|
||||
+#endif
|
||||
|
||||
findWidget->setEnabled(true);
|
||||
connect(findWidget, &DocumentationFindWidget::searchRequested, this, &StandardDocumentationView::search);
|
||||
@@ -137,13 +152,16 @@ KDevelop::StandardDocumentationView::~StandardDocumentationView()
|
||||
Q_D(StandardDocumentationView);
|
||||
|
||||
// Prevent getting a loadFinished() signal on destruction.
|
||||
+#if BUILD_DOC_VIEWER
|
||||
disconnect(d->m_view, nullptr, this, nullptr);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void StandardDocumentationView::search ( const QString& text, DocumentationFindWidget::FindOptions options )
|
||||
{
|
||||
Q_D(StandardDocumentationView);
|
||||
|
||||
+#if BUILD_DOC_VIEWER
|
||||
QWebEnginePage::FindFlags ff = {};
|
||||
if(options & DocumentationFindWidget::Previous)
|
||||
ff |= QWebEnginePage::FindBackward;
|
||||
@@ -152,12 +170,14 @@ void StandardDocumentationView::search ( const QString& text, DocumentationFindW
|
||||
ff |= QWebEnginePage::FindCaseSensitively;
|
||||
|
||||
d->m_view->page()->findText(text, ff);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void StandardDocumentationView::searchIncremental(const QString& text, DocumentationFindWidget::FindOptions options)
|
||||
{
|
||||
Q_D(StandardDocumentationView);
|
||||
|
||||
+#if BUILD_DOC_VIEWER
|
||||
QWebEnginePage::FindFlags findFlags;
|
||||
|
||||
if (options & DocumentationFindWidget::MatchCase)
|
||||
@@ -173,6 +193,7 @@ void StandardDocumentationView::searchIncremental(const QString& text, Documenta
|
||||
// casesensitivity, that global matches are not updated and the ones with non-matching casing
|
||||
// still active. no workaround so far.
|
||||
d->m_view->page()->findText(text, findFlags);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void StandardDocumentationView::finishSearch()
|
||||
@@ -180,7 +201,9 @@ void StandardDocumentationView::finishSearch()
|
||||
Q_D(StandardDocumentationView);
|
||||
|
||||
// passing empty string to reset search, as told in API docs
|
||||
+#if BUILD_DOC_VIEWER
|
||||
d->m_view->page()->findText(QString());
|
||||
+#endif
|
||||
}
|
||||
|
||||
void StandardDocumentationView::initZoom(const QString& configSubGroup)
|
||||
@@ -235,6 +258,7 @@ void StandardDocumentationView::setOverrideCssCode(const QByteArray& cssCode)
|
||||
{
|
||||
Q_D(StandardDocumentationView);
|
||||
|
||||
+#if BUILD_DOC_VIEWER
|
||||
const auto scriptName = QStringLiteral("OverrideCss");
|
||||
auto& scripts = d->m_view->page()->scripts();
|
||||
|
||||
@@ -268,20 +292,25 @@ void StandardDocumentationView::setOverrideCssCode(const QByteArray& cssCode)
|
||||
script.setWorldId(QWebEngineScript::ApplicationWorld);
|
||||
|
||||
scripts.insert(script);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void KDevelop::StandardDocumentationView::load(const QUrl& url)
|
||||
{
|
||||
Q_D(StandardDocumentationView);
|
||||
|
||||
+#if BUILD_DOC_VIEWER
|
||||
d->m_view->page()->load(url);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void KDevelop::StandardDocumentationView::setHtml(const QString& html)
|
||||
{
|
||||
Q_D(StandardDocumentationView);
|
||||
|
||||
+#if BUILD_DOC_VIEWER
|
||||
d->m_view->page()->setHtml(html);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void KDevelop::StandardDocumentationView::installUrlSchemeHandler(const QByteArray& scheme,
|
||||
@@ -289,25 +318,30 @@ void KDevelop::StandardDocumentationView::installUrlSchemeHandler(const QByteArr
|
||||
{
|
||||
Q_D(StandardDocumentationView);
|
||||
|
||||
+#if BUILD_DOC_VIEWER
|
||||
if (QWebEngineUrlScheme::schemeByName(scheme).name() != scheme) {
|
||||
qCWarning(DOCUMENTATION).nospace() << "unknown URL scheme " << scheme
|
||||
<< ", custom schemes must be registered early during startup, see "
|
||||
"StandardDocumentationView::registerCustomUrlSchemes()";
|
||||
}
|
||||
d->m_view->page()->profile()->installUrlSchemeHandler(scheme, handler);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void KDevelop::StandardDocumentationView::setDelegateLinks(bool delegate)
|
||||
{
|
||||
Q_D(StandardDocumentationView);
|
||||
|
||||
+#if BUILD_DOC_VIEWER
|
||||
d->m_page->setLinkDelegating(delegate);
|
||||
+#endif
|
||||
}
|
||||
|
||||
QMenu* StandardDocumentationView::createStandardContextMenu()
|
||||
{
|
||||
Q_D(StandardDocumentationView);
|
||||
|
||||
+#if BUILD_DOC_VIEWER
|
||||
auto menu = new QMenu(this);
|
||||
auto copyAction = d->m_view->pageAction(QWebEnginePage::Copy);
|
||||
if (copyAction) {
|
||||
@@ -315,12 +349,16 @@ QMenu* StandardDocumentationView::createStandardContextMenu()
|
||||
menu->addAction(copyAction);
|
||||
}
|
||||
return menu;
|
||||
+#else
|
||||
+ return nullptr;
|
||||
+#endif
|
||||
}
|
||||
|
||||
bool StandardDocumentationView::eventFilter(QObject* object, QEvent* event)
|
||||
{
|
||||
Q_D(StandardDocumentationView);
|
||||
|
||||
+#if BUILD_DOC_VIEWER
|
||||
if (object == d->m_view) {
|
||||
/* HACK / Workaround for QTBUG-43602
|
||||
* Need to set an eventFilter on the child of WebengineView because it swallows
|
||||
@@ -359,6 +397,9 @@ bool StandardDocumentationView::eventFilter(QObject* object, QEvent* event)
|
||||
}
|
||||
}
|
||||
return QWidget::eventFilter(object, event);
|
||||
+#else
|
||||
+ return false;
|
||||
+#endif
|
||||
}
|
||||
|
||||
void StandardDocumentationView::contextMenuEvent(QContextMenuEvent* event)
|
||||
@@ -377,7 +418,9 @@ void StandardDocumentationView::updateZoomFactor(double zoomFactor)
|
||||
{
|
||||
Q_D(StandardDocumentationView);
|
||||
|
||||
+#if BUILD_DOC_VIEWER
|
||||
d->m_view->setZoomFactor(zoomFactor);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void StandardDocumentationView::keyReleaseEvent(QKeyEvent* event)
|
||||
diff --git a/plugins/qthelp/qthelpdocumentation.cpp b/plugins/qthelp/qthelpdocumentation.cpp
|
||||
index 3a762bc..e156360 100644
|
||||
--- a/plugins/qthelp/qthelpdocumentation.cpp
|
||||
+++ b/plugins/qthelp/qthelpdocumentation.cpp
|
||||
@@ -6,6 +6,7 @@
|
||||
SPDX-License-Identifier: LGPL-2.0-or-later
|
||||
*/
|
||||
|
||||
+#include "config-kdevelop.h"
|
||||
#include "qthelpdocumentation.h"
|
||||
|
||||
#include <QBuffer>
|
||||
@@ -20,8 +21,10 @@
|
||||
#include <QRegularExpression>
|
||||
#include <QActionGroup>
|
||||
#include <QThread>
|
||||
+#if BUILD_DOC_VIEWER
|
||||
#include <QWebEngineUrlRequestJob>
|
||||
#include <QWebEngineUrlSchemeHandler>
|
||||
+#endif
|
||||
|
||||
#include <KLocalizedString>
|
||||
|
||||
@@ -330,6 +333,7 @@ QString QtHelpDocumentation::description() const
|
||||
|
||||
namespace {
|
||||
|
||||
+#if BUILD_DOC_VIEWER
|
||||
class QtHelpSchemeHandler : public QWebEngineUrlSchemeHandler
|
||||
{
|
||||
Q_OBJECT
|
||||
@@ -373,6 +377,7 @@ public:
|
||||
private:
|
||||
const QtHelpProviderAbstract* const m_provider;
|
||||
};
|
||||
+#endif
|
||||
|
||||
} // unnamed namespace
|
||||
|
||||
@@ -384,6 +389,7 @@ QWidget* QtHelpDocumentation::documentationWidget(DocumentationFindWidget* findW
|
||||
auto* view = new StandardDocumentationView(findWidget, parent);
|
||||
view->initZoom(m_provider->name());
|
||||
view->setDelegateLinks(true);
|
||||
+#if BUILD_DOC_VIEWER
|
||||
view->installUrlSchemeHandler(QByteArrayLiteral("qthelp"), new QtHelpSchemeHandler(m_provider, this));
|
||||
view->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
QObject::connect(view, &StandardDocumentationView::linkClicked, this, &QtHelpDocumentation::jumpedTo);
|
||||
@@ -391,6 +397,9 @@ QWidget* QtHelpDocumentation::documentationWidget(DocumentationFindWidget* findW
|
||||
|
||||
view->load(currentUrl());
|
||||
return view;
|
||||
+#else
|
||||
+ return new QLabel(i18n("Documentation viewer is disabled"), parent);
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
||||
From 35c4bcb64f95f7de85e12031099beeb6cf5b2a3a Mon Sep 17 00:00:00 2001
|
||||
From: begasus <begasus@gmail.com>
|
||||
Date: Mon, 23 Dec 2024 21:51:03 +0000
|
||||
Subject: Build fix?
|
||||
|
||||
|
||||
diff --git a/plugins/cmake/parser/cmStandardLexer.h b/plugins/cmake/parser/cmStandardLexer.h
|
||||
index c489c03..aca1df7 100644
|
||||
--- a/plugins/cmake/parser/cmStandardLexer.h
|
||||
+++ b/plugins/cmake/parser/cmStandardLexer.h
|
||||
@@ -3,7 +3,12 @@
|
||||
#ifndef cmStandardLexer_h
|
||||
#define cmStandardLexer_h
|
||||
|
||||
-#include <QtGlobal>
|
||||
+typedef signed char qint8; /* 8 bit signed */
|
||||
+typedef unsigned char quint8; /* 8 bit unsigned */
|
||||
+typedef short qint16; /* 16 bit signed */
|
||||
+typedef unsigned short quint16; /* 16 bit unsigned */
|
||||
+typedef int qint32; /* 32 bit signed */
|
||||
+typedef unsigned int quint32; /* 32 bit unsigned */
|
||||
|
||||
/* Disable some warnings. */
|
||||
#if defined(_MSC_VER)
|
||||
--
|
||||
2.50.1
|
||||
|
||||
|
||||
From 41cfba901f5ecfcaa592ec15fe1ee5f4366607ad Mon Sep 17 00:00:00 2001
|
||||
From: Schrijvers Luc <begasus@gmail.com>
|
||||
Date: Tue, 26 Mar 2024 08:14:54 +0100
|
||||
Subject: Use system theme
|
||||
|
||||
|
||||
diff --git a/kdevplatform/shell/mainwindow_p.cpp b/kdevplatform/shell/mainwindow_p.cpp
|
||||
index 9c8861e..f412bda 100644
|
||||
--- a/kdevplatform/shell/mainwindow_p.cpp
|
||||
+++ b/kdevplatform/shell/mainwindow_p.cpp
|
||||
@@ -315,10 +315,12 @@ void MainWindowPrivate::setupActions()
|
||||
action->setWhatsThis( i18nc( "@info:whatsthis", "Adds a new tool view to this window." ) );
|
||||
|
||||
//Load themes
|
||||
+#ifndef Q_OS_HAIKU
|
||||
auto* const manager = new KColorSchemeManager(this);
|
||||
auto* const colorSelectionMenu = KColorSchemeMenu::createMenu(manager, actionCollection());
|
||||
colorSelectionMenu->menu()->setTitle(i18n("&Window Color Scheme"));
|
||||
actionCollection()->addAction(QStringLiteral("colorscheme_menu"), colorSelectionMenu);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void MainWindowPrivate::toggleArea(bool b)
|
||||
--
|
||||
2.50.1
|
||||
|
||||
Reference in New Issue
Block a user