Commit Graph

151 Commits

Author SHA1 Message Date
Adriaan de Groot
a8c4f5b758 CMake: fix up warnings from the LibPWQuality module
- don't include other find modules
- pkgconfig isn't totally necessary, it might work without
2020-08-04 23:09:51 +02:00
Adriaan de Groot
afb0b36f58 CMake: simplify QRC generation
Use configure_file() to avoid stomping on timestamps: if the list
of translations doesn't change, we don't need to rebuild the
translated QRC.
2020-07-29 10:07:57 +02:00
Adriaan de Groot
bfa1f618c7 CMake: Improve RCC version-checking
Previously, we check for RCC support every single time CMake runs.
This is slightly wasteful, and it wasn't being done right anyway.
But it's moot because:

- Calamares supports back to Qt 5.9
- Qt 5.9's version of rcc (at least, 5.9.7) **does** support the
  command-line argument `--format-version 1`
- Everything newer does too.

Simplify translations a little, too: just use autorcc rather than
building things by hand.
2020-07-29 10:05:01 +02:00
Adriaan de Groot
23810aae3d CMake: switch to autorcc from manual futzing 2020-07-24 11:29:47 +02:00
Adriaan de Groot
37ce49b001 CMake: stop overwriting branding settings in the build dir
- Only copy over branding files if they are newer

Typically I have KDevelop open while working on Calamares; if I
am editing settings in `branding.desc` in the build directory,
then every time KDevelop runs CMake in the background, my
changes (for testing branding things!) would be overwritten.
Don't do that.

For normal builds with a clean build directory, this doesn't change
anything since the target is missing; changing a file in the
source directory **will** copy it over the build directory version.
2020-07-07 14:11:16 +02:00
Adriaan de Groot
f218e2e9a6 CMake: handle Python modules built from subdirectory a/b 2020-06-12 12:05:35 +02:00
Adriaan de Groot
73f8c627bd CMake: support out-of-tree builds
- The variables that are set for out-of-tree builds are prefixed
  with  to avoid name clashes; make the module-infrastructure
  respect those instead of the in-tree variable names.
- .. and then duplicate the in-tree variables to the out-of-tree
  variables, so we only need one set of module instructions.
2020-06-12 11:35:23 +02:00
Adriaan de Groot
e6fe19df20 CMake: remove unused link libraries
- Nothing ever sets LIBRARY_QT5_MODULES (it would be a macro
  argument to calamares_add_library, if anything).
2020-06-10 01:38:27 +02:00
Adriaan de Groot
dc16afac4a CMake: massage IMPORTED targets and module path
- Add the Calamares CMake-modules to the search path automatically
- Export to CalamaresTargets.cmake and use namespace Calamares::
- Document imported targets
- Find Qt, because the translations machinery will need macros from that
- The installed lib links to IMPORTED libraries from KF5, so we need
  to find them (again) as well.
2020-06-10 01:37:54 +02:00
Callum Farmer
0d4642ca6a [CMakeModules] Update SPDX identifiers.
Update CalamaresAddTest.cmake

Update CalamaresAddLibrary.cmake

Update CalamaresAddBrandingSubdirectory.cmake

Update CalamaresAddTranslations.cmake

Update CalamaresAddPlugin.cmake

Update CalamaresAddModuleSubdirectory.cmake
2020-06-03 12:28:58 +01:00
Adriaan de Groot
c3d8112187 CMake: allow fine-tuning tests
- The Python configuration tests sometimes need extra setup, so
  do that through a CMakeTests.txt file in the test directory.
- Patch up existing tests:
  - grubcfg needs /tmp/calamares/etc/default to exist
  - rawfs won't work on FreeBSD because of differences in /proc
2020-05-15 14:38:45 +02:00
Adriaan de Groot
1ae38c8ebc CMake: add tests when there are test-configs
- If a module has tests/#.global or tests/#.job, these are used
  as arguments to a test-run of loadmodule (which reads them
  and runs the module with that configuration).
- This makes the old python-loading test and test-runner entirely
  obsolete, so remove them too.
2020-05-08 21:53:39 +02:00
Adriaan de Groot
0aaf24c4a5 CMake: tell tests where their source-dir is
- Abuse BUILD_AS_TEST to pass in the value as a string
2020-03-23 17:18:44 +01:00
Adriaan de Groot
fba1bf7072 CMake: add DEFINITIONS option to calamares_add_test
- There's a handful of tests that need this, it's possible
  there will be more, so just add it to the infrastructure.
