1{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, doxygen, libGL, glew
2, xorg, ffmpeg_4, libjpeg, libpng, libtiff, eigen
3, Carbon, Cocoa
4}:
5
6stdenv.mkDerivation rec {
7 pname = "pangolin";
8 version = "0.9.1";
9
10 src = fetchFromGitHub {
11 owner = "stevenlovegrove";
12 repo = "Pangolin";
13 rev = "v${version}";
14 sha256 = "sha256-B5YuNcJZHjR3dlVs66rySi68j29O3iMtlQvCjTUZBeY=";
15 };
16
17 nativeBuildInputs = [ cmake pkg-config doxygen ];
18
19 buildInputs = [
20 libGL
21 glew
22 xorg.libX11
23 ffmpeg_4
24 libjpeg
25 libpng
26 libtiff
27 eigen
28 ]
29 ++ lib.optionals stdenv.isDarwin [ Carbon Cocoa ];
30
31 # The tests use cmake's findPackage to find the installed version of
32 # pangolin, which isn't what we want (or available).
33 doCheck = false;
34 cmakeFlags = [ "-DBUILD_TESTS=OFF" ];
35
36 meta = {
37 description = "A lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input";
38 longDescription = ''
39 Pangolin is a lightweight portable rapid development library for managing
40 OpenGL display / interaction and abstracting video input. At its heart is
41 a simple OpenGl viewport manager which can help to modularise 3D
42 visualisation without adding to its complexity, and offers an advanced
43 but intuitive 3D navigation handler. Pangolin also provides a mechanism
44 for manipulating program variables through config files and ui
45 integration, and has a flexible real-time plotter for visualising
46 graphical data.
47 '';
48 homepage = "https://github.com/stevenlovegrove/Pangolin";
49 license = lib.licenses.mit;
50 maintainers = [ lib.maintainers.expipiplus1 ];
51 platforms = lib.platforms.all;
52 };
53}