Blame README.md

caryoscelus 0d9c55
Synfig Studio
caryoscelus 0d9c55
=============
caryoscelus fb1779
caryoscelus fb1779
About
caryoscelus fb1779
-----
caryoscelus fb1779
caryoscelus fb1779
Synfig Studio is a free and open-source 2D animation software, designed as
caryoscelus fb1779
powerful industrial-strength solution for creating film-quality animation using
caryoscelus fb1779
a vector and bitmap artwork. It eliminates the need to create animation
caryoscelus fb1779
frame-by frame, allowing you to produce 2D animation of a higher quality with
caryoscelus fb1779
fewer people and resources. Synfig Studio is available for Windows, Linux and
caryoscelus fb1779
MacOS X.
caryoscelus fb1779
Maxwell Paul Brickner 13e288
https://synfig.org/
caryoscelus fb1779
2ceb5a
[![Build Status](https://travis-ci.com/synfig/synfig.svg?branch=master)](https://travis-ci.com/synfig/synfig)
87f55b
caryoscelus fb1779
(TODO: add more info)
caryoscelus fb1779
caryoscelus fb1779
caryoscelus fb1779
Installing
caryoscelus fb1779
----------
caryoscelus fb1779
caryoscelus fb1779
Old autotools instructions can be found [here][autotools].
caryoscelus fb1779
caryoscelus fb1779
We're currently in the [process of switching to CMake build system][cmake] and
caryoscelus fb1779
you're welcome to take part in testing and improving it.
caryoscelus fb1779
caryoscelus fb1779
caryoscelus fb1779
### CMake status
caryoscelus fb1779
caryoscelus fb1779
- all major components are buildable, installable and runnable
caryoscelus fb1779
- building all components without installing ETL & core is not tested
caryoscelus fb1779
caryoscelus fb1779
Tested to work on (this will be updated as reports come in):
caryoscelus fb1779
caryoscelus fb1779
- Debian Sid
caryoscelus fb1779
caryoscelus fb1779
caryoscelus fb1779
### Cleanup
caryoscelus fb1779
caryoscelus fb1779
If you have previous synfig build installed in system path (e.g. `/usr/local/`),
caryoscelus fb1779
you are recommended to uninstall that.
caryoscelus fb1779
caryoscelus fb1779
caryoscelus fb1779
### Dependencies
caryoscelus fb1779
caryoscelus fb1779
You need development & library packages of the following libs:
caryoscelus fb1779
a96363
- boost (system, program_options)
caryoscelus fb1779
- zlib
caryoscelus fb1779
- libsigc++-2.0
caryoscelus fb1779
- glibmm-2.4
caryoscelus fb1779
- giomm-2.4
caryoscelus fb1779
- cairo
caryoscelus fb1779
- libxml++-2.6
caryoscelus fb1779
- mlt++
caryoscelus fb1779
- fftw3
caryoscelus fb1779
- pango
caryoscelus fb1779
- gtkmm-3.0 (only for studio)
caryoscelus fb1779
- gettext (probably optional)
caryoscelus fb1779
- some threading support (e.g. pthread)
caryoscelus fb1779
caryoscelus fb1779
Generally CMake will throw error if it doesn't find something, so you can just
caryoscelus fb1779
run it and see what's missing. Also note that this list might not be full.
caryoscelus fb1779
caryoscelus fb1779
caryoscelus fb1779
### CMake backend
caryoscelus fb1779
caryoscelus fb1779
CMake provides generators for multiple build systems. You can use default `make`
caryoscelus fb1779
or `ninja`, which should generally work somewhat faster. The following
caryoscelus fb1779
configuration commands assume you want to use `ninja`. If you don't, remove
caryoscelus fb1779
`-GNinja` from all commands containing it. All the building commands here are
caryoscelus fb1779
invoked via cmake to make them (almost) backend-agnostic, but you can run `make`
caryoscelus fb1779
or `ninja` directly (i.e.
caryoscelus fb1779
`ninja all test` instead of `cmake --build . -- all test`).
caryoscelus fb1779
caryoscelus fb1779
### Build options
caryoscelus fb1779
caryoscelus fb1779
You may want to add `-jN` (where N is amount of threads you want to run) option
caryoscelus fb1779
to build commands, because default for `make` is to run single-threaded and
caryoscelus fb1779
`ninja` tends to use too much threads which eat up your RAM (may vary).
caryoscelus fb1779
caryoscelus fb1779
### Building
caryoscelus fb1779
caryoscelus fb1779
```
caryoscelus fb1779
$ pushd ETL
caryoscelus fb1779
$ mkdir build && pushd build
caryoscelus fb1779
$ cmake -GNinja .. -DCMAKE_BUILD_TYPE=RelWithDebInfo
caryoscelus fb1779
$ cmake --build . -- all test
caryoscelus fb1779
$ sudo cmake --build . -- install
caryoscelus fb1779
$ popd # build
caryoscelus fb1779
$ popd # ETL
caryoscelus fb1779
$ pushd synfig-core
caryoscelus eacf5f
$ mkdir build && pushd build
caryoscelus 20f20c
$ cmake -GNinja .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS="-fdiagnostics-color"
caryoscelus fb1779
$ cmake --build . -- all
caryoscelus fb1779
$ sudo cmake --build . -- install
caryoscelus eacf5f
$ popd # build
caryoscelus fb1779
$ popd # synfig-core
caryoscelus fb1779
$ pushd synfig-studio
caryoscelus eacf5f
$ mkdir build && pushd build
caryoscelus 4c2572
$ cmake -GNinja .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS="-fdiagnostics-color"
caryoscelus fb1779
$ cmake --build . -- all
caryoscelus 612c6a
# this will take a while; alternatively, you can move/copy required images
caryoscelus 612c6a
# to build/images directory and skip this step
caryoscelus 612c6a
$ cmake --build . -- build_images
caryoscelus fb1779
$ sudo cmake --build . -- install
caryoscelus eacf5f
$ popd # build
caryoscelus fb1779
$ popd # synfig-studio
caryoscelus fb1779
```
caryoscelus fb1779
caryoscelus fb1779
[cmake]:        https://github.com/synfig/synfig/issues/279
caryoscelus fb1779
[autotools]:    http://wiki.synfig.org/Dev:Build_Instructions