2020-02-19 22:26:55 +01:00
Adriaan de Groot
6f996d8eed CMake: give yamlcpp a proper imported target
- This makes linking easier,
 - Adds the right includes (needed on FreeBSD),
 - Lets us drop silly GUI setting for non-GUI tests (I think this was
   a side-effect of compiling on FreeBSD, where UI would pull in
   /usr/local/include).
2020-02-17 14:55:12 +01:00
Adriaan de Groot
4495a4c739 CMake: Allow extra libraries in calamares_add_test
- Extra libraries specified via LIBRARIES part of CMake function
 - Convert all the other module tests
2020-02-17 14:36:52 +01:00
Adriaan de Groot
6bdc4a55de CMake: new convenience module CalamaresAddTest 2020-02-17 12:02:53 +01:00
Adriaan de Groot
96946a8447 Merge branch 'fix-unpackfs-progress'
This is an ugly hack, using Bill Auger's support for Job weights.
The unpackfs job is arbitrarily awarded a weight of 12. That makes it
(in a Netrunner install) use progress from 12% to 40% or so, overall,
as all the files are unpacked.

Also fixes bug reported by Kevin Kofler that unpackfs was only reporting
progress when it hit an exact multiple of 100 (instead of over 100).

SEE #1176
2020-01-25 11:53:31 +01:00
Adriaan de Groot
b0b9073b40 CMake: fix boost.python detection on FreeBSD 2020-01-25 02:45:52 +01:00
Adriaan de Groot
5ad73681c2 CMake: actually write the NO_CONFIG setting 2020-01-24 20:58:23 +01:00
Adriaan de Groot
fbb452f9bf CMake: add support for NO_CONFIG
- A C++ module should set NO_CONFIG to flag that it doesn't have a
   config file (this is an error if it secretly **does** have one)
2020-01-20 19:27:34 +01:00
Adriaan de Groot
8fc94900d3 CMake: add the tz_ translation files to the i18n build 2019-12-11 06:39:57 -05:00
Adriaan de Groot
4652df0643 CMake: allow required modules in calamares_add_plugin
- Add a REQUIRES keyword
 - Write out values to the descriptor
 - Add some documentation for the function as a whole
2019-08-01 12:36:40 +02:00
Adriaan de Groot
63d1378721 CMake: need to create dir before copying to it 2019-06-17 15:17:29 +02:00
Adriaan de Groot
a08e764467 CMake: add compiled branding translations to build dir
- Copy the .qm files (compiled translations) into the build
   dir as part of the build process. This is independent of
   **installing** those same translations, but does allow
   the translations to be used by Calamares when run from the
   build dir for testing.
2019-06-16 23:38:44 +02:00
Adriaan de Groot
ba7ee445c6 CMake: switch to using autouic on plugins
- Use autouic so that we can also pass in --include to add
   a code-warning-suppression to the generated code, just like
   we can do with moc.
2019-05-13 14:52:26 +02:00
Kevin Kofler
fa9aeb4a5d CMake: Fix BoostPython3.cmake for Fedora >= 30
CMakeModules/BoostPython3.cmake: Also try e.g. "python37" as the module
name, because Fedora 30 switched from the e.g. "python-py37" format to
that. Otherwise, Boost::Python3 cannot be found on Fedora without
manually setting CALAMARES_BOOST_PYTHON3_COMPONENT.
2019-05-05 21:53:23 +02:00
Adriaan de Groot
c9447d7794 CMake: add test for python modules
- Only Python modules have a loadmodule-test added. This will call
   run(), but with an empty configuration it should be a no-op.
2019-04-28 09:06:10 -04:00
Adriaan de Groot
1e391bda7e CMake: document intention to run more tests on modules
- Loading the module will check Python modules for syntax,
   and C++ modules for symbols. This would be a good idea,
   except for where it calls exec() and does things to the
   running system. Most modules are harmless with an empty
   config, but you never know (e.g. a process module).
2019-04-27 11:58:29 -04:00
Adriaan de Groot
6f9548af34 CMake: Check module interfaces
- Only allow meaningful interface strings
 - Improve documentation of which interfaces work for
   which module types.
