1Synfig Studio 2============= 3 4About 5----- 6 7Synfig Studio is a free and open-source 2D animation software, designed as 8powerful industrial-strength solution for creating film-quality animation using 9a vector and bitmap artwork. It eliminates the need to create animation 10frame-by frame, allowing you to produce 2D animation of a higher quality with 11fewer people and resources. Synfig Studio is available for Windows, Linux and 12MacOS X. 13 14https://synfig.org/ 15 16(TODO: add more info) 17 18 19Installing 20---------- 21 22Old autotools instructions can be found [here][autotools]. 23 24We're currently in the [process of switching to CMake build system][cmake] and 25you're welcome to take part in testing and improving it. 26 27 28### CMake status 29 30- all major components are buildable, installable and runnable 31- building all components without installing ETL & core is not tested 32 33Tested to work on (this will be updated as reports come in): 34 35- Debian Sid 36 37 38### Cleanup 39 40If you have previous synfig build installed in system path (e.g. `/usr/local/`), 41you are recommended to uninstall that. 42 43 44### Dependencies 45 46You need development & library packages of the following libs: 47 48- boost (system, filesystem, program_options, chrono) 49- zlib 50- libsigc++-2.0 51- glibmm-2.4 52- giomm-2.4 53- cairo 54- libxml++-2.6 55- mlt++ 56- fftw3 57- pango 58- gtkmm-3.0 (only for studio) 59- gettext (probably optional) 60- some threading support (e.g. pthread) 61 62Generally CMake will throw error if it doesn't find something, so you can just 63run it and see what's missing. Also note that this list might not be full. 64 65 66### CMake backend 67 68CMake provides generators for multiple build systems. You can use default `make` 69or `ninja`, which should generally work somewhat faster. The following 70configuration commands assume you want to use `ninja`. If you don't, remove 71`-GNinja` from all commands containing it. All the building commands here are 72invoked via cmake to make them (almost) backend-agnostic, but you can run `make` 73or `ninja` directly (i.e. 74`ninja all test` instead of `cmake --build . -- all test`). 75 76### Build options 77 78You may want to add `-jN` (where N is amount of threads you want to run) option 79to build commands, because default for `make` is to run single-threaded and 80`ninja` tends to use too much threads which eat up your RAM (may vary). 81 82### Building 83 84``` 85$ pushd ETL 86$ mkdir build && pushd build 87$ cmake -GNinja .. -DCMAKE_BUILD_TYPE=RelWithDebInfo 88$ cmake --build . -- all test 89$ sudo cmake --build . -- install 90$ popd # build 91$ popd # ETL 92$ pushd synfig-core 93$ mkdir build && pushd build 94$ cmake -GNinja .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS="-fdiagnostics-color" 95$ cmake --build . -- all 96$ sudo cmake --build . -- install 97$ popd # build 98$ popd # synfig-core 99$ pushd synfig-studio 100$ mkdir build && pushd build 101$ cmake -GNinja .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS="-fdiagnostics-color" 102$ cmake --build . -- all 103# this will take a while; alternatively, you can move/copy required images 104# to build/images directory and skip this step 105$ cmake --build . -- build_images 106$ sudo cmake --build . -- install 107$ popd # build 108$ popd # synfig-studio 109``` 110 111[cmake]: https://github.com/synfig/synfig/issues/279 112[autotools]: http://wiki.synfig.org/Dev:Build_Instructions 113