Age | Commit message (Collapse) | Author |
|
|
|
|
|
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.
|
|
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.
|
|
GIT_SILENT
|
|
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
|
|
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
|
|
|
|
|
|
|
|
GIT_SILENT
|
|
Otherwise the string (with ';' in it) is parsed as a list by cmake.
|
|
|
|
|
|
Required for module test to pass.
|
|
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
|
|
|
|
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
|
|
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.
|
|
|
|
Our August releases produce invalid octal numbers ("08") otherwise.
|
|
qmlplugindump sometimes hangs forever and thus blocks a build. Setting an (arguably arbitrary) timeout works around that.
|
|
|
|
This reverts commit 3830dde78f9bde7ebe01fddca49d5806d4e52bea.
|
|
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
|
|
|
|
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
|
|
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
|
|
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
|
|
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
|
|
|
|
|
|
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
|
|
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
|
|
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
|
|
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
|
|
|
|
Summary:
Populate module_config with staticlib. This is needed for Qt 5.12, as
Makefiles contain the full path to the library instead of just the base
name. QMake needs to be aware of the build type. This issue was found in
KDStateMachineEditor's .pri files.
Before this patch the linker tried to link against .so files even for
static libraries.
Note: Probably not very relevenat to KDE Frameworks (since it's all
about shared libraries, but I'd like to keep the original
ECMGeneratePriFile version up-to-date)
Compare:
```
% cat kdsme-qmake-test.pro
QT += KDSMEDebugInterfaceSource
!qtHaveModule(KDSMEDebugInterfaceSource): warning("Library not found")
SOURCES += main.cpp
% qmake --version
QMake version 3.1
Using Qt version 5.9.8 in /home/kfunk/devel/build/qt5.9/qtbase/lib
% qmake .
% make
...
g++ -Wl,-rpath,/home/kfunk/devel/build/qt5.9/qtbase/lib ... -L.../lib -lkdstatemachineeditor_debuginterfacesource ...
% make clean
% env-qt5.12
% qmake --version
QMake version 3.1
Using Qt version 5.12.5 in /home/kfunk/devel/build/qt5.12/qtbase/lib
% qmake .
% make
...
g++ -Wl,-rpath,/home/kfunk/devel/build/qt5.12/qtbase/lib ... .../lib/libkdstatemachineeditor_debuginterfacesource.a ...
Reviewers: dfaure, winterz, vkrause, apol
Reviewed By: apol
Subscribers: kde-frameworks-devel, kde-buildsystem
Tags: #frameworks, #build_system
Differential Revision: https://phabricator.kde.org/D26394
|
|
Summary: Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
Reviewers: tcanabrava, apol
Reviewed By: tcanabrava, apol
Subscribers: kde-frameworks-devel, kde-buildsystem
Tags: #frameworks, #build_system
Differential Revision: https://phabricator.kde.org/D26751
|
|
|
|
Summary: Correct spelling in extra-cmake-modules comments.
Reviewers: apol
Reviewed By: apol
Subscribers: kde-frameworks-devel, kde-buildsystem
Tags: #frameworks, #build_system
Differential Revision: https://phabricator.kde.org/D25752
|
|
Summary:
The original intention has been that by default during the build of a
library no warnings should be emitted on using own deprecated API,
as for one that has to be implemented as well as often deprecated API
is implemented using other deprecated API, so the warnings are not
helpful, and having to add lots of push/pop warnings instructions
in the code for the compiler harms readability more than it helps
ensuring to only use deprecated API where one has to.
The original intention was satisfied due to the default mechanism in the
generated export header code, where DEPRECATED_WARNINGS_SINCE if not set
defaults to DISABLE_DEPRECATED_BEFORE_AND_AT. That though breaks once
the group version of DEPRECATED_WARNINGS_SINCE is set in the build, as
this default has higher priority by design, even if the usage here only
wants to target dependency libs of the same group, not the current library.
To restore the intented default behaviour, by default
DEPRECATED_WARNINGS_SINCE is now explicitely set for the library build
itself to the EXCLUDE_DEPRECATED_BEFORE_AND_AT value, and a new macro
option allows to disable this.
Reviewers: #build_system, #frameworks, dfaure
Reviewed By: dfaure
Subscribers: kde-frameworks-devel, kde-buildsystem
Tags: #frameworks, #build_system
Differential Revision: https://phabricator.kde.org/D25589
|
|
GIT_SILENT
|
|
GIT_SILENT
|
|
|