2019-04-27 11:30:16 -04:00
Adriaan de Groot
bdb7bf71a8 Reduce warnings from moc-generated code
- 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.
2019-04-18 12:06:09 +02:00
Adriaan de Groot
d7594860b0 CMake: fix calamares_add_library
- Remove the commented-out cruft and the whinging
 - Fix use of COMPILE_DEFINITIONS with a list passed in
 - Remove unused arguments (TYPE, TARGET)
 - Document calamares_add_library
 - Document how to use COMPILE_DEFINITIONS (in calamares_add_plugin)
2019-03-20 11:26:02 +01:00
Adriaan de Groot
82c51dec37 CMake: don't change cmake logging on release builds
- There is no real need to reduce the logging on release builds,
   it's just confusing that all the cmake-time output changes
   in a non-meaningful way.
2018-09-14 05:33:04 -04:00
Adriaan de Groot
4602b30264 [libcalamaresui] Use PYTHONQT_INCLUDE_DIRS
- document new variable from the CMake module
 - use it in libcalamaresui to simplify #include'ing the
   header for the "all" extension.

Suggested by Denis Proskurin.
2018-09-03 06:26:26 -04:00
Adriaan de Groot
54bee71b44 CMake: Search for PythonQt_QtAll.h
Suggested by Denis Proskurin.
2018-09-03 06:20:44 -04:00
Adriaan de Groot
9651c588bc CMake: Search for PythonQt headers in more places.
Suggested by Denis Proskurin.
2018-09-03 05:34:23 -04:00
Adriaan de Groot
2f6e80dc42 CMake: always copy the config files to the build directory.
Switching to INSTALL_CONFIG=OFF breaks tests by not having them
in the build directory. Some logic was coupling not-installing
to not-using-in-build-dir too closely.
2018-06-28 04:39:12 -04:00
Adriaan de Groot
d325366e92 CMake: fix plugin NO_INSTALL keyword
Although the NO_INSTALL keyword could be specified for
Calamares plugins, it didn't actually do anything. Now
it does. A NO_INSTALL module does not install configs
or libraries.
2018-06-15 07:19:02 -04:00
Adriaan de Groot
def459a29d [libcalamaresui] Read emergency setting from module.desc
- Read setting from the module descriptor
 - Document optional settings
 - Add EMERGENCY keyword to the CMake helper functions
2018-06-15 07:11:17 -04:00
Adriaan de Groot
0ffb6ed67c CMake: fix checks for supported rcc format versions 2018-06-14 06:41:08 -04:00
Adriaan de Groot
7eae99223e CMake: check if rcc supports --format-version
- The new format was introduced in Qt 5.7, and Qt 5.9 introduced
   the --format-version flag to rcc to switch back to the reproducible
   format 1. For distro's with Qt 5.7, don't use the new flag.
 - Reported from Neptune Linux, #979
2018-06-14 06:11:39 -04:00
Adriaan de Groot
733836839a CMake: remove module that duplicates what is in CMake proper 2018-05-17 12:00:06 +02:00
Adriaan de Groot
ace30e149a CMake: fix defaults-handling which was breaking in-tree build 2018-03-16 11:51:50 -04:00
Adriaan de Groot
abe05ac8ab CMake: document add_branding_subdirectory()
- add feature to allow (re)naming and to support greater
   directory depths.
2018-03-14 09:12:27 -04:00
Adriaan de Groot
b95fe2227f CMake: remove debugging from macro 2018-03-14 08:54:55 -04:00
Adriaan de Groot
d4f0be02d3 i18n: make build reproducible
The RCC output files in version 2 contain a timestamp of the
source file, which changes per build. Drop down to version 1,
which just removes the timestamp.

See reproducible builds note 'timestamps in source generated by rcc'.

FIXES #917
2018-03-12 09:09:29 -04:00
Adriaan de Groot
42ba505ceb CMake: add license headers, copyright
Since we install the CMake files now, also put license headers in them.
These files are intended to help plugin and branding component authors
write them in a simple Calamares-idiomatic way.
2018-03-09 11:13:42 -05:00
Adriaan de Groot
986c5f5a9a CMake: improve branding component macros
- document preferred component layout
 - simplify parameters to the branding macros
 - allow structured branding components with SUBDIRECTORIES
2018-03-09 11:03:42 -05:00
Adriaan de Groot
345118aec9 CMake: improve branding support
- Fix broken subdirectory call
 - Automatically process lang/ if there isn't a CMakeLists.txt,
   this was a bogus restriction
 - Add support macros for installing branding and translations
