===== Downloading and compiling yuri v2.8.x =====
==== Prerequisites ====
=== Compiler ===
Yuri 2.8 should work with any compiler with decent C++11 support.
It is known to successfully compile with gcc 4.7 and newer, clang 3.2 and newer.
It won't build with MSVC as it's C++11 support is still pretty bad.
^ Tested compilers ^^
^ Compiler ^ Support ^
| GCC 4.9 (svn) | @lightgreen: YES |
| GCC 4.8 | @lightgreen: YES |
| GCC 4.7 | @lightgreen: YES |
| GCC 4.6 | @pink: NO (Missing support for UDL) |
| GCC 4.5 | @pink: NO (Missing support for UDL) |
| clang 3.4 (svn) | @lightyellow: from version v2.8.0_alpha-332-g6c16d4c |
| clang 3.3 | @lightgreen: YES |
| clang 3.2 | @lightgreen: YES |
| MSVC 2012 | @pink: NO (Missing large parts of C++11 support) |
=== libraries ===
Core of yuri 2.8 and several modules should compile without any external library, but there's lot of modules depending on some external library.
* boost 1.49 or newer. If preset, it will be used in core and few modules. (Mostly for filesystem traversal and regexes)
* libsdl. Required for module sdl_window.
* libav* (ffmpeg suite). Required for rawavfile.
* alsa (asound library). Required for midi_device and alsa_output.
* jpeg 8 (libjpeg or libjpeg-turbo). Required for jpeg module.
* libpng 1.5. Required for png module.
* X11 libraries. Required for screen capture.
* OpenCV 2.3. Required for opencv module (conversions and facedetection)
=== (optional) Ultragrid dependencies ===
For successfull build of ultragrid modules, you may need following packages:
speex, libv4l, libsdl
Installing in Gentoo:
emerge speex libv4l libsdl
==== Download ====
=== (optional) Ultragrid Support ===
cd ${BASE}
git clone http://seth.ics.muni.cz/git/ultragrid.git/ -b trunk
cd ultragrid
wget http://projects.iim.cz/_media/yuri:uv_yuri_2.8.patch -O - | patch -p1
This downloads current sources from ultragrid repository (the development branch) and applies {{:yuri:uv_yuri_2.8.patch|yuri patch}}.
./autogen.sh --disable-libavcodec
Calling //autogen.sh// configures ultragrid. You should verify that it succeeded before continuing. The //--disable-libavcodec// disables the libavcodec support in ultragrid, but it will still work as yuri module.
And finally, build ultragrid:
make
If the compilation fails because of undefined unknown symbols like: AV_PIX_FMT_YUV444P, then disable libavcodec support (it probably means that you have unsupported libavcodec version) and try again:
./autogen.sh --disable-libavcodec
make
There's no need for ultragrid binary in yuri, but the compilation process creates some include files, which are needed for the compilation in yuri.
=== Download and compile yuri ===
cd ${BASE}
git clone anon@git.iim.cz:yuri-light -b 2.8.x yuri-light-2.8
cd yuri-light-2.8
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
For ultragrid support, please call:
cmake .. -DCMAKE_BUILD_TYPE=Release -DYURI_DISABLE_ULTRAGRID=OFF
And you should see line "**Building ULTRAGRID helper library!**" in the output.
And simply build the library:
make