|
Campbell Barton |
bb2094 |
# Setting up the development environment for GNU/Linux
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
## Required software
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
84ad0f |
Building OpenToonz from source requires the following dependencies:
|
|
Campbell Barton |
6aa05c |
- Git
|
|
Campbell Barton |
8539fa |
- GCC or Clang
|
|
Campbell Barton |
84ad0f |
- CMake (3.4.1 or newer).
|
|
shun_iwasawa |
31362d |
- Qt5 (5.9 or newer)
|
|
Campbell Barton |
84ad0f |
- Boost (1.55 or newer)
|
|
Campbell Barton |
84ad0f |
- LibPNG
|
|
Campbell Barton |
84ad0f |
- SuperLU
|
|
Campbell Barton |
84ad0f |
- Lzo2
|
|
Campbell Barton |
84ad0f |
- FreeType
|
|
Campbell Barton |
fc1e00 |
- LibMyPaint (1.3 or newer)
|
|
shun-iwasawa |
31accf |
- Jpeg-Turbo (1.4 or newer)
|
|
shun-iwasawa |
31accf |
- OpenCV 3.2 or newer
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
84ad0f |
### Installing Dependencies on Debian / Ubuntu
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
```
|
|
shun-iwasawa |
31accf |
$sudo apt-get install build-essential git cmake pkg-config libboost-all-dev qt5-default qtbase5-dev libqt5svg5-dev qtscript5-dev qttools5-dev qttools5-dev-tools libqt5opengl5-dev qtmultimedia5-dev libqt5multimedia5-plugins libqt5serialport5-dev libsuperlu-dev
|
|
shun-iwasawa |
31accf |
liblz4-dev libusb-1.0-0-dev liblzo2-dev libpng-dev libjpeg-dev libglew-dev freeglut3-dev libfreetype6-dev libjson-c-dev qtwayland5 libmypaint-dev libopencv-dev libturbojpeg-dev
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
3cb5de |
|
|
|
2dc390 |
For newest versions of OS you may install libmypaint from repository and don't need to build it from source:
|
|
Campbell Barton |
3cb5de |
|
|
|
2dc390 |
```
|
|
|
2dc390 |
$ sudo apt-get install libmypaint-dev
|
|
|
2dc390 |
```
|
|
Campbell Barton |
3cb5de |
|
|
|
2dc390 |
Notes:
|
|
|
2dc390 |
* It's possible we also need `libgsl2` (or maybe `libopenblas-dev`)
|
|
shun-iwasawa |
31accf |
* We may also need `libegl1-mesa-dev libgles2-mesa-dev libglib2.0-dev liblzma-dev`
|
|
shun-iwasawa |
31accf |
* For Qt, MyPaint and OpenCV, you can alternatively build and install from source.
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
84ad0f |
### Installing Dependencies on Fedora
|
|
Campbell Barton |
3cb5de |
(it may include some useless packages)
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
```
|
|
Toondad |
9c4638 |
$ sudo dnf install gcc gcc-c++ automake git cmake boost boost-devel SuperLU SuperLU-devel lz4-devel lzma libusb-devel lzo-devel libjpeg-turbo-devel libGLEW glew-devel freeglut-devel freeglut freetype-devel libpng-devel qt5-qtbase-devel qt5-qtsvg qt5-qtsvg-devel qt5-qtscript qt5-qtscript-devel qt5-qttools qt5-qttools-devel qt5-qtmultimedia-devel blas blas-devel json-c-devel libtool intltool make qt5-qtmultimedia
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
3cb5de |
|
|
|
2dc390 |
For newest versions of OS you may install libmypaint from repository and don't need to build it from source:
|
|
|
2dc390 |
|
|
|
2dc390 |
```
|
|
|
2dc390 |
$ sudo dnf install libmypaint-devel
|
|
|
2dc390 |
```
|
|
Campbell Barton |
fc1e00 |
|
|
Campbell Barton |
fc1e00 |
|
|
Campbell Barton |
84ad0f |
### Installing Dependencies on ArchLinux
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
```
|
|
Tact Yoshida |
55b178 |
$ 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 freetype2
|
|
Campbell Barton |
3cb5de |
$ sudo pacman -S blas cblas
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
3cb5de |
From AUR, using eg. yaourt:
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
fc1e00 |
$ yaourt -S superlu libmypaint
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
Notes:
|
|
Campbell Barton |
84ad0f |
* ArchLinux has `blas` split into `blas` and `cblas`.
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
84ad0f |
### Installing Dependencies on openSUSE
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
```
|
|
Toondad |
9c4638 |
$ zypper in boost-devel cmake freeglut-devel freetype2-devel gcc-c++ glew-devel libQt5OpenGL-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 json-c-devel libqt5-qtmultimedia
|
|
|
2dc390 |
```
|
|
|
2dc390 |
|
|
|
2dc390 |
For newest versions of OS you may install libmypaint from repository and don't need to build it from source:
|
|
|
2dc390 |
|
|
|
2dc390 |
```
|
|
|
2dc390 |
$ zypper install libmypaint-devel
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
3cb5de |
|
|
|
2dc390 |
## Build libmypaint dependency
|
|
|
2dc390 |
|
|
|
2dc390 |
If your linux distributions does not have libmypaint package, then build it from the source:
|
|
Campbell Barton |
fc1e00 |
|
|
|
2dc390 |
```
|
|
|
2dc390 |
$ git clone https://github.com/mypaint/libmypaint.git -b v1.3.0
|
|
|
2dc390 |
$ cd libmypaint
|
|
|
2dc390 |
$ ./autogen.sh
|
|
|
2dc390 |
$ ./configure
|
|
|
2dc390 |
$ make
|
|
|
2dc390 |
$ sudo make install
|
|
|
2dc390 |
$ sudo ldconfig
|
|
|
2dc390 |
$ cd ..
|
|
|
2dc390 |
```
|
|
Campbell Barton |
fc1e00 |
|
|
Campbell Barton |
3cb5de |
## Build instructions
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
84ad0f |
### Cloning the GIT Tree
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
3cb5de |
$ git clone https://github.com/opentoonz/opentoonz
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
84ad0f |
### Copying the 'stuff' Directory
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
TODO: some parts should really be installed in $prefix/ instead... and some other in various cache or user-local places.
|
|
Campbell Barton |
3cb5de |
cf. https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
|
Campbell Barton |
3cb5de |
Until then we just follow the Win32/OSX layout.
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
84ad0f |
The `~/.config/OpenToonz/` directory contains your settings, work and other files.
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
84ad0f |
Initialize this path with the folling commands:
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
3cb5de |
$ mkdir -p $HOME/.config/OpenToonz
|
|
Campbell Barton |
3cb5de |
$ cp -r opentoonz/stuff $HOME/.config/OpenToonz/
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
84ad0f |
*Currently this is required to run OpenToonz.*
|
|
Campbell Barton |
84ad0f |
|
|
Campbell Barton |
84ad0f |
### Creating SystemVar.ini
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
TODO: fix the code to discover it automatically
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
3cb5de |
$ cat << EOF > $HOME/.config/OpenToonz/SystemVar.ini
|
|
Campbell Barton |
3cb5de |
[General]
|
|
Campbell Barton |
3cb5de |
OPENTOONZROOT="$HOME/.config/OpenToonz/stuff"
|
|
Campbell Barton |
3cb5de |
OpenToonzPROFILES="$HOME/.config/OpenToonz/stuff/profiles"
|
|
Campbell Barton |
3cb5de |
TOONZCACHEROOT="$HOME/.config/OpenToonz/stuff/cache"
|
|
Campbell Barton |
3cb5de |
TOONZCONFIG="$HOME/.config/OpenToonz/stuff/config"
|
|
|
98350e |
TOONZFXPRESETS="$HOME/.config/OpenToonz/stuff/fxs"
|
|
Martin van Zijl |
1994fc |
TOONZLIBRARY="$HOME/.config/OpenToonz/stuff/library"
|
|
Campbell Barton |
3cb5de |
TOONZPROFILES="$HOME/.config/OpenToonz/stuff/profiles"
|
|
Campbell Barton |
3cb5de |
TOONZPROJECTS="$HOME/.config/OpenToonz/stuff/projects"
|
|
Campbell Barton |
3cb5de |
TOONZROOT="$HOME/.config/OpenToonz/stuff"
|
|
Jeremy Bullock |
eb8f40 |
TOONZSTUDIOPALETTE="$HOME/.config/OpenToonz/stuff/studiopalette"
|
|
Campbell Barton |
3cb5de |
EOF
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
84ad0f |
Note the generated file must not actually contain `$HOME`, this expands to an absolute path in the generated file.
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
84ad0f |
### Building LibTIFF
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
TODO: make sure we can use the system libtiff instead and remove this section.
|
|
caryoscelus |
58356f |
Features from the modified libtiff are needed currently, so this isn't a simple switch.
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
3cb5de |
$ cd opentoonz/thirdparty/tiff-4.0.3
|
|
Campbell Barton |
503351 |
$ ./configure --with-pic --disable-jbig
|
|
Campbell Barton |
cec9b9 |
$ make -j$(nproc)
|
|
Campbell Barton |
cec9b9 |
$ cd ../../
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
84ad0f |
### Building OpenToonz
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
cec9b9 |
$ cd toonz
|
|
Campbell Barton |
3cb5de |
$ mkdir build
|
|
Campbell Barton |
3cb5de |
$ cd build
|
|
Campbell Barton |
3cb5de |
$ cmake ../sources
|
|
Campbell Barton |
cec9b9 |
$ make -j$(nproc)
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
3cb5de |
|
|
Benson Muite |
eb81d1 |
The build takes a lot of time, be patient. CMake may not pick up all the required dependencies. On Fedora 30, it can be helpful to use
|
|
Benson Muite |
eb81d1 |
```
|
|
Benson Muite |
eb81d1 |
$cmake ../sources/ -DSUPERLU_INCLUDE_DIR=/usr/include/SuperLU
|
|
Benson Muite |
eb81d1 |
```
|
|
Benson Muite |
eb81d1 |
instead of just
|
|
Benson Muite |
eb81d1 |
```
|
|
Benson Muite |
eb81d1 |
$cmake ../sources/
|
|
Benson Muite |
eb81d1 |
```
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
84ad0f |
### Troubleshooting Build Errors
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
If something doesn't compile or link, please run `make` this way to help spot the problem:
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
8539fa |
$ LANG=C make VERBOSE=1
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
84ad0f |
#### Debug Build
|
|
Campbell Barton |
3cb5de |
If you need to debug the application, you should be able to use `cmake -DCMAKE_BUILD_TYPE=Debug`.
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
84ad0f |
### Running OpenToonz
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
You can now run the application:
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
3cb5de |
```
|
|
Ken Taguma |
a0f8f7 |
$ LD_LIBRARY_PATH=./lib/opentoonz:$LD_LIBRARY_PATH
|
|
Ken Taguma |
a0f8f7 |
$ ./bin/OpenToonz
|
|
Campbell Barton |
3cb5de |
```
|
|
Campbell Barton |
3cb5de |
|
|
Campbell Barton |
84ad0f |
### Performing a System Installation
|
|
Campbell Barton |
3158be |
|
|
Campbell Barton |
3158be |
The steps above show how to run OpenToonz from the build directory,
|
|
Campbell Barton |
3158be |
however you may wish to install OpenToonz onto your system.
|
|
Campbell Barton |
3158be |
|
|
Campbell Barton |
3158be |
OpenToonz will install to `/opt/opentoonz` by default, to do this run:
|
|
Campbell Barton |
3158be |
|
|
Campbell Barton |
3158be |
```
|
|
Campbell Barton |
3158be |
$ sudo make install
|
|
Campbell Barton |
3158be |
```
|
|
Campbell Barton |
3158be |
|
|
Campbell Barton |
3158be |
Then you can launch OpenToonz by running `/opt/opentoonz/bin/opentoonz`.
|
|
Campbell Barton |
3158be |
|
|
Campbell Barton |
3158be |
You can change the installation path by modifying the `CMAKE_INSTALL_PREFIX` CMake variable.
|
|
Campbell Barton |
3158be |
|
|
Campbell Barton |
efb7a2 |
----
|
|
Campbell Barton |
efb7a2 |
|
|
Campbell Barton |
efb7a2 |
# Linux Package Definitions
|
|
Campbell Barton |
efb7a2 |
|
|
Campbell Barton |
efb7a2 |
It may be helpful to use existing packages as a reference when creating a package for your own distribution.
|
|
Campbell Barton |
efb7a2 |
|
|
Campbell Barton |
efb7a2 |
- ArchLinux (AUR):
|
|
Campbell Barton |
efb7a2 |
https://aur.archlinux.org/packages/opentoonz-git/
|
|
Campbell Barton |
efb7a2 |
|
|
Campbell Barton |
efb7a2 |
- App-Image (Portable):
|
|
Campbell Barton |
efb7a2 |
https://github.com/morevnaproject/morevna-builds
|
|
Campbell Barton |
efb7a2 |
|