aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-01-18Rename ECMQMLModules.cmake to ECMFindQmlModule.cmakeArjen Hiemstra
To avoid ambiguity with ECMQmlModule.cmake. To preserve backward compatibility, we keep a version around of ECMQMLModules.cmake that warns a user of it being moved and includes the new file.
2022-01-18Introduce ECMQmlModule.cmakeArjen Hiemstra
This contains some helper functions to make it easier to create QML modules through CMake. It takes care of several things that currently need to be done manually. It adds four tests for the four primary ways that it can be used, either as shared/static library and with or without C++ plugin.
2022-01-17build docs as normal artifact instead of pagesFrederik Schwarzer
2022-01-09Rename KDEDeprecationSettings to ECMDeprecationSettingsAlexander Lohnau
Semantically this is an ECM module, because it can be used to manage deprecated Qt API and from any project which use ecm_generate_export_headers
2022-01-08GIT_SILENT Upgrade ECM version to 5.91.0.l10n daemon script
2022-01-05Add Linux Qt6 CIVolker Krause
2022-01-04Add ecm_set_deprecation_versions cmake functionAlexander Lohnau
This will make setting the deprecation versions easier, otherwise one would need to edit the hex value. It also helps to keep the required versions and deprecation versions in sync. Also this allows one to keep the deprecation warnings, when one excludes deprecations for a specific version. Additionally the deprecation version can be overwritten by a cmake parameter. This will make local testing easier, because one does not need to edit the CMakeLists.txt files. Task: https://phabricator.kde.org/T15109
2022-01-03create docs only for tagsFrederik Schwarzer
2022-01-02add docs build to CIFrederik Schwarzer
2022-01-02Add compile-command.json to .gitignoreAhmad Samir
There are CMake LSP servers out there, so having a compile_commands.json in ECM dir could happen. Also happens if you're using a script that adds that file.
2021-12-29Add support for finding Poppler's Qt6 libraryv5.90.0-rc1v5.90.0Volker Krause
2021-12-27Add support for finding Qt6 QML modulesVolker Krause
2021-12-19Revert "Fix QT_PLUGIN_PATH for unittests"Ahmad Samir
As discussed in [1], it's simpler to put the files in builddir/bin/, i.e. no /plugins subdir, this makes it easier to run the unittest directly from the CLI/debugger/IDE, without relying on ctest exporting the correct QT_PLUGIN_PATH; instead QCoreApplication::libraryPaths() will pick up the plugins in e.g. builddir/bin/kf5/kio/ automatically. This will be followed by a change in KCoreAddons to remove the /plugins/ dir from the path in the builddir. [1] https://invent.kde.org/frameworks/extra-cmake-modules/-/merge_requests/213
2021-12-19Fix QT_PLUGIN_PATH for unittestsAhmad Samir
It was missing the "/plugins" suffix; found while building KIO with Qt6, where many unittests were failing with "couldn't create slave" for all slaves; the kio slaves are in builddir/bin/plugins/kf5/kio, and KPluginMetaData searches the directory "kf5/kio", and since it's a relative path, it assumes it's in the "plugins" dir. Keep the old behaviour for repos that put the plugins in builddir/bin/ directly without a "plugins" dir.
2021-12-18Add missing prefix to version-less install directory aliasesVolker Krause
So far we were defining e.g. KSERVICESDIR next to KDE_INSTALL_KSERVICES5DIR here, rather than the intended KDE_INSTALL_KSERVICESDIR.
2021-12-13GIT_SILENT Upgrade ECM version to 5.90.0.l10n daemon script
2021-12-09FindInotify.cmake: add target supportRosen Penev
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-12-06FindInotify.cmake: add support for SunOSRosen Penev
SunOS and variants (Solaris, OpenSolaris, illumos, etc al.) do not need a separate library for inotify.
2021-12-05Add CI for FreeBSD and AndroidVolker Krause
Might explain why the kcoreaddons CI isn't seeing ECM updates?
2021-12-05Define version-less install targets in KDEInstallDirs5.cmakeVolker Krause
This enables forward-compatibility with KDEInstallDirs6.cmake This was partly done already, but in the wrong order and not for all versioned variables.
2021-12-02GIT_SILENT: add missing licencesv5.89.0-rc1v5.89.0Laurent Montel
2021-12-01Include QtVersionOption before all Qt5 find_package callsVolker Krause
This doesn't make all these modules actually work with Qt6 yet, but it prevents them from unconditionally pulling in Qt5 in a Qt6 build. This is useful in order to even be able to pass a CMake run to the point one can port, test and debug the rest.
2021-11-30ECMGeneratePkgConfigFile: Add an URL parameterHeiko Becker
While porting a manual configure_file invocation for kactivities' .pc file to ecm_generate_pkgconfig_file I noticed that the URL keyword was missing afterwards.
2021-11-30Revert "If QT_MAJOR_VERSION is not defined, use 5"Volker Krause
There is no path out of QtVersionOption.cmake that would let QT_MAJOR_VERSION undefined, so this check is unnecessary. Worse, this doesn't actually check for QT_MAJOR_VERSION being defined, but whether a variable named after the content of the QT_MAJOR_VERSION variable is defined. That is always false, so this effectively forces Qt5 and breaks Qt6 support. This reverts commit 8fd79163a7c60386fbc94bc14ca4a3b0b29d7227.
2021-11-28If QT_MAJOR_VERSION is not defined, use 5Ivan Čukić
This fixes an infinite recursion of KDEInstallDirs including itself when QT_MAJOR_VERSION is not defined.
2021-11-23KDEInstallDirs5: set up KSERVICESDIR alias for KSERVICES5DIRDavid Faure
and use only KSERVICESDIR in KDEInstallDirs6.
2021-11-23KDEInstallDirs6: remove deprecated variables from the documentationDavid Faure
2021-11-23KDEInstallDirs6: comment out call to query_qmake, not definedDavid Faure
2021-11-23KDEInstallDirs6: don't set deprecated variable names anymoreDavid Faure
+ adjust docu
2021-11-23PLUGINDIR is based upon QTPLUGINDIR, so only define it after QTPLUGINDIRDavid Faure
2021-11-23Split KDEInstallDirs into a 5 and a 6 variantVolker Krause
This factors out large parts of the common code into separate modules, and adds a backward compatibility wrapper. The 6 variant drops some deprecated variables where possible, but otherwise is the same as the 5 variant. It still lacks a replacement for the paths depending on ECMQueryQMake though.
2021-11-18AddAppIcon: clarify ksvg2icns role for @2x iconsDawid Wrobel
The description was a bit misleading and may have suggested that ksvg2icons was required for @2x (Retina) icons to work.
2021-11-13GIT_SILENT Upgrade ECM version to 5.89.0.l10n daemon script
2021-11-08Add support for specifying private dependencies for pkg-config filesIngo Klöcker
2021-11-06FindEGL add 'lib' prefix for windows.Alexander Neumann
2021-10-25Revert "clang-format.cmake: Disable formatting for json files"v5.88.0-rc1v5.88.0Alexander Lohnau
This breaks older clang-format version :/ This reverts commit 81f70c9639154dcd067d73b0620767d8ba0362cf.
2021-10-24clang-format.cmake: Disable formatting for json filesAlexander Lohnau
This is only supported in the latest clang-format version. Having formatting enabled would cause it to complain about no rules being set for json files.
2021-10-24GIT_SILENT Fix check in prefix.sh.fish script if ENV vars are already setAlexander Lohnau
2021-10-21Fix Wayland_DATADIR when cross-compilingAlex Richardson
PKG_CONFIG_SYSROOT_DIR only applies to -I and -L flags, so pkg-config does not prepend CMAKE_SYSROOT when cross-compiling unless you pass --define-prefix explicitly. Therefore we have to manually do prepend it here when cross-compiling. See https://gitlab.kitware.com/cmake/cmake/-/issues/16647#note_844761. With this change I no longer get errors related to wayland.xml when cross-compiling KWaylandServer.
2021-10-13[android] Extend NDK workaround to version 22Nicolas Fella
The relevant issue is only fixed in 23
2021-10-10msvc: Fix __cplusplus valueAleix Pol
Ensure /Zc:__cplusplus is passed when using newer C++ standards. https://docs.microsoft.com/en-us/cpp/build/reference/zc-cplusplus?view=msvc-160
2021-10-09GIT_SILENT Upgrade ECM version to 5.88.0.l10n daemon script
2021-10-05Fix ECM on systems without PyQt5 on Python 2Nyan Pasu
2021-10-04ECMFindQMLModule: Use QT_HOST_BINS to find qmlplugindumpAlex Richardson
When cross-compiling QT_INSTALL_BINS contains binaries for the target system that can't be used during the build. Instead use QT_HOST_BINS which contains the Qt build tools for the current system.
2021-10-04FindQtWaylandScanner: Use QT_HOST_BINS to find qtwaylandscannerAlex Richardson
When cross-compiling QT_INSTALL_BINS contains binaries for the target system that can't be used during the build. Instead use QT_HOST_BINS which contains the Qt build tools for the current system.
2021-10-02ecm_add_test: add -DQT_FORCE_ASSERTS to compile flags by defaultAlex Richardson
While debugging a failing test (KProcessTest in KCoreAddons), I noticed that the Q_ASSERT() statements inside that test weren't being executed because RelWithDebInfo builds default to passing -DQT_NO_DEBUG. With this change the test I was debugging now asserts early instead of failing a QCOMPARE later on.
2021-09-29Add Gitlab CI configurationv5.87.0-rc1v5.87.0Ben Cooksley
2021-09-28Add -Werror=init-self to the default CMAKE_CXX_FLAGSAhmad Samir
Should help catch errors like initializing a q-ptr with itself[1]. [1] https://invent.kde.org/frameworks/knewstuff/-/commit/d09ba1917cb7e035a9aac6c27c86fc4df5da3194
2021-09-27Handle git remotes that aren't called origin in _repository_name()Alex Richardson
I was seeing `error: No such remote 'origin'` in the cmake output. This commit avoids hardcoding `origin` as the upstream URL and instead uses the `git rev-parse @{u}` to get the configured upstream. As a follow-up we may want to check if this should be executed by default, but for now this fixes a warning that I'm seeing with various projects.
2021-09-27Fix UDev URLivan tkachenko
Plain freedesktop.org 302-redirects to www.freedesktop.org. Also, fixes a warning during CMake generation step in plasma-desktop. See https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/572