LUMIERA.clone/doc/technical/build/Dependencies.txt
Ichthyostega c2d5896a3b Project: switch to C++14
This means we have rather tight compiler requirements now.
Beyond that, we expect no serious impact; the most notable
C++14 feature we're likely to use soon is type inference
on lambda arguments.
2015-08-16 01:43:04 +02:00

98 lines
3.7 KiB
Text

Dependencies
============
:Author: core-devs
:Date: 5/2015
:toc:
_Lumiera is written for GNU/Linux._ +
We try to get the best out of modern system programming
techniques to reach a solid performance and good throughput.
Lumiera shall scale with the provided Hardware,
the more RAM and the more/faster CPU's you have the better.
Nevertheless lower end 32bit machines are supported too.
Secondary targets will be other free operating systems which offer a decent Posix API. +
Porting to other more or less similar platforms will be possible, if -- by coincidence --
Someone(TM) helps with porting.
Having said that -- for the time being, the core team won't spend much effort on porting.
Platform
--------
We develop and test on standard PC hardware, 32 and 64 bit.
It is intended to target other platforms running run GNU/Linux eventually.
Lumiera expects a `standard' desktop installation running a XServer.
Graphics::
There are no special requirements for the graphic system.
Hardware acceleration will likely be added later through extensions,
but will remain strictly optional.footnote:[For the time being, we'll watch
the evolution in that area and might revisit that topic when there are more
compelling and widely supported solutions available]
Disks::
No special requirements. Video editing requires decent disk speed though,
so it is suggested to use a fast/big array of disks configured as raid.
Special Hardware::
Support for special hardware would be possible, but depends on certain conditions
+
* we need access / donations for the hardware
* Specs and APIs must be open.
* someone to do the actual interfacing and support needs to join the team
Languages and Tools
-------------------
* C / C++
- a C99 / C++14 compatible compiler footnote:[in practice, we build using GCC and
occasionally we check using Clang]
- GCC *4.9* or Clang *3.5* should be fine footnote:[basically we try to use just the stock language.
On rare occasions in the past, we _did_ use some GCC extensions, like `typeof()`, but we care for
workarounds, in case this becomes a problem].
* BOOST (listed below are the Debian package names)
- libboost-dev (at least *1.55*)
- libboost-program-options-dev
- libboost-program-options-dev
- libboost-filesystem-dev
- libboost-regex-dev
* Script languages
- Python (*2.7*) for build scripts
- bash (some test scripts use bash specific extensions)
Build Tools
~~~~~~~~~~~
* Git
* SCons *2.0* footnote:[we build with SCons >= 2.0 since a long time. Previously the buildsystem used to work with 1.0
In addition, we use some SCons plug-ins, which are all shipped in-tree (`admin/scons`)]
* pkg-config
* Doxygen
We maintain a link:/documentation/technical/infra/debianDepot.html[Debian/Ubuntu package] (relying on debhelper, CDBS, git-buildpackage)
Libraries
~~~~~~~~~
* BOOST
* link:http://nobug.pipapo.org/[NoBug]
* http://gmerlin.sourceforge.net/gavl.html[GAVL] (for raw media support)
* ALSA: libasound2-dev
* for the GUI: (*GTK-3*) gtkmm-3.0 gdlmm-3.0 glibmm-2.4 cairomm-1.0 xv
- libgtkmm-3.0-dev
- libcairomm-1.0-dev
- libglibmm-2.4-dev, requiring at least glib2.0 and gthread-2.0
- libxv-dev footnote:[for the XV viewer widget `gui/output/xvdisplayer.cpp`
-- currently obsolete as of [yellow-background]#5/2015#][yellow-background]#TODO 5/2015# and X-lib
- librsvg-2.0 and librsvg2-dev for rendering Icons
- libgdl-3-0 or better through libgdlmm-3.0-2 -- the »Gnome Docking Library«footnote:[GDL isn't directly related to GNOME any more.
We contributed to the improvement of this library in the past. These improvements went upstream
with GDL-2.27. At times, we used to ship our own GDL package. Right now, a recent upstream version
together with the corresponding *mm-bindings will do]