Age | Commit message (Collapse) | Author |
|
Git on Windows provides bash
|
|
With non-GNU tar, passing the --sort option may print out an
error message saying the option isn't supported; that's
confusing and not useful to the consumer.
|
|
|
|
This will prevent the macro definition of min and max which breaks
the use of std::min and std::max
|
|
Also add trigger to switch to KDE_COMPILERSETTINGS_LEVEL of latest
KDECompilerSettings on ECM dependency in KF modules to 5.85
NO_CHANGELOG
|
|
MO_CHANGELOG
|
|
Existing projects have muliple calls of find_package(ECM) and
include(KDECompilerSettings), usually in pairs, e.g. for forks of
3rd-party software or examples.
While this is not a recommnended setup, as there is no official
mechanism to properly reset previously created setings, those
existing projects and their releases can be supported by
discarding any auto-level values at the end of the include,
so the next can pick up again the value of any closer
find_package(ECM) call.
NO_CHANGELOG
|
|
Also print current values for more context
NO_CHANGELOG
|
|
No longer needed, also triggering wrong warning about
KDE_COMPILERSETTINGS_LEVEL value for 3rd-party users requiring older ECM
NO_CHANGELOG
|
|
GIT_SILENT
|
|
NO_CHANGELOG
|
|
GIT_SILENT
|
|
If no minimum ECM version is required, ECM_GLOBAL_FIND_VERSION is empty
and the version comparison fails.
Amends: 12af1e4e5
|
|
Checks if the compiler supports it and if so it enables it by default.
This is useful as it allows to perform internal linking operations at
build time that otherwise would have been delayed until process startup
time.
|
|
Has to wait until KF requires ECM 5.85.0
This reverts commit e6f87fa7427a2edde7dd8a47ace21011169d2650.
NO_CHANGELOG
|
|
NO_CHANGELOG
|
|
There is desire for having more strict compiler settings by default over
what the KDECompilerSettings have been declaring until now. This means
making more use of modern features usually and being less
tolerant about the use of deprecated ones.
While some projects have used KDEFrameworksCompilerSettings to get more
modern requirements by just a single macro include, that was not the
intent of that module, and now is also warned about in the docs.
Instead of adding a new separate dedicated module e.g. named
KDEStricterCompilerSettings, with a separate version scheme for sets
of strict settings, the existing KDECompilerSettings macro file is instead
extended as well as are the ECM versions reused to define the different
sets of settings. As these settings are getting more strict by the time,
e.g. allowing less of old & deprecated code, these sets are considered as
kind of levels.
To enable the clients to control the required settings level, a
dedicated variable KDE_COMPILERSETTINGS_LEVEL is introduced, which
for convenience defaults to the minimum required ECM version, so only
needs to be set when the need for other newer features provided by ECM
does not go along the settings level of that ECM version.
As some projects might have needs not exactly matching a certain settings
level, additionally the settings can be optionally individually
controlled by specific variables, to be set again before including
KDECompilerSettings.
|
|
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.
|
|
|
|
|