Commit Graph

40 Commits

Author SHA1 Message Date
Adriaan de Groot
01f5ac22a0 CMake: use conventional method for setting version
- 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.
2019-04-04 15:58:07 +02:00
Adriaan de Groot
4b486cfe82 [libcalamares] Add some debugging Jobs
- FailJob always fails, and GoodJob always succeeds, both without doing
   anything. These aren't particularly useful, except for debugging.
2019-03-20 11:26:02 +01:00
Adriaan de Groot
5b936f33ec [libcalamares] Add tests
- Test only the new debug-level query methods
2018-10-05 09:41:37 -04:00
Adriaan de Groot
15b97f8e3f [libcalamares] Add missing include-dir
- Fix build on FreeBSD, where the yaml-cpp headers don't live in
   any normally-searched include directory.
2018-06-07 13:31:12 +02:00
Adriaan de Groot
4d459f7fc0 [libcalamares] Move non-UI stuff from libcalamaresui
- Settings is just a settings class, no UI involved, so
   move to libcalamares where it can be used also from
   system helpers.
 - YAML utilities are useful at a lower level of the stack, too.
2018-04-05 04:31:13 -04:00
Adriaan de Groot
09f30194d7 CMake: revert un-versioning of libcalamares*.so
The install-bits branch commit 83639b182b
dropped .so-versioning for libcalamares and the creation of the Python-
support symlink. This broke KDE Neon dev-unstable because the embedded
Python can no longer find libcalamares.

Installing unversioned .so's straight to LIBDIR is also not a good thing
(according to Debian), so revert to the original scheme with versioned
.so and a Python-support symlink.

Medium-term fix is to install unversioned straight into LIBDIR/calamares
and fix up the RPATH for the executable.
2018-03-01 12:37:52 +01:00
Adriaan de Groot
db0c1ffd6d CMake: just install unversioned .so
- Applies to libcalamares and libcalamaresui.so, install with no
   version, just the bare .so. Since Calamares doesn't do versioning
   anyway, and its plugins should be re-compiled for any change,
   putting them in lib as unversioned .so's should make Calamares
   happy and silence lintian.
2018-02-21 09:52:56 -05:00
Adriaan de Groot
83639b182b CMake: try installing outside of regular lib/
- Install unversioned libraries
 - Install to lib/calamares instead of directly to lib/
2018-02-14 08:55:30 -05:00
Adriaan de Groot
913690650f [libcalamares] Move CommandList into libcalamares
- Move CommandList so it can be used from more modules than
   just ShellProcess
 - Allow a CommandList to run itself. This centralizes
   code for executing one or more commands and simplifies
   the ShellProcess module.

Various small cleanups:
 - mention instance id in log message
 - code formatting / style
2018-01-15 06:52:55 -05:00
Adriaan de Groot
dcc66c2793 Clang: for gcc, don't produce empty COMPILE_FLAGS 2017-09-25 17:08:09 +02:00
Adriaan de Groot
6924bd7d23 Clang: produce fewer warnings (all caused by boost headers) 2017-09-25 16:33:48 +02:00
Adriaan de Groot
40c49bd50d Clang: be more explicit about marking third-party code.
- 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).
2017-09-21 04:53:09 -04:00
Adriaan de Groot
0c129f2460 Reduce third-part warnings a better way.
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
2017-09-19 16:49:14 +02:00
Adriaan de Groot
4930484931 CMake: massage build of libcalamares
- Build also two OBJECT libraries,
 - Allow changing Clang warnings for third-party code.
2017-09-18 14:59:53 +02:00
Adriaan de Groot
eede92646d CMake: shuffle includes, drop useless (empty) QT_INCLUDE_DIR 2017-09-18 12:32:37 +02:00
Adriaan de Groot
a266ecb133 CMake: simplify definitions, distinguish kinds of sources 2017-09-17 06:48:07 -04:00
Adriaan de Groot
03d9dbe099 Clean up CMakeLists, linking 2017-09-13 18:29:56 +02:00
Teo Mrnjavac
2c3b56c803 Link against PythonQt; new PythonQtViewModule stub. 2016-12-16 17:03:00 +01:00
Kevin Kofler
00d9f211f5 Add support for C++/Qt batch job plugins
These job plugins work similarly to view modules, with the following
differences:

* These jobs need to link only libcalamares, not libcalamaresui. For
  this reason, PluginFactory was moved from libcalamaresui to
  libcalamares. (It depends only on QtCore.)

* Instead of deriving from ViewModule, derive from CppJob (which is a
  subclass of Job).

