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