Age | Commit message (Collapse) | Author |
|
Some applications look for ECM and need to know Qt paths but
don't need to link to anything. That's the case for icons or
wallpapers.
For these cases, ECMQueryQt will first try to find qmake or
qtpaths before looking for Qt CMake config files.
Also handle cases where project() sets 'LANGUAGE' to 'NONE'.
The CXX language needs to be enabled for find_package to look
for Qt into library dirs.
|
|
|
|
If the tests use Qt we need to forward the Qt major version option
as well.
|
|
|
|
Which is a drop-in replacement, one just needs to replace query_qmake with
ecm_query_qt.
Copied the deprecation code from ECMQMLModules.cmake, saved a bit of
research time on how to do that in CMake.
|
|
|
|
Continuation of commit 4e47b053c9d799.
All unittests still pass.
|
|
By using ${CMAKE_COMMAND} we make sure the current cmake is used,
instead of relying that some cmake can be found in the path
|
|
It should be --extensions "cpp,h,hpp,c"; previously, I naively tested that
it didn't bother .json files, but I not if it'll actually trigger for e.g.
a .h file...
|
|
|
|
|
|
Basically copied ECMQueryQmake to ECMQueryQt, added copyright based
on git log, with the BSD 3-clause license; based on the contents of the
README.rst file at the initial commit (commit 96e7fb9969b7 by Rohan Garg) of
ECMQueryQmake, the README file says:
All code is licensed under the BSD 3-Clause license.
Will CC active devs in the MR and email Rohan Garg to confirm.
Then added qtpaths CMake code path, basically you can use query_qt with Qt5
(same syntax, so a drop-in replacement for query_qmake); and Qt6.
The plan is to deprecate ECMQueryQmake in favour of the new module (had to
be done that way as the old module had "qmake" in the name and that could
be a bit confusing).
|
|
and target
Previously the clang-format.sh git hook script didn't specify the file
extensions to format; however it looks like with recent(?) clang-format
versions 'git clang-format' will consider .json files if such files were
changed by a commit, which makes the script fail, see:
https://invent.kde.org/frameworks/extra-cmake-modules/-/merge_requests/254
Sepcify the file extensions by passing --extensions to 'git clang-format'
command.
Also add ".hpp" to the file extensions we format, and use the same list of
file extensions everywhere.
|
|
I hit this issue while building Kaidan using craft,
outside of the KDE Android docker container. Hopefully this is the
correct way to fix it.
|
|
|
|
If we are not tracking a specific branch, assume the remote is "origin"
which is git's default.
|
|
These are the variables that cmake will pass onto itself when doing a
try_compile, we need that because otherwise when trying to find iconv it
will issue a try compile, won't pass CMAKE_ANDROID_API so it will
default to 21 (instead eg the 28 we had given it) and the try_compile
will fail because android libc only has iconv after API 28
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This fixes KDEInstallDirsTest.relative_or_absolute_qt unittest.
|
|
- We don't need the Threads target workaround anymore, that breaks the
build with Qt6 even.
- The Gradle wrapper shipped with Qt is no longer installed as executable,
so we need to run this in sh explicitly.
- Qt6 uses a different Android Gradle plugin version (not to be confused
with the Gradle version), which we need to make available for the
configure_file() call on the build.gradle file.
With this most Framework modules build against Qt6 here.
|
|
|
|
Since KDEInstallDirs6 explicitly sets KDE_INSTALL_DIRS_NO_DEPRECATED to
false.
|
|
Otherwise, commits will be rejected because the hook cannot be found from the workdir root dir (there is only one .git directory in a checkout, but commands are run relative to the worktree root dir).
|
|
As outlined in https://reproducible-builds.org/docs/archives/ to ensure
that tarballs are reproducible, one should honour SOURCE_DATE_EPOCH.
In the case it's not, fallback to date +%s, set the mtime.
Delete atime and ctime completely. No idea if this is better or worse.
Based on the patch by: Brendan Tildesley <mail@brendan.scot>
From: https://bugs.kde.org/show_bug.cgi?id=443532
v2: Emil
- Split from larger patch
- Fallback to date +%s
v3: Emil
- $ENV{...} to evaluate the variable
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
|
|
In some build environments like in Guix, the GID of "root" is not
consistent.
With --numeric-owner, we only need to specify UID and GID, the user name
is unneeded, so set --owner=0 --group=0
Based on the patch by: Brendan Tildesley <mail@brendan.scot>
From: https://bugs.kde.org/show_bug.cgi?id=443532
v2: Emil
- Keep args reorder a separate commit
- Move time changes into separate commit
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
|
|
Split the arguments in separate lines, grouped appropriately.
No functional changes.
Suggested-by: @adridg
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
|
|
This reverts commit abc3a698abc0dfea19040007a7c57d04c3bb6865.
Unfortunately it caused various problems:
- Minimum cmake version for extra-cmake-modules does not contain the
required module
- Even with newer cmake it had issue with old policy that was not fixed
until very late that breaks packages using old policy
CCMAIL: kde-frameworks-devel@kde.org
|
|
Finding Qt6 tools without also finding any library component only works
in the COMPONENT form, see also MR !233.
Fixes issue #7
|
|
Fixes unit tests with Qt6 and identified the missing definition of the
full path variables for aliases.
|
|
Tests require a compiler, which the docs environment doesn't have.
|
|
|
|
Fixes a number of unit tests that rely on Qt in some form when using Qt6.
|
|
With this we are no longer skipping a bunch of tests when using Qt6.
This likely still misses forwarding the Qt option to the CMake calls of
the actual tests, but that's for a subsequent change.
|
|
If linker does not support the linker flag, do not enable it, on alpine
e.g. musl does not support the ASAN, if it is enabled unconditionally,
it will cause the linker to error out
|
|
There's a few modules relying on ECM_GLOBAL_FIND_VERSION being defined, so
set that. The exact value is less relevant here, it's mainly used for
deprecation warnings.
|
|
This is apparently needed for static QML plugins to work properly.
|
|
When the major version of a module is >1, Qt expects a .MajorVersion
suffix on the module path. Since we are already doing this for the
shared library install path, extract that code to a shared macro and
reuse it for the prefix path in the generated qrc.
|
|
|
|
With Qt6 that isn't always the case, for example in our Linux CI image.
Using -bsymbolic-function on the final executable in that case can result
in function pointer conntect or method/signal lookups to fail. This can be
observed in various unit test failures on the CI right now.
|
|
|
|
Should stop kdesrc-build saying:
"You had local changes to extra-cmake-modules, which have been re-applied."
GIT_SILENT
|
|
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.
|