Age | Commit message (Collapse) | Author |
|
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.
|
|
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.
|
|
|
|
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
|
|
|
|
|
|
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
|
|
|
|
|
|
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.
|
|
|
|
|
|
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
|
|
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.
|
|
So far we were defining e.g. KSERVICESDIR next to KDE_INSTALL_KSERVICES5DIR
here, rather than the intended KDE_INSTALL_KSERVICESDIR.
|
|
|
|
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
|
SunOS and variants (Solaris, OpenSolaris, illumos, etc al.) do not need a separate library for inotify.
|
|
Might explain why the kcoreaddons CI isn't seeing ECM updates?
|
|
This enables forward-compatibility with KDEInstallDirs6.cmake
This was partly done already, but in the wrong order and not for all
versioned variables.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
This fixes an infinite recursion of KDEInstallDirs including
itself when QT_MAJOR_VERSION is not defined.
|
|
and use only KSERVICESDIR in KDEInstallDirs6.
|
|
|
|
|
|
+ adjust docu
|
|
|
|
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.
|
|
The description was a bit misleading and may have suggested that
ksvg2icons was required for @2x (Retina) icons to work.
|
|
|
|
|
|
|
|
This breaks older clang-format version :/
This reverts commit 81f70c9639154dcd067d73b0620767d8ba0362cf.
|
|
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.
|
|
|
|
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.
|
|
The relevant issue is only fixed in 23
|
|
Ensure /Zc:__cplusplus is passed when using newer C++ standards.
https://docs.microsoft.com/en-us/cpp/build/reference/zc-cplusplus?view=msvc-160
|
|
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
Should help catch errors like initializing a q-ptr with itself[1].
[1] https://invent.kde.org/frameworks/knewstuff/-/commit/d09ba1917cb7e035a9aac6c27c86fc4df5da3194
|
|
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.
|
|
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
|