aboutsummaryrefslogtreecommitdiff
path: root/modules
AgeCommit message (Collapse)Author
2021-04-25ECMGenerateExportHeader: unbreak builds by not mixing std & legacy attributesFriedrich W. H. Kossebau
NO_CHANGELOG BUG: 436155
2021-04-25ECMGenerateExportHeader: handle being included in C modeFriedrich W. H. Kossebau
NO_CHANGELOG
2021-04-25ECMGenerateExportHeader: check for non-vendor-specific deprecated attrFriedrich W. H. Kossebau
We want to know here if the standard attribute is available NO_CHANGELOG
2021-04-24Fix since version numbers for previous enumerator deprecation commitFriedrich W. H. Kossebau
NO_CHANGELOG
2021-04-24ECMGenerateExportHeader: add macros for enumerator deprecation warningFriedrich W. H. Kossebau
2021-04-23Modules docs: move rst docs into bracket commentsFriedrich W. H. Kossebau
CMake >= 3.0 supports bracket comments, and the reStructuredText integration code in sphinx/ext/ecm.py already supports extracting the docs from a bracket comment instead. Editing documentation without leading line comment markers is more simple, e,g. when reflowing text over lines. With ECM meanwhile requiring CMake 3.5 now it is possible to switch (and thus follow also the approach used by cmake itself). NO_CHANGELOG
2021-04-10Fix installation of qm files from po files in the build directoryVolker Krause
That's the case when using KDE_L10N_AUTO_TRANSLATIONS, and the code handles this case above when looking for the right po location already, but that result was accidentally discarded here.
2021-03-31ECMGenerateExportHeader: do sanity check for version argument valuesv5.81.0-rc2v5.81.0-rc1v5.81.0Friedrich W. H. Kossebau
To prevent accidental use of the C++-side hex number-style version variants on the cmake side where human-readable style is used instead (which can happen due to the similar names of the cmake variables/arguments and C++ macros which screws up developers' brain) we better do some proper input checks also on the arguments EXCLUDE_DEPRECATED_BEFORE_AND_AT and DEPRECATED_BASE_VERSION
2021-02-26Fix ECMCheckOutboundLicenseTest to find the FindReuseTool.cmake filev5.80.0-rc1v5.80.0Friedrich W. H. Kossebau
2021-02-22ecm_qt_declare_logging_category: support target arg to append source file toFriedrich W. H. Kossebau
2021-02-09Fix relative path edge case in ECMGeneratePriFileDaan De Meyer
When the qt install prefix and the qt host data path are the same, CMake's RELATIVE_PATH file path function will return the empty string. This made us accidentally set ECM_MKSPECS_INSTALL_DIR to /mkspecs/modules. Fix this by explicitly checking for the empty string. Once we can depend on CMake 3.20, we can use CMake's builtin function for joining paths instead.
2021-02-08Define relative paths when KDE_INSTALL_USE_QT_SYS_PATHS is enabledDaan De Meyer
When building multiple KDE projects, installing them to "$DESTDIR" and having cmake look for kde dependencies in "$DESTDIR" using "CMAKE_PREFIX_PATH=$DESTDIR/usr", we currently get failures when calling find_package() on projects that use KDE_INSTALL_QTPLUGINDIR, KDE_INSTALL_QTQMLDIR and KDE_INSTALL_QTQUICKIMPORTSDIR because these are defined as absolute paths when KDE_INSTALL_USE_QT_SYS_PATHS is enabled. This commit defines these paths relative to qmake's QT_INSTALL_PREFIX property instead when KDE is install to the same prefix as Qt. This fixes DESTDIR installations because with relative paths, CMake will search for these paths in "$DESTDIR" as well as "/". We limit this change to the scenario where the Qt and CMake install prefixes are the same because always doing this would break backwards compatibility as qml and plugins would be installed into CMAKE_INSTALL_PREFIX instead of QT_INSTALL_PREFIX after this change.
2021-01-31ECMQtDeclareLoggingCategory: fix typo in docuDavid Faure
GIT_SILENT
2021-01-17ECMQtDeclareLoggingCategory: create .categories files in build, not configureFriedrich W. H. Kossebau
Ensures that the files * are re-created by build rule when accidentally deleted in the build dir * are not getting new timestamps on every cmake run, even when content has not changed
2021-01-03ECMAddQCH: remove unused (and obsolete) COLS_IN_ALPHA_INDEX from configFriedrich W. H. Kossebau
COLS_IN_ALPHA_INDEX got obsolete in doxygen 1.9.0, besides not being used anyway due to ALPHABETICAL_INDEX being set to NO. Also remove IGNORE_PREFIX, unused as well due to ALPHABETICAL_INDEX=NO NO_CHANGELOG
2020-12-13Fix errors in python code, found by pylama in a strict CIDavid Faure
2020-12-07GIT_SILENT remove debugging for Windows CIDavid Faure
2020-12-07Another attempt to fix QT_PLUGIN_PATH for tests on WindowsDavid Faure
2020-12-06Windows: more double-quotes because of ';' in strings; debugging.David Faure
GIT_SILENT
2020-12-06Windows: fix QT_PLUGIN_PATH for tests by adding double-quotesDavid Faure
Otherwise the string (with ';' in it) is parsed as a list by cmake.
2020-12-06Attempt to fix kdav & purpose autotests on Windows CIDavid Faure
2020-10-14add missing minimum version for RENAME parameterHenri Chain
2020-09-26Include FeatureSummary and find modulesAndreas Cord-Landwehr
Required for module test to pass.
2020-09-26Introduce plausibility check for outbound licenesAndreas Cord-Landwehr
When creating a library or executable, several source files are combined into a binary artifact that has an outbound license of its own. This test generator allows to check if the combined source files are compatible with the desired outbound license. Requirements for using these tests: - input source files must contain the SPDX-License-Information tag - python3 must be available - the "reuse spdx" tool must be available
2020-09-24Release CheckAtomic.cmake with 5.75.0Sandro Knauß
2020-09-24Update CheckAtomic.cmake from llvm.Sandro Knauß
As CheckAtomic.cmake is a copy and we need to keep sync. a348de480d34257ffe394ab51b880c9aef243d80 Date: 04/18/2020 repo: https://github.com/llvm/llvm-project file: /llvm/cmake/modules/CheckAtomic.cmake
2020-09-24Add CheckAtomic.cmakeSandro Knauß
Application need to test, if they need to build against atomic libray. In order to not duplicate the code over and over again, let's have one version in ecm.
2020-09-18add RENAME parameter to ecm_generate_dbus_service_fileHenri Chain
2020-08-30Strip leading zeros from numerical version numbers in C++ codev5.74.0-rc1v5.74.0Volker Krause
Our August releases produce invalid octal numbers ("08") otherwise.
2020-08-29Add timeout for qmlplugindump callsNicolas Fella
qmlplugindump sometimes hangs forever and thus blocks a build. Setting an (arguably arbitrary) timeout works around that.
2020-07-10Fix reST list from not being a listivan tkachenko
2020-07-10Revert "Fix markdown list from not being a list"ivan tkachenko
This reverts commit 3830dde78f9bde7ebe01fddca49d5806d4e52bea.
2020-07-10fix license headersHenri Chain
2020-07-10Add ecm_generate_dbus_service_fileHenri Chain
Summary: It serves as a replacement for `kdbusaddons_generate_dbus_service_file`. An application can be a DBus-activated service just fine without using KDBusAddons. Moreover, this new module uses named arguments for future-proofing, and adds support for specifying a `SystemdService`. It also cleans up the confusion on what the "path" is about: Rather than requiring to specify executable and path separately, we just extract the executable file name on Windows, if necessary. Usage: ``` ecm_generate_dbus_service_file(NAME org.kde.kded5 EXECUTABLE ${KDE_INSTALL_FULL_BINDIR}/kded5 SYSTEMD_SERVICE plasma-kded) ``` Test Plan: * Was able to generate a kded service file * Was able to generate a kded service file with `SystemdUnit` * Verified that it moaned when executable wasn't an absolute path * Untested on Windwos Reviewers: #frameworks, davidedmundson, kossebau, kfunk, habacker Subscribers: kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D29051
2020-07-10Introduce function ecm_install_configured_fileDavid Edmundson
Summary: This, as the name suggests, configures a file and installs it. It's not very complicated but it's a repeated pattern in plasma that gets quite messy dealing with temporary files. Test Plan: Used in a project Reviewers: #build_system Subscribers: apol, kossebau, pino, kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D28355
2020-07-01Fix Sphinx warning about cmake code blockv5.72.0-rc1v5.72.0ivan tkachenko
Lexer for CMake could not parse this broken grammar, because it is ".cmake.in", not just ".cmake". CMake itself solves this problems by declaring such code blocks as generic "::" blocks instead. For example, take a look at the last code block at CMakePackageConfigHelpers help page: - https://cmake.org/cmake/help/v3.18/module/CMakePackageConfigHelpers.html#example-generating-package-files - https://github.com/Kitware/CMake/blob/0464298956a204578aa8421ca0b84c089a97e0aa/Modules/CMakePackageConfigHelpers.cmake#L208
2020-06-24Remove support for png2icoHannah von Reth
Png2Ico provides lower quality icons compared to icoutils as png2ico predates the current icon standard. Still lloking for png2ico prints * Png2Ico, Executable that converts a collection of PNG files into a Windows icon file, <https://www.winterdrache.de/freeware/png2ico/ or https://commits.kde.org/kdewin> which confuses new users.
2020-06-23Fix markdown list from not being a listivan tkachenko
2020-06-14extra-cmake-modules: Convert to SPDX license statementsAndreas Cord-Landwehr
2020-05-13ECMGenerateExportHeader: add generation of *_DEPRECATED_VERSION_BELATED()Friedrich W. H. Kossebau
Summary: Now and then tagging some API as deprecated for the compiler is forgotten. Doing this retractivitly in newer versions but using the official version might break build setups configured to only show warnings up to a certain version and otherwise fail a build, using -Werror=deprecated-declarations. To allow retroactive tagging of API for compiler warnings, and showing the official version in the warniung message, while reacting only to warning controls for the current version where the tag is added, avoids any such annoying experiences, without wrong version info at the same time. Reviewers: #frameworks, #build_system, dfaure Reviewed By: dfaure Subscribers: kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D29573
2020-05-08ECMGeneratePriFile: fix for ECM_MKSPECS_INSTALL_DIR being absoluteDavid Faure
Test Plan: works as before for the case where it's relative. Reviewers: cgiboudeaux, vatra, kfunk, apol, vkrause Reviewed By: cgiboudeaux Subscribers: kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D29524
2020-05-08ECMGeneratePriFile: make the pri files relocatableDavid Faure
Summary: Instead of generating QT.KArchive.includes = /full/path/include/KF5/KArchive make it QT.KArchive.includes = $$PWD/../../include/KF5/KArchive This makes the whole install prefix relocatable after the fact, the includes will be found based on where the .pri file ended up. This is especially useful for Conan support, says Bogdan. Test Plan: After make install in ECM, cd karchive/examples/helloworld && qmake && make Reviewers: vatra, kfunk, apol, vkrause Reviewed By: vkrause Subscribers: ablu, kossebau, kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D29274
2020-05-04Suppress find_package_handle_standard_args package name mismatch warning.Weng Xuetian
Summary: cmake introduced a new find_package mismatch check in 3.17, but also allows user to suppress the warning by setting a variable (Or parameter, but require new cmake 3.17). Same technique is also used with in cmake, e.g. FindGTK2.cmake. Test Plan: Test with FindXCB.cmake Reviewers: #frameworks, #build_system, apol Reviewed By: apol Subscribers: apol, kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D29396
2020-04-26ECMAddQch: fix use of quotation marks with PREDEFINED in doxygen configFriedrich W. H. Kossebau
2020-04-19ECMAddQch: help doxygen to handle Q_DECLARE_FLAGS, so such types get docsFriedrich W. H. Kossebau
2020-02-26Load QM files from assets: URLs on AndroidVolker Krause
Summary: This works with both the old and the new way of Qt's asset deployment, ie. with Qt 5.13 and Qt 5.14. Reviewers: apol Reviewed By: apol Subscribers: apol, kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Maniphest Tasks: T12520 Differential Revision: https://phabricator.kde.org/D27596
2020-02-12ECMQtDeclareLoggingCategory: gently deal with no categories exportedFriedrich W. H. Kossebau
With some build configurations no catgories might be registered for a given export id. Instead of failing hard and thus forcing to catch this situation explicitly on the caller side, be grateful on the callee side and just generate an empty file, so the installed file set is consistent. GIT_SILENT
2020-02-11ECMQtDeclareLoggingCategory: use older NAME_WE with get_filename_componentFriedrich W. H. Kossebau
NAME_WLE might be more nice to support any people who might want to use a dot in the base filename, but that needs newer cmake. GIT_SILENT
2020-02-11Add ecm_qt_install_logging_categories & ecm_qt_export_logging_categoryFriedrich W. H. Kossebau
Summary: Having to manually maintain a separate copy of all the data about qt logging categories in the categories files comes with the usual disadvantages. The new macro ecm_qt_install_logging_categories together with the additions of arguments DESCRIPTION & EXPORT to ecm_qt_declare_logging_category allows to have just one place with one copy of the data, and have the categories file automatically generated from that data, linked via the EXPORT id. For cases not using ecm_qt_declare_logging_category, but having categories manually defined in code, yet wanting to have info about those categories in the installed fiel, ecm_qt_export_logging_category allows to add those data to the system. Test Plan: Added unit tests work, porting of some repos created categories files whose diff against the manually created files were only the DO_NOT_EDIT header. Reviewers: #build_system, #frameworks, broulik, mlaurent Reviewed By: mlaurent Subscribers: kde-frameworks-devel, kde-buildsystem Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D27150
2020-02-08ECMGeneratePriFile: unbreak for usages with LIB_NAME not a target nameFriedrich W. H. Kossebau