2018-03-09 07:21:16 -05:00
Adriaan de Groot
3723355fb9 CMake: ignore config files (and tests) for skipped modules. 2018-02-07 13:31:50 +01:00
Adriaan de Groot
27e1de6548 [users] Use libpwquality for additional password checks
- add cmake module to find libpwquality
 - move checking functions to their own file
 - some Transifex hackery
 - stub out the libpwquality check
2018-01-24 14:13:50 +01:00
Adriaan de Groot
4630008fa1 CMake: don't copy over modules with unsupported interfaces.
If Python isn't found, or PythonQt isn't found, there is no point
in copying over the modules into the build tree; this may even be
misleading because the files are there, but won't work and this
will be noticed at runtime only.

Instead, skip the modules and explain why.
2018-01-15 22:41:06 +01:00
Adriaan de Groot
6e01bb0fa4 CMake: factor out explanation of skipped modules.
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.
2018-01-10 09:20:49 -05:00
Adriaan de Groot
1a42b8af41 Merge branch 'kpmcore-3.2'
- Bumps requireed KPMCore to 3.3 (in spite of the branch name)
 - Cleans up some dependencies

Thanks to Andrius Stikonas.
2018-01-02 13:25:11 +01:00
Adriaan de Groot
03dd487fc2 Merge branch '3.1.x-stable' 2017-12-24 16:23:35 -05:00
Adriaan de Groot
2e1f389997 CMake: explain which modules are skipped
Modules may be skipped for different reasons: SKIP_MODULES
is the traditional approach to suppress some, but other modules
may have unmet build requirements (e.g. Plasma Look-and-Feel,
or the Partitioning module) and should be able to opt-out
of being built. For all those skipped, log it explicitly after
all the modules have been examined.

Only CMake-based (e.g. C++) modules support opting-out in this way.
2017-12-24 16:14:58 -05:00
Adriaan de Groot
cc15dd9ec7 Merge branch 'master' into kpmcore-3.2
- Pull in Master, merge README, to simplify merging this
   branch into master (soon-ish, once kpmcore 3.3 becomes available
   in builders)
2017-12-15 07:18:05 -05:00
Adriaan de Groot
84c28e9efa CMake: explain better why PythonQt isn't found 2017-12-02 07:00:43 -05:00
Andrius Štikonas
1620f6a668 Merge branch 'master' into lvm2 2017-11-11 21:30:49 +00:00
Adriaan de Groot
fda4b4e3c2 CMake: improve searching for PythonQt
- don't log when libs not found
 - log that it's the Python libraries version (not Python itself)
 - fix RE that was getting the wrong results for maj.min
2017-11-06 06:12:26 -05:00
Adriaan de Groot
970b6fcb19 CMake: find PythonQt better
- replace weird distinction between 3.0 and 3.2 by searching once
 - prefer 3.2
 - also look for suffixed versions (PythonXY) besides the Python3 suffix

FIXES #857
2017-11-03 12:48:16 -04:00
Adriaan de Groot
ebb0331672 CMake: remove unused module 2017-10-24 12:56:02 -04:00
Adriaan de Groot
c6c6c2f22f Testing: refactor so that C++ and Python modules all get yaml-config tests 2017-10-12 13:37:54 -03:00
Adriaan de Groot
6000cbaae2 Testing: test each module's config files 2017-10-12 13:03:13 -03:00
Andrius Štikonas
68e940f0bf Remove unnecessary KIO and KIconThemes dependencies. 2017-09-30 18:18:25 +01:00
Adriaan de Groot
81db2bad5f CMake: refactor boost.python search
- improve description of Python dependencies
 - refactor search per python-version-style
 - report on features and found boost modules the standard way
