- AppData and AppStream can be disabled independently of finding
their requirements (possibly useful if you want to ignore
AppStream even when it's installed in your build environment).
- Add a little top-level documentation about WITH_
- Add a FALLTHRU macro to annotate fallthrough situations in both
Clang and GCC,
- Annotate intentional fallthroughs.
- Add missing break which meant that the selection mode was
always multiple-selection.
- Require CMake 3.3 for the IN_LIST operator in if() statements
- It looks like Qt 5.12.2 (possibly earlier) supports a QLocale("eo")
so enable Esperanto if that Qt version or later is detected.
- Clang 8 can detect that there is no need for a return if all
previous paths already return. GCC 8 does not. Clang warns if
the unreachable return is there, GCC errors out if it isn't.
- Introduce a hack NOTREACHED that comments-out on Clang, and
marks as unreachable (but still present) on GCC.
- This might go away with an [[unreachable]] annotation or
similar.
- Although KDE CI onlt tests with Qt 5.10, and KPMCore 4 requires
Qt 5.10, Calamares is still ok with older Qt and KPMCore 3.3,
so drop the dependency back down again. This means, though, that
the code will build against a Qt version we don't usually test.
We're going to assume that Someone Else does the LTS-Qt testing
for us.
- If KPMCore is not found, don't require the KF5 components
that it would depend on.
- If ECM is found, use KDEInstallDirs always, not just when
the partitioning module is used.
- The auto-generated code produces a lot of warnings from
Clang 8; this obscures the more meaningful warnings from
actual Calamares code, so tone the warnings down.
- For Clang, set CALAMARES_MOC_OPTIONS.
- Add convenience CMake function for automoccing. It applies
the options as needed to a given target.
- Using project() to set up the version is idiomatic for CMake
and more standardised than doing it by hand. Do retain the
RC flag, because that's used in other parts of versioning.
- Add automatic tooling to retrieve translation stats and
output new CMake variable settings.
- If there are i18n language selection warnings, stop CMake.
When there are multiple modules doing a thing and it really only
makes sense to have one of them in a given Calamares compilation,
the USE_<foo> variables allow you to select one, while ignoring
all the other implementations. If USE_<foo> is not set, all
implementations are included (as usual).
- The examples files are not harmless, so distro's should take a
explicit decision to install the config examples (instead of
putting files in /etc/calamares).
Since this is a new language, it is currently 0% translated.
That is why it goes into _tx_bad. It will move to one of the
other categories once some translation has happened. Add the
(still empty) Transifex files already.
- This is only found in order to know where polkit files should
be installed. In distro's that don't use polkit, may as well
make it entirely optional.
- Follow previous move of user-adaptable settings and regularly-updated
variables to the top of CMakeLists.txt with a move of the list of
translated languages.
- Put all the options near the top, easy to spot when reading the file
- Put the settings that need regular updates, like version, near the top
- Add some "section headers"
I consider this a Qt bug: there is an enum value for the language,
the language is fully (?) detailed in the ICU tables, and yet
it gets mapped hard to C locale.
- The CMake modules for Calamares expect to find CMakeColors
- Also the translation support macro
- Restore CalamaresUse.cmake
- File was removed after 3.1 in db105079, but it is actually useful
for out-of-tree modules. Restore it and massage into better shape.
- Simplify by adding path to the search path (otherwise the individual
macro files would also have to switch to including with a full path).
Make a function out of explaining-skipped-modules, and call it
not only after collecting all the modules, but also after
the feature summary, so that it's quite clear which modules
are skipped.
- This is only a partial solution to warnings caused by third-party
code, since #including the headers from other sources won't apply
the warning-suppressions.
- Flags are not applied when building the source as part of a larger
target, but are on re-building just one object (it seems -- CMake
issue to track down).
Thanks to Kevin Kofler for pointing out what I'd forgotten about
source-file flags. While at it, introduce a generic mechanism for
suppressing warnings in third-party code.
Mostly reverts 4930484931
- Add a target 'example-distro' which must be manually invoked
This creates an example.sqfs with a minimal binary distro
based on the build hosts's /bin and /lib.
The purpose is to provide a simple test image which the
default configuration of the unpackfs module can use to
create a system within which the *other* steps of the
installation can run.
Example files are some zoneinfo's (remember to choose an
existing zone when using the example distro), groups and
sudoers files, etc ..
The example distro has a special /xbin which contains bogus
binaries for many system-administration tasks (e.g. useradd
which would otherwise come from /usr/sbin).
A new option BUILD_TESTING is available; you can turn this off at
CMake-time, but building the tests themselves is harmless (although
it takes some CPU time).
The main advantage of doing this is that running the tests becomes
simple:
make test
Instead of figuring out which tests there are and how to run them
individually. Note that the partition-manager tests will normally
fail, because they require an additional environment variable to
be set to tell them what disk to destroy.