LUMIERA.clone/doc/technical/build/Dependencies.txt

103 lines
4 KiB
Text

Dependencies
============
:Author: core-devs
:Date: 10/2013
:toc:
Lumiera is written for GNU/Linux. We try to make the best out of modern system programming techniques
to reach the best possible performance. 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 work and test on PC hardware, 32 and 64 bit. It is intended that Lumiera supports
other platforms running run GNU/Linux.
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. (For now 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++98 compatible compiler footnote:[in practice, we build using GCC and
occasionally we check using Clang]
- GCC *4.6* or Clang *3.0* should be fine footnote:[basically we try to use just the stock language.
On rare occasions, we _did_ use some GCC extensions, like `typeof()`, but there are
workarounds, in case this becomes a problem].
- std::tr1 extensions for C++ (smart-ptrs, hashtables, function objects)
- switch to C++11 can be expected in the near future footnote:[due to some
minor problems, we can't compile in `-std=c++11` mode yet. See the
link:http://issues.lumiera.org/ticket/924[tracking ticket]. These issues aren't
fundamental though, we used a modern programming style right from start.]
* BOOST (listed below are the Debian package names)
- libboost-dev (at least *1.48*)
- libboost-program-options-dev
- libboost-program-options-dev
- libboost-filesystem-dev
- libboost-regex-dev
* Script languages
- Python (*2.6*) 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: gtkmm-2.4 gdl-1.0 libglibmm-2.4 cairomm-1.0 xv
- libgtkmm-2.4-dev
- libcairomm-1.0-dev
- libglibmm-2.4-dev, requiring glib2.0 and gthread-2.0
- libxv-dev
- librsvg-2.0 and librsvg2-dev for rendering Icons
- libgdl-1-dev -- old version of 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. Since we're still using GTK-2, for now we're forced to use a _really ancient version_,
which isn't available from the official repositories -- you can find the original tarball and several
Debian/Ubuntu packages in our
link:http://lumiera.org/debian/pool/experimental/g/gdl/[Lumiera package repository] though.
Basically we need 2.27 =< GDL =< 2.30]