Age | Commit message (Collapse) | Author |
|
Otherwise recent versions of git will complain with:
```
hint: The '.git/hooks/pre-commit' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`.
```
|
|
Some projects using KDECompilerSettings need more control about whether
this is set, as 3rd-party projects linked to might not meet those
requirements.
To be reworked and added later with consumer control options
|
|
We're a multi-compiler project, so disable compiler specific extensions
|
|
NO_CHANGELOG
|
|
|
|
But only for repos that require Frameworks 5.83 or newer.
We have asked on the KDE distributions mailing list and distro maintainers
didn't object to the change (since most distros already have recent enough
compilers).
|
|
to make build results deterministic
See https://reproducible-builds.org/ for why this is good.
related to
https://phabricator.kde.org/D25494
Without this patch, openSUSE's kio package varied in
/usr/share/kdevappwizard/templates/ioslave.tar
This PR was done while working on reproducible builds for openSUSE.
|
|
|
|
This check fixes a probably rare case, where we land in a repository
that contains this clang-format.sh hook but where the format file went
missing. In such cases, clang-format falls back to the system defaults,
which brings undesired defaults, e.g. enforced line breaks in comments
after 90 chars, which cannot easily be reverted by a reformat.
Since clang-format's --fallback-style=none option is not available for
git clang-format, this comment reimplements the logic.
|
|
- Remove deprecated version checks
- Use VERSION_GREATER_EQUAL
|
|
In case one has uninstalled the project, but has made local changes that
should be tested the test would fail. Instead check if the files exist
before adding them to the list of files that will be tested.
|
|
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
|
|
|
|
|
|
|
|
If we tell the compiler to link the runtime statically and then explicitly link
the dynamic runtime and prohibit the static we continue to produce dynamic
builds...
|
|
This matches most of the existing code in KDE; also note that Qt has the
same setting (also stating in a comment in their _clang-format that this
matching their existing code).
|
|
To prevent cmake errors with exiting usages it is checked if the target already exists.
|
|
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.
|
|
The --sort=name option was only added in version 1.28
which isn't available in Centos 7 yet e.g.
|
|
|
|
|
|
It was reported that in case of containerized setups where the
source and build are in different containers the pre-commit
script would reference a file which is another container and
is consequently not found.
To avoid this the script is copied in the source dir and a relative path is defined.
|
|
This makes it more difficult to implement the relative paths.
It would be nice to have, but if we encounter a scenario
where we explicitly need this we can revisit it.
|
|
|
|
|
|
This way we pass the regex on an actual URL that we may understand.
This is especially useful when url.insteadOf entries are specified in
~/.gitconfig.
|
|
|
|
|
|
This reverts commit a6be96a0c84b215de7f6fb397255af252adf7fc1.
|
|
To prevent cmake errors with exiting usages it is checked if the target already exists.
|
|
|
|
|
|
|
|
|
|
GIT_SILENT
|
|
This will allow us to force QS checks before
the developer commits a change. Currently only
clang-format is supported, but as on #plasma and
https://phabricator.kde.org/T11214 discussed we
might want to add different formatters.
By making the checks configurable we are flexible
and can easily extend it.
|
|
|
|
For GCC/Clang that is the default, but not for MSVC. This can cause both
compile-time and runtime errors when encountering string literals that
contain more than just 7bit ASCII.
Some of our modules set this already, others use various other workarounds
to avoid Utf-8 literals, so better do this consistently and centrally.
Qt6 will also set this by default.
This is actually Hannah's finding from debugging issues caused by this
in kitinerary, I'm just submitting the patch.
|
|
|
|
Before this value was 240, which can result in excessively long lines.
|
|
|
|
- Search for a suitable `tar` program
- Check version output if it's GNU tar
Since this function is typically run only once per repo,
there's not much point in doing extra cache work or writing
a separate find-module.
|
|
NO_CHANGELOG
|
|
|
|
Just like the app templates the file templates have a specific install
location.
Also the KTEMPLATESDIR is only used as a fallback, because it suggests
that all templates are in that dir, which is not true.
|
|
With this MR cmake gets rerun when the dirs/subdirs of the template change.
And by setting the `DEPENDS` property of the tar command to this list of the dirs/subdirs of the template we ensure that the command gets executed whenever the files change.
|
|
By default tar glues files in a random order together, this makes the
output non reproducible. In order to fix, produce a sorted output and
uniquify user/group and chmod.
|
|
This matters for libraries in the same repository as the application that
also have an AAR that needs to be integrated, as well as QML plugins. For
this to work we need to consider the build directory as a search prefix,
and produce the exact directory layout there that androiddeployqt expects.
For libraries this is then almost transparent for the application build
system, the only thing that needs to be taken care of manually is putting
the corresponding -android-dependencies.xml file into the right place in
the build dir as well. A macro wrapping that might be an option to
centralize that logic here as well in the future.
For QML plugins this is transparent if you have them set up to work without
installation already anyway, otherwise that setup has to be done for this
to work.
Example: https://invent.kde.org/pim/itinerary/-/merge_requests/28
https://invent.kde.org/frameworks/knotifications/-/merge_requests/12 would
presumably also need this (not tested yet).
|
|
1) remove AlignTrailingComments: true
=> this avoids multiline comment changes if e.g. one longer member/variable is added with comments behind it
2) add AllowShortLambdasOnASingleLine: Empty
=> avoid the uglification of lambdas
|