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="2" 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 # disable searching for qtwebengine sed -e '/find_dependency(Qt6WebEngineWidgets/ s/^#*/#/' -i kdevplatform/KDevPlatformConfig.cmake.in } # 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 }