Text Blame Raw

Setting up the development environment for GNU/Linux and Unix

Required software

You will need to install some dependencies before you can build. Depending on your distribution you will be able to install the packages directly with the command lines below or will have to manually install: - Git - GCC - CMake - confirmed to work with 3.4.1. - Qt5 - http://download.qt.io/official_releases/qt/5.5/5.5.1/ - Boost - http://www.boost.org/users/history/version_1_55_0.html - SDL2

Installing required packages on Debian / Ubuntu

$ sudo apt-get install build-essential git cmake pkg-config libboost-all-dev qt5-default qtbase5-dev libqt5svg5-dev qtscript5-dev qttools5-dev-tools libqt5opengl5-dev qtmultimedia5-dev libsuperlu-dev liblz4-dev libusb-1.0-0-dev liblzo2-dev libpng-dev libjpeg-dev libglew-dev freeglut3-dev libsdl2-dev libfreetype6-dev

Notes: * It's possible we also need libgsl2 (or maybe libopenbias-dev)

Installing required packages on RedHat / Mageia

TODO

$ rpm ...

Installing required packages on Fedora

(it may include some useless packages)

dnf install gcc gcc-c++ automake git cmake boost boost-devel SuperLU SuperLU-devel lz4-devel libusb-devel lzo-devel libjpeg-turbo-devel GLEW libGLEW freeglut-devel freeglut SDL2 SDL2-devel freetype-devel libpng-devel qt5-base qt5-qtbase-devel qt5-qtsvg qt5-qtsvg-devel qt5-qtscript qt5-qtscript-devel qt5-qttools qt5-qttools-devel blas blas-devel

Installing required packages on ArchLinux

$ sudo pacman -S base-devel git cmake boost boost-libs qt5-base qt5-svg qt5-script qt5-tools qt5-multimedia lz4 libusb lzo libjpeg-turbo glew freeglut sdl2 freetype2
$ sudo pacman -S blas cblas

From AUR, using eg. yaourt:

$ yaourt -S superlu

Notes: * ArchLinux had BLAS splitted in blas and cblas

Installing required packages on openSUSE

zypper in boost-devel cmake freeglut-devel freetype2-devel gcc-c++ glew-devel libQt5OpenGL-devel libSDL2-devel libjpeg-devel liblz4-devel libpng16-compat-devel libqt5-linguist-devel libqt5-qtbase-devel libqt5-qtmultimedia-devel libqt5-qtscript-devel libqt5-qtsvg-devel libtiff-devel libusb-devel lzo-devel openblas-devel pkgconfig sed superlu-devel zlib-devel

Build instructions

cloning the git tree

$ git clone https://github.com/opentoonz/opentoonz

Copying the stuff directory

TODO: some parts should really be installed in $prefix/ instead... and some other in various cache or user-local places. cf. https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html Until then we just follow the Win32/OSX layout.

It is supposedly optional but some files are actually required to run the executable properly.

The .config/OpenToonz/ directory in your home folder will contain your settings, work and other files. We need to create it from the command-line:

$ mkdir -p $HOME/.config/OpenToonz
$ cp -r opentoonz/stuff $HOME/.config/OpenToonz/

Creating a default ini file for stuff folders

TODO: fix the code to discover it automatically

$ cat << EOF > $HOME/.config/OpenToonz/SystemVar.ini
[General]
OPENTOONZROOT="$HOME/.config/OpenToonz/stuff"
OpenToonzPROFILES="$HOME/.config/OpenToonz/stuff/profiles"
TOONZCACHEROOT="$HOME/.config/OpenToonz/stuff/cache"
TOONZCONFIG="$HOME/.config/OpenToonz/stuff/config"
TOONZFXPRESETS="$HOME/.config/OpenToonz/stuff/projects/fxs"
TOONZLIBRARY="$HOME/.config/OpenToonz/stuff/projects/library"
TOONZPROFILES="$HOME/.config/OpenToonz/stuff/profiles"
TOONZPROJECTS="$HOME/.config/OpenToonz/stuff/projects"
TOONZROOT="$HOME/.config/OpenToonz/stuff"
TOONZSTUDIOPALETTE="$HOME/.config/OpenToonz/stuff/projects/studiopalette"
EOF

Note the generated file must not actually contain "$HOME", this shell command repaces it with /home/youraccount in the generated file.

Building the tiff library from thirdparty

TODO: make sure we can use the system libtiff instead and remove this section. Features from the modified libtiff and needed currently, so this isn't a simple switch.

$ cd opentoonz/thirdparty/tiff-4.0.3
$ CFLAGS="-fPIC" ./configure && make
$ cd -

Compiling the actual application

$ cd ../../toonz
$ mkdir build
$ cd build
$ cmake ../sources
$ make

The build takes a lot of time, be patient.

Debugging the build

If something doesn't compile or link, please run make this way to help spot the problem:

LANG=C make VERBOSE=1

Debug build

If you need to debug the application, you should be able to use cmake -DCMAKE_BUILD_TYPE=Debug.

Running the application

You can now run the application:

$ cd bin
$ LD_LIBRARY_PATH=./lib/opentoonz:$LD_LIBRARY_PATH ./bin/OpenToonz_1.0

Performing a system installation

The steps above show how to run OpenToonz from the build directory, however you may wish to install OpenToonz onto your system.

OpenToonz will install to /opt/opentoonz by default, to do this run:

$ sudo make install

Then you can launch OpenToonz by running /opt/opentoonz/bin/opentoonz.

You can change the installation path by modifying the CMAKE_INSTALL_PREFIX CMake variable.


Linux Package Definitions

It may be helpful to use existing packages as a reference when creating a package for your own distribution.