feat: add Konsole recipe source and patches
This commit is contained in:
@@ -0,0 +1,176 @@
|
||||
# Konsole project
|
||||
|
||||
# KDE Application Version, managed by release script
|
||||
set(RELEASE_SERVICE_VERSION_MAJOR "24")
|
||||
set(RELEASE_SERVICE_VERSION_MINOR "08")
|
||||
set(RELEASE_SERVICE_VERSION_MICRO "3")
|
||||
set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
|
||||
|
||||
# Do not increase these requirements without a merge-request or/and
|
||||
# approval from maintainer(s).
|
||||
# minimal requirements
|
||||
|
||||
# See comments in https://invent.kde.org/utilities/konsole/-/commit/9d8e47298c81fc1e47c998eda1b6e980589274eb
|
||||
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
||||
|
||||
set(QT_MIN_VERSION "6.5.0")
|
||||
set(KF6_DEP_VERSION "6.0.0")
|
||||
set(QT_MAJOR_VERSION "6")
|
||||
|
||||
# Release script will create bugzilla versions
|
||||
project(konsole VERSION ${RELEASE_SERVICE_VERSION})
|
||||
|
||||
find_package(ECM ${KF6_DEP_VERSION} REQUIRED NO_MODULE)
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH})
|
||||
|
||||
include(KDEInstallDirs)
|
||||
include(KDECMakeSettings)
|
||||
include(KDECompilerSettings NO_POLICY_SCOPE)
|
||||
include(ECMOptionalAddSubdirectory)
|
||||
include(ECMInstallIcons)
|
||||
include(ECMSetupVersion)
|
||||
include(ECMMarkNonGuiExecutable)
|
||||
include(ECMGenerateHeaders)
|
||||
include(GenerateExportHeader)
|
||||
include(FeatureSummary)
|
||||
include(ECMQtDeclareLoggingCategory)
|
||||
include(KDEClangFormat)
|
||||
# Remove OPTIONAL when we require EMC >= 5.79
|
||||
include(KDEGitCommitHooks OPTIONAL)
|
||||
include(CheckFunctionExists)
|
||||
include(CheckIncludeFiles)
|
||||
|
||||
# Allows passing e.g. -DECM_ENABLE_SANITIZERS='address;undefined' to cmake.
|
||||
include(ECMEnableSanitizers)
|
||||
|
||||
find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED
|
||||
Core
|
||||
Multimedia
|
||||
PrintSupport
|
||||
Widgets
|
||||
Core5Compat
|
||||
)
|
||||
|
||||
find_package(KF6 ${KF6_DEP_VERSION} REQUIRED
|
||||
Bookmarks
|
||||
Config
|
||||
ConfigWidgets
|
||||
CoreAddons
|
||||
Crash
|
||||
GuiAddons
|
||||
I18n
|
||||
IconThemes
|
||||
KIO
|
||||
NewStuff
|
||||
Notifications
|
||||
NotifyConfig
|
||||
Parts
|
||||
Service
|
||||
TextWidgets
|
||||
WidgetsAddons
|
||||
WindowSystem
|
||||
XmlGui
|
||||
)
|
||||
|
||||
if(NOT WIN32)
|
||||
find_package(KF6 ${KF6_DEP_VERSION} REQUIRED
|
||||
Pty
|
||||
)
|
||||
endif()
|
||||
|
||||
# shall we use DBus?
|
||||
# enabled per default on Linux & BSD systems
|
||||
set(USE_DBUS_DEFAULT OFF)
|
||||
if(UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAIKU)
|
||||
set(USE_DBUS_DEFAULT ON)
|
||||
endif()
|
||||
option(USE_DBUS "Build components using DBus" ${USE_DBUS_DEFAULT})
|
||||
if(USE_DBUS)
|
||||
find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED
|
||||
DBus
|
||||
)
|
||||
find_package(KF6 ${KF6_DEP_VERSION} REQUIRED
|
||||
DBusAddons
|
||||
GlobalAccel
|
||||
)
|
||||
set(HAVE_DBUS 1)
|
||||
endif()
|
||||
|
||||
find_package(KF6DocTools ${KF6_DEP_VERSION})
|
||||
set_package_properties(KF6DocTools PROPERTIES DESCRIPTION
|
||||
"Tools to generate documentation"
|
||||
TYPE OPTIONAL
|
||||
)
|
||||
|
||||
find_package(ICU 61.0 COMPONENTS uc i18n REQUIRED)
|
||||
|
||||
if(UNIX AND NOT APPLE AND NOT ANDROID AND NOT HAIKU)
|
||||
option(WITH_X11 "Build with X11 integration" ON)
|
||||
endif()
|
||||
|
||||
# Check for function GETPWUID
|
||||
check_symbol_exists(getpwuid "pwd.h" HAVE_GETPWUID)
|
||||
|
||||
check_function_exists(malloc_trim HAVE_MALLOC_TRIM)
|
||||
|
||||
# See above includes for defaults
|
||||
add_definitions(
|
||||
-DQT_NO_FOREACH
|
||||
-DQT_STRICT_ITERATORS
|
||||
-DQT_NO_URL_CAST_FROM_STRING
|
||||
)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR})
|
||||
|
||||
file(GLOB ICONS_SRCS "data/icons/*.png")
|
||||
|
||||
option(ENABLE_PLUGIN_SSHMANAGER "Build the SSHManager plugin" ON)
|
||||
option(ENABLE_PLUGIN_QUICKCOMMANDS "Build the Quick Commands plugin" ON)
|
||||
|
||||
add_subdirectory( src )
|
||||
add_subdirectory( desktop )
|
||||
|
||||
if(HAVE_DBUS)
|
||||
add_subdirectory( kconf_update )
|
||||
endif()
|
||||
|
||||
if(KF6DocTools_FOUND)
|
||||
add_subdirectory( doc/manual )
|
||||
endif()
|
||||
|
||||
add_subdirectory( tools )
|
||||
|
||||
# Conditionally install icons for Linux as they may not be provided by the user theme
|
||||
option(INSTALL_ICONS "Install icons" OFF)
|
||||
if(INSTALL_ICONS)
|
||||
include(ECMInstallIcons)
|
||||
ecm_install_icons( ICONS ${ICONS_SRCS} DESTINATION ${KDE_INSTALL_ICONDIR} )
|
||||
endif()
|
||||
|
||||
ecm_qt_install_logging_categories(
|
||||
EXPORT KONSOLE
|
||||
FILE konsole.categories
|
||||
DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}"
|
||||
)
|
||||
|
||||
ki18n_install( po )
|
||||
if(KF6DocTools_FOUND)
|
||||
kdoctools_install( po )
|
||||
endif()
|
||||
|
||||
if(ECM_VERSION VERSION_GREATER_EQUAL 5.101.0)
|
||||
install(FILES completions/konsole.zsh RENAME _konsole DESTINATION ${KDE_INSTALL_ZSHAUTOCOMPLETEDIR})
|
||||
endif()
|
||||
|
||||
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
|
||||
|
||||
# add clang-format target for all our real source files
|
||||
file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.c *.cpp *.h *.hpp)
|
||||
kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
|
||||
if(ECM_VERSION VERSION_GREATER_EQUAL 5.79.0)
|
||||
kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
|
||||
endif()
|
||||
Reference in New Issue
Block a user