* Like process and Python jobs, a job plugin is a single job, whereas a
  ViewModule can generate a whole list of jobs.

The CppJob and CppJobModule classes are new. In Module::fromDescriptor,
the combination type=job, intf=qtplugin is now supported and mapped to
CppJobModule.
2016-09-27 17:25:09 +02:00
Kevin Kofler
7478c1266b Point the lib/calamares/libcalamares.so symlink to the versioned so.
Point the lib/calamares/libcalamares.so symlink for the Python modules
directly to the versioned lib/libcalamares.so.VERSION library rather
than to the lib/libcalamares.so symlink. This allows distributions to
install the lib/libcalamares.so symlink to a development package and
only ship lib/libcalamares.so.VERSION and lib/calamares/libcalamares.so
in the runtime package. It is also marginally faster (because only one
level of symlinks has to be resolved instead of two).

(I know this works because I have been manually fixing up this symlink
in the Fedora specfile so far.)
2014-11-14 12:30:56 +01:00
Teo Mrnjavac
08b90e975b Add retranslator class to CalamaresUtils. 2014-11-11 12:44:32 +01:00
Teo Mrnjavac
63534f7154 Add mount and chrootCall utilities to libcalamares + Python wrappers. 2014-07-29 20:21:40 +02:00
Teo Mrnjavac
0753e6ccde New GlobalStorage map. With Python API support. 2014-07-21 17:09:23 +02:00
Teo Mrnjavac
d9f4c74537 Add support for config map to Python job API.
Rename PythonJobHelper ==> CalamaresPython::Helper.
Add QVariant to boost::python::object conversion functions.
Rename some constants in the libcalamares Python API.
2014-07-18 14:36:30 +02:00
Teo Mrnjavac
e33e9de6f6 Symlink lib/calamares/libcalamares.so to lib/libcalamares.so for Python. 2014-07-17 19:42:16 +02:00
Teo Mrnjavac
a61a36d99d We have a Python API for jobmodules!
Created a Boost.Python module interface in libcalamares.
Added a PythonJob wrapper and exposed it in the Python module.
Rename target calamareslib ==> calamares so in Python it's libcalamares.
Python-related classes in libcalamares that aren't exported as C++
symbols are now in a CalamaresPrivate namespace.
Import the libcalamares python module into every Python script before
running it.
Added Python error handling to PythonJobHelper.
Added some more testing code to dummypython module.
2014-07-17 19:42:16 +02:00
Teo Mrnjavac
b924aeef2b Add optional Python jobs support to libcalamares. 2014-07-16 16:07:32 +02:00
Aurélien Gâteau
7096213206 Move partitionmanager code to src/modules/partition 2014-07-15 11:54:09 +02:00
Teo Mrnjavac
fe7a64d5ab Add ProcessJob, a wrapper for external commands. 2014-07-10 12:08:43 +02:00
Teo Mrnjavac
afa1d9dce0 To build with partitionmanager: cmake -DWITH_PARTITIONMANAGER=1 2014-06-27 15:55:25 +02:00
Teo Mrnjavac
6388171521 Stubs for JobQueue and Job. 2014-06-27 15:55:25 +02:00
Aurélien Gâteau
02af2dccb9 Introduce libcalapm
This adds a submodule pointing to a fork of KDE Partition Manager. All
Calamares-specific changes are in the "calamares" branch of this fork.
2014-06-26 16:46:06 +02:00
Aurélien Gâteau
3cc7fe3245 Rename config.h to CalamaresConfig.h
Avoid name clashes with partitionmanager's config.h
2014-06-26 14:22:13 +02:00
Teo Mrnjavac
ef48f36445 Add modules path in build dir if --debug.
Also fix config.h location.
2014-06-24 13:35:21 +02:00
Teo Mrnjavac
d20e3ce598 Add DLLEXPORT_PRO definitions. 2014-06-18 18:42:01 +02:00
Teo Mrnjavac
13fcf387c7 A bunch of work on loading plugins.
Also switched to C++11.
2014-06-18 18:05:04 +02:00
Aurélien Gâteau
1da7ba446d Fix link error on Qt5 libs 2014-06-17 14:59:49 +02:00
Teo Mrnjavac
b21dc4fe4c Added Utils, Logger, Translations, QCommandLineParser, init boilerplate 2014-06-06 17:19:59 +02:00
Teo Mrnjavac
27cea281bc Added KDSingleApplicationGuard boilerplate because it's a singleton.
Also DllMacro.h
2014-06-04 18:19:05 +02:00
Teo Mrnjavac
b5ec7c4702 CMake skeleton. 2014-06-04 16:35:26 +02:00