2017-09-23 10:22:41 -04:00
Adriaan de Groot
c9f4bc0cc8 Check for crypt(3), also on FreeBSD 2017-09-13 22:32:21 +02:00
Adriaan de Groot
03d9dbe099 Clean up CMakeLists, linking 2017-09-13 18:29:56 +02:00
Adriaan de Groot
cbef79bb93 Clean up CMake stuff, remove unneeded modules 2017-09-13 08:32:22 -04:00
Adriaan de Groot
39f5af1fcc Python-i18n: clean up filename handling a little (thanks Kevin) 2017-08-18 14:13:26 -04:00
Adriaan de Groot
40335d9f1e Python-i18n: install mo files into build tree 2017-08-18 13:06:44 -04:00
Adriaan de Groot
1dbe7c29e2 Python-i18n: prepare for move of API to libcalamares.utils, be less verbose 2017-08-15 12:30:19 +02:00
Adriaan de Groot
22c0ee5dbb Python-i18n: install gettext .mo files into system locale dir 2017-08-15 10:34:28 +02:00
Adriaan de Groot
b922d88b0f Python-i18n: add a gettext_path for python job modules 2017-08-10 15:39:24 -04:00
Adriaan de Groot
34c3bc6c85 CMake: shuffle translations macros into CMakeModules/ 2017-08-10 10:40:41 -04:00
Kevin Kofler
633a2a193d CMake: fix typo in CalamaresAddPlugin.cmake
Fix "calamaers_add_plugin" typo in the introductory comment of
CMakeModules/CalamaresAddPlugin.cmake.
2017-08-03 02:03:14 +02:00
Adriaan de Groot
8b19f672e7 CMake: also follow CMAKE_COLOR_MAKEFILE settings 2017-08-02 11:32:27 -04:00
Adriaan de Groot
2fdccdf090 Merge branch 'simplify-module-desc' 2017-08-02 11:29:58 -04:00
Adriaan de Groot
f711d6e39c CMake: colorised through test -t doesn't work 2017-08-02 11:27:14 -04:00
Adriaan de Groot
46636bdf65 Modules: documentation of CMake, module.desc, etc. 2017-08-02 11:05:32 -04:00
Adriaan de Groot
47e95b32a9 CMake: fix auto-generated module.desc 2017-08-02 11:05:32 -04:00
Adriaan de Groot
bcbd60f9a9 CMake: generate the module.desc, since it is uninteresting 2017-08-02 11:05:32 -04:00
Adriaan de Groot
e4862512f7 Partitions: split KPMCore-finding code into an include-module 2017-07-12 04:51:05 -04:00
Adriaan de Groot
6fb40c517a CMake: collect all the Find-modules at top-level 2017-07-11 06:26:56 -04:00
Adriaan de Groot
0b45a52ad9 CMake: simplify module loading more 2017-07-05 11:17:39 -04:00
Adriaan de Groot
978ff6591c CMake: simplify module loading 2017-07-05 11:14:22 -04:00
Adriaan de Groot
9b749576be CMake: move our own modules into the CMakeModules dir, tidy 2017-07-05 10:32:03 -04:00
Philip
7eeb4dbed4 [CMakeModules] Add support for PythonQT v3.2+
- this fixes #749
2017-06-19 10:47:52 +02:00
Teo Mrnjavac
ada620effc Find PythonQt. 2016-12-16 17:03:00 +01:00
Teo Mrnjavac
3a6eb3b790 Correctly fail when YAML-CPP is not found. 2016-03-29 09:28:38 +02:00
Matthias Klumpp
7143505eec Make Boost.Python3 cmake script work properly on Debian again 2015-06-10 21:07:46 +02:00
skullbocks
57406f3bc9 [modules/packages] Added support for Portage and Entropy 2015-06-08 19:29:51 +02:00
skullbocks
55476ae6fc [CMakeModules/BoostPython3] Fixed Boost library search for Gentoo based distributions 2015-06-08 18:41:13 +02:00
Teo Mrnjavac
fd5d193529 Fix colors test again. 2014-11-07 17:58:47 +01:00
Teo Mrnjavac
efdf4cb490 Fix check in CMakeColors. 2014-11-07 14:20:59 +01:00
Kevin Kofler
3fdd06b013 CMakeColors.cmake: Use colors only if stderr is an interactive terminal.
In particular, do not write ugly escape sequences to log files.

Fixes #124.
2014-11-05 23:49:41 +01:00
Aurélien Gâteau
9c05ecef4d Fix finding of Boost.Python on Ubuntu 2014-07-17 14:54:13 +02:00
Teo Mrnjavac
1dec58f178 Find Python3 + Boost.Python, and other buildsystem fixes. 2014-07-16 15:53:43 +02:00
Teo Mrnjavac
125b7914d5 Added module metadata file to CalamaresAddPlugin macro.
Also improved output.
2014-06-23 17:14:55 +02:00
Teo Mrnjavac
80640e4bea Added FindYamlCpp.cmake 2014-06-13 16:40:32 +02:00