Git commit 4a6797933710229417e436988e0cf5e6fbd183d0 by Laurent Montel. Committed on 09/06/2025 at 06:06. Pushed by mlaurent into branch 'master'.
Add pre-commit CI support A +95 -0 .clang-format-pre-commit M +1 -3 .gitlab-ci.yml A +59 -0 .pre-commit-config.yaml M +43 -17 CMakeLists.txt M +1 -1 LICENSES/GPL-2.0-or-later.txt A +19 -0 LICENSES/MIT.txt M +1 -2 Thoughts M +24 -24 doc/kontact/index.docbook M +0 -1 readme-build-ftime.txt M +69 -52 src/CMakeLists.txt M +2 -3 src/about/CMakeLists.txt M +0 -1 src/about/introduction_kontact.html M +0 -1 src/kontact-version.h.in https://invent.kde.org/pim/kontact/-/commit/4a6797933710229417e436988e0cf5e6fbd183d0 diff --git a/.clang-format-pre-commit b/.clang-format-pre-commit new file mode 100644 index 000000000..9b5ae0af2 --- /dev/null +++ b/.clang-format-pre-commit @@ -0,0 +1,95 @@ +--- +# SPDX-FileCopyrightText: 2019 Christoph Cullmann <[email protected]> +# SPDX-FileCopyrightText: 2019 Gernot Gebhard <[email protected]> +# +# SPDX-License-Identifier: MIT + +# This file got automatically created by ECM, do not edit +# See https://clang.llvm.org/docs/ClangFormatStyleOptions.html for the config options +# and https://community.kde.org/Policies/Frameworks_Coding_Style#Clang-format_automatic_code_formatting +# for clang-format tips & tricks +--- +Language: JavaScript +DisableFormat: true +--- +Language: Json +DisableFormat: false +IndentWidth: 4 +--- + +# Style for C++ +Language: Cpp + +# base is WebKit coding style: https://webkit.org/code-style-guidelines/ +# below are only things set that diverge from this style! +BasedOnStyle: WebKit + +# enforce C++11 (e.g. for std::vector<std::vector<lala>> +Standard: Cpp11 + +# 4 spaces indent +TabWidth: 4 + +# 2 * 80 wide lines +ColumnLimit: 160 + +# sort includes inside line separated groups +SortIncludes: true + +# break before braces on function, namespace and class definitions. +BreakBeforeBraces: Linux + +# CrlInstruction *a; +PointerAlignment: Right + +# horizontally aligns arguments after an open bracket. +AlignAfterOpenBracket: Align + +# don't move all parameters to new line +AllowAllParametersOfDeclarationOnNextLine: false + +# no single line functions +AllowShortFunctionsOnASingleLine: None + +# no single line enums +AllowShortEnumsOnASingleLine: false + +# always break before you encounter multi line strings +AlwaysBreakBeforeMultilineStrings: true + +# don't move arguments to own lines if they are not all on the same +BinPackArguments: false + +# don't move parameters to own lines if they are not all on the same +BinPackParameters: false + +# In case we have an if statement with multiple lines the operator should be at the beginning of the line +# but we do not want to break assignments +BreakBeforeBinaryOperators: NonAssignment + +# format C++11 braced lists like function calls +Cpp11BracedListStyle: true + +# do not put a space before C++11 braced lists +SpaceBeforeCpp11BracedList: false + +# remove empty lines +KeepEmptyLinesAtTheStartOfBlocks: false + +# no namespace indentation to keep indent level low +NamespaceIndentation: None + +# we use template< without space. +SpaceAfterTemplateKeyword: false + +# Always break after template declaration +AlwaysBreakTemplateDeclarations: true + +# macros for which the opening brace stays attached. +ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH, forever, Q_FOREVER, QBENCHMARK, QBENCHMARK_ONCE , wl_resource_for_each, wl_resource_for_each_safe ] + +# keep lambda formatting multi-line if not empty +AllowShortLambdasOnASingleLine: Empty + +# We do not want clang-format to put all arguments on a new line +AllowAllArgumentsOnNextLine: false diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3ab8c4371..27f6c937c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,12 +6,10 @@ include: file: - /gitlab-templates/linux-qt6.yml - /gitlab-templates/linux-qt6-next.yml - - /gitlab-templates/json-validation.yml - /gitlab-templates/freebsd-qt6.yml - /gitlab-templates/windows-qt6.yml - /gitlab-templates/craft-windows-x86-64-qt6.yml - /gitlab-templates/cppcheck.yml - - /gitlab-templates/clang-format.yml + - /gitlab-templates/pre-commit.yml - /gitlab-templates/craft-windows-appx-qt6.yml - - /gitlab-templates/xml-lint.yml - /gitlab-templates/yaml-lint.yml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..0fb98c45c --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,59 @@ +# SPDX-FileCopyrightText: none +# SPDX-License-Identifier: CC0-1.0 +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks + +exclude: (^po/|.desktop|Messages.sh) +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-added-large-files + - id: check-case-conflict + - id: check-xml + #- id: check-yaml + # args: [--allow-multiple-documents] + # exclude: ^(.clang-tidy) + - id: check-json + - id: check-symlinks + - id: destroyed-symlinks + - id: check-executables-have-shebangs + - repo: https://github.com/pre-commit/mirrors-clang-format + rev: v20.1.4 + hooks: + - id: clang-format + # force using this project's configuration rather + # than the one provided by CI + args: [--style=file:.clang-format-pre-commit] + - repo: https://github.com/astral-sh/ruff-pre-commit + # Ruff version. + rev: v0.11.9 + hooks: + # Run the linter. + - id: ruff + # Run the formatter. + - id: ruff-format + - repo: https://github.com/codespell-project/codespell + rev: v2.4.1 + hooks: + - id: codespell + exclude: (textemoticons/core/data/emoji.json|textgrammarcheck/grammalecte/autotests/data/result1.json|texttranslator/translator/plugins/bergamot/autotests/data/modellanguages/models.json|textgrammarcheck/languagetool/autotests/data/test2.json|textautocorrection/core/autotests/data/custom-fr-ref.xml|textgrammarcheck/common/autotests/grammarresultutiltest.cpp|textautocorrection/core/autotests/data/custom-fr.xml) + - repo: https://github.com/BlankSpruce/gersemi + rev: 0.19.3 + hooks: + - id: gersemi + - repo: https://github.com/DavidAnson/markdownlint-cli2 + rev: v0.18.1 + hooks: + - id: markdownlint-cli2 + files: \.(md|mdown|markdown)$ + - repo: https://github.com/scop/pre-commit-shfmt + rev: v3.11.0-1 + hooks: + - id: shfmt + - repo: https://github.com/shellcheck-py/shellcheck-py + rev: v0.10.0.1 + hooks: + - id: shellcheck diff --git a/CMakeLists.txt b/CMakeLists.txt index 95cad3fb7..1d2647ed2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ set(RELEASE_SERVICE_VERSION "25.07.40") # Use true if stable version => we will check specific version set(KONTACT_STABLE_VERSION false) - + # Update it for each release set(KONTACT_RELEASE_VERSION_DATE "25.07.10") # yy.MM.dd @@ -16,17 +16,28 @@ find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) include(ECMInstallIcons) - include(ECMSetupVersion) include(ECMAddTests) include(GenerateExportHeader) include(ECMGenerateHeaders) -include(KDEGitCommitHooks) -include(KDEClangFormat) file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES src/*.cpp src/*.h) -kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) +set(PRE_COMMIT_INSTALLED FALSE) +if(${CMAKE_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR}) + if(EXISTS "${PROJECT_SOURCE_DIR}/.git/hooks/pre-commit") + file(READ "${PROJECT_SOURCE_DIR}/.git/hooks/pre-commit" FILE_CONTENTS) + string(FIND "${FILE_CONTENTS}" "File generated by pre-commit" INDEX) + if(${INDEX} GREATER_EQUAL 0) + set(PRE_COMMIT_INSTALLED TRUE) + endif() + endif() +endif() +if(NOT ${PRE_COMMIT_INSTALLED}) + include(KDEGitCommitHooks) + include(KDEClangFormat) + kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) +endif() include(CheckFunctionExists) include(KDEInstallDirs) @@ -46,7 +57,9 @@ if(DEFINED KDEPIM_DEV_VERSION) set(KDEPIM_DEV_VERSION " ${KDEPIM_DEV_VERSION}") endif() -set(KDEPIM_VERSION "${PIM_VERSION}${KDEPIM_DEV_VERSION} (${RELEASE_SERVICE_VERSION})") +set(KDEPIM_VERSION + "${PIM_VERSION}${KDEPIM_DEV_VERSION} (${RELEASE_SERVICE_VERSION})" +) set(KONTACTINTERFACE_LIB_VERSION "6.4.40") set(PIMCOMMON_LIB_VERSION "6.4.40") @@ -54,8 +67,12 @@ set(PIMCOMMON_LIB_VERSION "6.4.40") set(KDEPIM_LIB_VERSION "${PIM_VERSION}") set(KDEPIM_LIB_SOVERSION "6") - -find_package(Qt6 ${QT_REQUIRED_VERSION} CONFIG REQUIRED DBus Widgets WebEngineWidgets) +find_package( + Qt6 + ${QT_REQUIRED_VERSION} + CONFIG + REQUIRED DBus Widgets WebEngineWidgets +) set(LIBKDEPIM_LIB_VERSION "6.4.40") set(LIBGRANTLEETHEME_LIB_VERSION "6.4.40") # Find KF6 package @@ -66,14 +83,18 @@ find_package(KF6Crash ${KF_MIN_VERSION} REQUIRED) find_package(KF6IconThemes ${KF_MIN_VERSION} REQUIRED) find_package(KF6GuiAddons ${KF_MIN_VERSION} REQUIRED) find_package(KF6DocTools ${KF_MIN_VERSION}) -set_package_properties(KF6DocTools PROPERTIES DESCRIPTION - "Tools to generate documentation" - TYPE OPTIONAL +set_package_properties( + KF6DocTools + PROPERTIES DESCRIPTION "Tools to generate documentation" TYPE OPTIONAL ) - # Find KdepimLibs Package -find_package(KPim6KontactInterface ${KONTACTINTERFACE_LIB_VERSION} CONFIG REQUIRED) +find_package( + KPim6KontactInterface + ${KONTACTINTERFACE_LIB_VERSION} + CONFIG + REQUIRED +) find_package(KPim6Libkdepim ${LIBKDEPIM_LIB_VERSION} CONFIG REQUIRED) find_package(KPim6GrantleeTheme ${LIBGRANTLEETHEME_LIB_VERSION} CONFIG REQUIRED) find_package(KPim6PimCommon ${PIMCOMMON_LIB_VERSION} CONFIG REQUIRED) @@ -82,9 +103,12 @@ include_directories(${kontact_SOURCE_DIR} ${kontact_BINARY_DIR}) add_definitions(-DQT_NO_CONTEXTLESS_CONNECT) ecm_set_disabled_deprecation_versions(QT 6.10.0 KF 6.15.0) - add_definitions(-DTRANSLATION_DOMAIN=\"kontact\") -option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF) +option( + USE_UNITY_CMAKE_SUPPORT + "Use UNITY cmake support (speedup compile time)" + OFF +) set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF) if(USE_UNITY_CMAKE_SUPPORT) @@ -96,8 +120,10 @@ ecm_qt_install_logging_categories( EXPORT KONTACT FILE kontact.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} - ) -kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) +) +if(DEFINED kde_configure_git_pre_commit_hook) + kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) +endif() ki18n_install(po) if(KF6DocTools_FOUND) kdoctools_install(po) diff --git a/LICENSES/GPL-2.0-or-later.txt b/LICENSES/GPL-2.0-or-later.txt index 1d80ac365..96e2bf1e9 100644 --- a/LICENSES/GPL-2.0-or-later.txt +++ b/LICENSES/GPL-2.0-or-later.txt @@ -2,7 +2,7 @@ GNU GENERAL PUBLIC LICENSE Version 2, June 1991 -Copyright (C) 1989, 1991 Free Software Foundation, Inc. +Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt new file mode 100644 index 000000000..204b93da4 --- /dev/null +++ b/LICENSES/MIT.txt @@ -0,0 +1,19 @@ +MIT License Copyright (c) <year> <copyright holders> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Thoughts b/Thoughts index 8a294fbb5..7a90ec332 100644 --- a/Thoughts +++ b/Thoughts @@ -234,7 +234,7 @@ Don: the container. Eg. if the parts want to add folders to the container Don: apps folder tree (or navigator) Don: Don: And maybe for communicating with the status bar. - + Communication/Interaction: ========================== @@ -372,4 +372,3 @@ h: to get a summary widget for a day? h: b) use some sort of XML to UI to represent the summary information h: c) have a stand a lone part which opens the PIM data separately? ( How h: to synchronize access? ) - diff --git a/doc/kontact/index.docbook b/doc/kontact/index.docbook index fa331ac7a..060ff4768 100644 --- a/doc/kontact/index.docbook +++ b/doc/kontact/index.docbook @@ -174,7 +174,7 @@ Normal, or Small icons, as well as the option to use text only instead of icons.</para> <para>If you dislike the Side Pane, you can simply hide it by dragging the -splitter. An alternative navigation between parts is provided by the +splitter. An alternative navigation between parts is provided by the <guilabel>Navigator</guilabel> toolbar, which can be freely positioned. See <xref linkend="bars" /> for more on the <guilabel>Navigator</guilabel> toolbar.</para> @@ -211,7 +211,7 @@ icon in the Side Pane indicates to which application the Main View belongs. <para>In addition, there are two ways of overriding the component that &kontact; starts with. The first is supplying an argument to the &kontact; program call (see <xref linkend="command-line"/>). The second is a setting in the -&kontact; Settings dialog that will allow you to always start &kontact; in a +&kontact; Settings dialog that will allow you to always start &kontact; in a certain mode.</para> <para>To get to it, go to <menuchoice><guimenu>Settings</guimenu> @@ -344,7 +344,7 @@ object.</para> <sect1 id="side-pane-drag-and-drop"> <title>Drag and Drop Functionality</title> -<para>&kontact; provides advanced drag and drop functionality between +<para>&kontact; provides advanced drag and drop functionality between the programs it contains. Following is a brief description of each of the specific drag and drop operations that can be used and the result of each.</para> @@ -353,14 +353,14 @@ result of each.</para> <title>&kmail; -> &korganizer; To-do List</title> <para> -Dragging a message from +Dragging a message from <ulink url="help:/kmail2/using-kmail.html#the-mail-reader-window">&kmail;'s Headers pane</ulink> -to the icon for &korganizer;'s To-do list +to the icon for &korganizer;'s To-do list (<guiicon><inlinemediaobject><imageobject> <imagedata fileref="todo-list-sidebar-icon.png" format="PNG"/> </imageobject></inlinemediaobject></guiicon>) -will create a new To-do with -<guilabel>Mail: <replaceable>Subject</replaceable></guilabel> as the title and +will create a new To-do with +<guilabel>Mail: <replaceable>Subject</replaceable></guilabel> as the title and <guilabel>From: <replaceable>Sender</replaceable> To: <replaceable>Receiver</replaceable> Subject: <replaceable>Subject</replaceable></guilabel> as the contents @@ -376,14 +376,14 @@ attachment. <title>&kmail; -> &korganizer; Calendar</title> <para> -Dragging a message from +Dragging a message from <ulink url="help:/kmail2/using-kmail.html#the-mail-reader-window">&kmail;'s Headers pane</ulink> to the icon for &korganizer;'s Calendar (<guiicon><inlinemediaobject><imageobject> <imagedata fileref="calendar-sidebar-icon.png" format="PNG"/> </imageobject></inlinemediaobject></guiicon>) -will create a new Event with -<guilabel>Mail: <replaceable>Subject</replaceable></guilabel> as the title and +will create a new Event with +<guilabel>Mail: <replaceable>Subject</replaceable></guilabel> as the title and <guilabel>From: <replaceable>Sender</replaceable> To: <replaceable>Receiver</replaceable> Subject: <replaceable>Subject</replaceable></guilabel> as the contents @@ -395,7 +395,7 @@ attachment. <para>Note that dragging onto the To-do button creates a To-do, whereas dragging onto the Calendar creates an Event. More on this -distinction is available in the +distinction is available in the <ulink url="help:/korganizer">&korganizer; documentation</ulink> </para> @@ -406,11 +406,11 @@ distinction is available in the <title>&kmail; -> &kaddressbook;</title> <para> -Dragging a message from +Dragging a message from <ulink url="help:/kmail2/using-kmail.html#the-mail-reader-window">&kmail;'s Headers pane</ulink> to the icon for &kaddressbook; (<guiicon><inlinemediaobject><imageobject> <imagedata - fileref="kaddressbook-sidebar-icon.png" + fileref="kaddressbook-sidebar-icon.png" format="PNG" /> </imageobject></inlinemediaobject></guiicon>) will create a contact from the email address of the sender, unless a contact with that name @@ -429,7 +429,7 @@ Dragging any number of entries from <ulink url="help:/kaddressbook/using-kaddressbook.html">&kaddressbook;'s main window</ulink> to the icon for &korganizer;'s To-do List (<guiicon><inlinemediaobject><imageobject> <imagedata - fileref="todo-list-sidebar-icon.png" + fileref="todo-list-sidebar-icon.png" format="PNG"/> </imageobject></inlinemediaobject></guiicon>) will create a new To-do with "Meeting" as the title and the selected contacts as @@ -438,7 +438,7 @@ attendees. <para>Note that dragging onto the To-do button creates a To-do, whereas dragging onto the Calendar creates an Event. More on this -distinction is available in the +distinction is available in the <ulink url="help:/korganizer">&korganizer; documentation</ulink> </para> @@ -453,7 +453,7 @@ Dragging any number of entries from <ulink url="help:/kaddressbook/using-kaddressbook.html">&kaddressbook;'s main window</ulink> to the icon for &korganizer;'s Calendar (<guiicon><inlinemediaobject><imageobject> <imagedata - fileref="calendar-sidebar-icon.png" + fileref="calendar-sidebar-icon.png" format="PNG"/> </imageobject></inlinemediaobject></guiicon>) will create a new Event with "Meeting" as the title and the selected contacts as @@ -462,7 +462,7 @@ attendees. <para>Note that dragging onto the To-do button creates a To-do, whereas dragging onto the Calendar creates an Event. More on this -distinction is available in the +distinction is available in the <ulink url="help:/korganizer">&korganizer; documentation</ulink> </para> @@ -930,7 +930,7 @@ communicate effectively with various groupware solutions. <para> In the &kontact; configuration dialog, under <menuchoice><guimenu>Mail</guimenu> -<guimenuitem>Misc</guimenuitem></menuchoice> on the <guilabel>Invitations</guilabel> page +<guimenuitem>Misc</guimenuitem></menuchoice> on the <guilabel>Invitations</guilabel> page you will find the following options that will help the user communicate with Microsoft Outlook(tm) running in a Kolab environment or in a Microsoft Exchange(tm) environment. @@ -943,13 +943,13 @@ Microsoft Exchange(tm) environment. <listitem> <para>Enable this option to make Microsoft Outlook(tm) understand your answers to invitation replies.</para> <para>Microsoft Outlook has a number of shortcomings in its implementation of -the iCalendar standard; this option works around one of them. If you +the iCalendar standard; this option works around one of them. If you have problems with Outlook users not being able to get your replies, try setting this option.</para> -<para>Details: When mailing an iCal invitation this makes the message have +<para>Details: When mailing an iCal invitation this makes the message have the From: header the same as the To: header. It also sets header X-KMail-Identity to the To:'s UIOD and makes sure the BCC: is blank. -Outlook will only understand the reply if the From: header is +Outlook will only understand the reply if the From: header is the same as the To: header of the invitation message.</para> </listitem> </varlistentry> @@ -1006,7 +1006,7 @@ containing non-English characters.</para> <title>Behavioral Issues</title> <para> -This section provides instructions on how to make &kontact; +This section provides instructions on how to make &kontact; behave more like other groupware clients. </para> @@ -1019,7 +1019,7 @@ CC: or BCC: fields separated by a semicolon (';') character in addition to a comma (','). By default, &kontact; only allows the comma as an address separator character. To also allow the semicolon, change the <option>AllowSemicolonAsAddressSeparator</option> from false to true -in the installed <filename>share/config.kcfg/messagecomposer.kcfg</filename> file. +in the installed <filename>share/config.kcfg/messagecomposer.kcfg</filename> file. </para> </sect2> @@ -1044,7 +1044,7 @@ the low-levels libraries used by &kontact;:</para> <listitem> <para> When writing duration values into iCalendar files, &kontact; never -writes the DURATION property in terms of weeks (i.e., 1*DIGIT "W"); +writes the DURATION property in terms of weeks (i.e., 1*DIGIT "W"); instead, the integer number of weeks is always multiplied by 7 and written in terms of days (i.e. 1*DIGIT "D"). </para> diff --git a/readme-build-ftime.txt b/readme-build-ftime.txt index 833cfa009..b931a1804 100644 --- a/readme-build-ftime.txt +++ b/readme-build-ftime.txt @@ -23,4 +23,3 @@ ClangBuildAnalyzer --analyze build-ftime.txt > analyze-build-ftime.txt see https://aras-p.info/blog/2019/09/28/Clang-Build-Analyzer/ - diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 746b84317..32b4aaa61 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,72 +1,79 @@ -configure_file(kontact-version.h.in ${CMAKE_CURRENT_BINARY_DIR}/kontact-version.h @ONLY) +configure_file( + kontact-version.h.in + ${CMAKE_CURRENT_BINARY_DIR}/kontact-version.h + @ONLY +) configure_file(config-kontact.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-kontact.h) add_subdirectory(about) add_library(kontactprivate) ########### next target ############### -target_sources(kontactprivate PRIVATE - webengine/introductionwebenginepage.cpp - webengine/introductionwebengineview.cpp - mainwindow.cpp - sidepanebase.cpp - iconsidepane.cpp - ksettingsdialog/kontactkcmultidialog.cpp - ksettingsdialog/kontactsettingsdialog.cpp - kontactconfiguredialog.cpp - webengine/introductionwebenginepage.h - webengine/introductionwebengineview.h - mainwindow.h - sidepanebase.h - iconsidepane.h - ksettingsdialog/kontactkcmultidialog.h - ksettingsdialog/kontactsettingsdialog.h - ksettingsdialog/kontactkcmultidialog_p.h - ksettingsdialog/kontactsettingsdialog_p.h - kontactconfiguredialog.h - kontact.qrc - ) +target_sources( + kontactprivate + PRIVATE + webengine/introductionwebenginepage.cpp + webengine/introductionwebengineview.cpp + mainwindow.cpp + sidepanebase.cpp + iconsidepane.cpp + ksettingsdialog/kontactkcmultidialog.cpp + ksettingsdialog/kontactsettingsdialog.cpp + kontactconfiguredialog.cpp + webengine/introductionwebenginepage.h + webengine/introductionwebengineview.h + mainwindow.h + sidepanebase.h + iconsidepane.h + ksettingsdialog/kontactkcmultidialog.h + ksettingsdialog/kontactsettingsdialog.h + ksettingsdialog/kontactkcmultidialog_p.h + ksettingsdialog/kontactsettingsdialog_p.h + kontactconfiguredialog.h + kontact.qrc +) ecm_qt_declare_logging_category(kontactprivate HEADER kontact_debug.h IDENTIFIER KONTACT_LOG CATEGORY_NAME org.kde.pim.kontact DESCRIPTION "kontact (kontact application)" OLD_CATEGORY_NAMES log_kontact EXPORT KONTACT - ) +) kconfig_add_kcfg_files(kontactprivate prefs.kcfgc) - if(COMPILE_WITH_UNITY_CMAKE_SUPPORT) set_target_properties(kontactprivate PROPERTIES UNITY_BUILD ON) endif() generate_export_header(kontactprivate BASE_NAME kontact) -target_link_libraries(kontactprivate - PUBLIC - KF6::IconThemes +target_link_libraries( + kontactprivate + PUBLIC KF6::IconThemes PRIVATE - KF6::KCMUtils - KF6::I18n - KF6::KIOWidgets - KPim6::KontactInterface - KF6::GuiAddons - KPim6::Libkdepim - KPim6::PimCommon - KPim6::GrantleeTheme - Qt::WebEngineWidgets - ) - -set_target_properties(kontactprivate PROPERTIES - VERSION ${KDEPIM_LIB_VERSION} - SOVERSION ${KDEPIM_LIB_SOVERSION} - ) + KF6::KCMUtils + KF6::I18n + KF6::KIOWidgets + KPim6::KontactInterface + KF6::GuiAddons + KPim6::Libkdepim + KPim6::PimCommon + KPim6::GrantleeTheme + Qt::WebEngineWidgets +) + +set_target_properties( + kontactprivate + PROPERTIES VERSION ${KDEPIM_LIB_VERSION} SOVERSION ${KDEPIM_LIB_SOVERSION} +) -install(TARGETS kontactprivate ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} LIBRARY NAMELINK_SKIP) +install( + TARGETS kontactprivate ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} + LIBRARY NAMELINK_SKIP +) ########### next target ############### - file(GLOB icons "${CMAKE_CURRENT_SOURCE_DIR}/icons/*-apps-kontact.png") ecm_add_app_icon(kontact_bin_SRCS ICONS ${icons}) @@ -75,14 +82,15 @@ target_sources(kontact_bin PRIVATE main.cpp kontact_debug.cpp) set_target_properties(kontact_bin PROPERTIES OUTPUT_NAME kontact) -target_link_libraries(kontact_bin +target_link_libraries( + kontact_bin kontactprivate KF6::I18n KPim6::KontactInterface KF6::Crash Qt::DBus KF6::IconThemes - ) +) if(COMPILE_WITH_UNITY_CMAKE_SUPPORT) set_target_properties(kontact_bin PROPERTIES UNITY_BUILD ON) endif() @@ -91,24 +99,33 @@ install(TARGETS kontact_bin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) ########### next target ############### add_library(kcm_kontact MODULE kcmkontact.cpp kcmkontact.h) -target_link_libraries(kcm_kontact +target_link_libraries( + kcm_kontact KF6::I18n KF6::KCMUtils KPim6::Libkdepim kontactprivate KF6::KIOWidgets KPim6::KontactInterface - ) +) -install(TARGETS kcm_kontact DESTINATION ${KDE_INSTALL_PLUGINDIR}/pim6/kcms/kontact) +install( + TARGETS kcm_kontact + DESTINATION ${KDE_INSTALL_PLUGINDIR}/pim6/kcms/kontact +) ########### install files ############### install(PROGRAMS data/org.kde.kontact.desktop DESTINATION ${KDE_INSTALL_APPDIR}) -install(FILES data/org.kde.kontact.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) +install( + FILES data/org.kde.kontact.appdata.xml + DESTINATION ${KDE_INSTALL_METAINFODIR} +) install(FILES kontact.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) configure_file(data/org.kde.kontact.service.in org.kde.kontact.service) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kontact.service DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR}) +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/org.kde.kontact.service + DESTINATION ${KDE_INSTALL_DBUSSERVICEDIR} +) add_subdirectory(icons) - diff --git a/src/about/CMakeLists.txt b/src/about/CMakeLists.txt index d6909e9fb..75d45da8a 100644 --- a/src/about/CMakeLists.txt +++ b/src/about/CMakeLists.txt @@ -1,5 +1,4 @@ -install(FILES - introduction_kontact.html - loading_kontact.html +install( + FILES introduction_kontact.html loading_kontact.html DESTINATION ${KDE_INSTALL_DATADIR}/messageviewer/about/default ) diff --git a/src/about/introduction_kontact.html b/src/about/introduction_kontact.html index f384d25cd..ab6a6a70c 100644 --- a/src/about/introduction_kontact.html +++ b/src/about/introduction_kontact.html @@ -36,4 +36,3 @@ <span><a href="exec:/switch">{% i18n "Skip this introduction" %}</a></span> {% endblock box %} - diff --git a/src/kontact-version.h.in b/src/kontact-version.h.in index 24493bd26..91f019fb9 100644 --- a/src/kontact-version.h.in +++ b/src/kontact-version.h.in @@ -17,4 +17,3 @@ #pragma once #define KONTACT_VERSION "@KDEPIM_VERSION@" -
