diff --git a/README-CMake.md b/README-CMake.md new file mode 100644 index 0000000..df1d388 --- /dev/null +++ b/README-CMake.md @@ -0,0 +1,81 @@ +### CMake status + +We're currently in the [process of switching to CMake build system][cmake] and +you're welcome to take part in testing and improving it. + +- all major components are buildable, installable and runnable +- building all components without installing ETL & core is not tested + +Tested to work on (this will be updated as reports come in): + +- Debian Sid + + +### Dependencies + +You need development & library packages of the following libs: + +- boost (system) +- zlib +- libsigc++-2.0 +- glibmm-2.4 +- giomm-2.4 +- cairo +- libxml++-2.6 +- mlt++ +- fftw3 +- pango +- gtkmm-3.0 (only for studio) +- gettext +- some threading support (e.g. pthread) + +Generally CMake will throw error if it doesn't find something, so you can just +run it and see what's missing. Also note that this list might not be full. + + +### CMake backend + +CMake provides generators for multiple build systems. You can use default `make` +or `ninja`, which should generally work somewhat faster. The following +configuration commands assume you want to use `ninja`. If you don't, remove +`-GNinja` from all commands containing it. All the building commands here are +invoked via cmake to make them (almost) backend-agnostic, but you can run `make` +or `ninja` directly (i.e. +`ninja all test` instead of `cmake --build . -- all test`). + +### Build options + +You may want to add `-jN` (where N is amount of threads you want to run) option +to build commands, because default for `make` is to run single-threaded and +`ninja` tends to use too much threads which eat up your RAM (may vary). + +### Building + +``` +$ pushd ETL +$ mkdir build && pushd build +$ cmake -GNinja .. -DCMAKE_BUILD_TYPE=RelWithDebInfo +$ cmake --build . -- all test +$ sudo cmake --build . -- install +$ popd # build +$ popd # ETL +$ pushd synfig-core +$ mkdir build && pushd build +$ cmake -GNinja .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS="-fdiagnostics-color" +$ cmake --build . -- all +$ sudo cmake --build . -- install +$ popd # build +$ popd # synfig-core +$ pushd synfig-studio +$ mkdir build && pushd build +$ cmake -GNinja .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS="-fdiagnostics-color" +$ cmake --build . -- all +# this will take a while; alternatively, you can move/copy required images +# to build/images directory and skip this step +$ cmake --build . -- build_images +$ sudo cmake --build . -- install +$ popd # build +$ popd # synfig-studio +``` + +[cmake]: https://github.com/synfig/synfig/issues/279 diff --git a/README.md b/README.md index 995d517..67498ff 100644 --- a/README.md +++ b/README.md @@ -15,17 +15,10 @@ https://synfig.org/ [![Build Status](https://travis-ci.com/synfig/synfig.svg?branch=master)](https://travis-ci.com/synfig/synfig) -(TODO: add more info) - Installing ---------- -Old autotools instructions can be found [here][autotools]. - -We're currently in the [process of switching to CMake build system][cmake] and -you're welcome to take part in testing and improving it. - #### Debian/Ubuntu 1. Download the appimage file from the website. 2. Left-click on the file and select `properties`. Navigate to `permissions` and check the box that says `Allow executing file as program`. Finally, run the file. @@ -52,89 +45,9 @@ Note: You can also grant an exception for a blocked app by clicking the “Open For more details please refer to this page - https://support.apple.com/kb/PH25088?locale=en_US +#### Building from source -### CMake status - -- all major components are buildable, installable and runnable -- building all components without installing ETL & core is not tested - -Tested to work on (this will be updated as reports come in): - -- Debian Sid - - -### Cleanup +See instructions here - https://synfig-docs-dev.readthedocs.io/en/latest/common/building.html If you have previous synfig build installed in system path (e.g. `/usr/local/`), you are recommended to uninstall that. - - -### Dependencies - -You need development & library packages of the following libs: - -- boost (system) -- zlib -- libsigc++-2.0 -- glibmm-2.4 -- giomm-2.4 -- cairo -- libxml++-2.6 -- mlt++ -- fftw3 -- pango -- gtkmm-3.0 (only for studio) -- gettext (probably optional) -- some threading support (e.g. pthread) - -Generally CMake will throw error if it doesn't find something, so you can just -run it and see what's missing. Also note that this list might not be full. - - -### CMake backend - -CMake provides generators for multiple build systems. You can use default `make` -or `ninja`, which should generally work somewhat faster. The following -configuration commands assume you want to use `ninja`. If you don't, remove -`-GNinja` from all commands containing it. All the building commands here are -invoked via cmake to make them (almost) backend-agnostic, but you can run `make` -or `ninja` directly (i.e. -`ninja all test` instead of `cmake --build . -- all test`). - -### Build options - -You may want to add `-jN` (where N is amount of threads you want to run) option -to build commands, because default for `make` is to run single-threaded and -`ninja` tends to use too much threads which eat up your RAM (may vary). - -### Building - -``` -$ pushd ETL -$ mkdir build && pushd build -$ cmake -GNinja .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -$ cmake --build . -- all test -$ sudo cmake --build . -- install -$ popd # build -$ popd # ETL -$ pushd synfig-core -$ mkdir build && pushd build -$ cmake -GNinja .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS="-fdiagnostics-color" -$ cmake --build . -- all -$ sudo cmake --build . -- install -$ popd # build -$ popd # synfig-core -$ pushd synfig-studio -$ mkdir build && pushd build -$ cmake -GNinja .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_CXX_FLAGS="-fdiagnostics-color" -$ cmake --build . -- all -# this will take a while; alternatively, you can move/copy required images -# to build/images directory and skip this step -$ cmake --build . -- build_images -$ sudo cmake --build . -- install -$ popd # build -$ popd # synfig-studio -``` - -[cmake]: https://github.com/synfig/synfig/issues/279 -[autotools]: http://wiki.synfig.org/Dev:Build_Instructions