1{ lib
2, stdenv
3, fetchFromGitHub
4, unzip
5, cmake
6, libglut
7, libGLU
8, libGL
9, zlib
10, swig
11, doxygen
12, xorg
13, python3
14, darwin
15}:
16
17stdenv.mkDerivation rec {
18 pname = "partio";
19 version = "1.17.3";
20
21 src = fetchFromGitHub {
22 owner = "wdas";
23 repo = "partio";
24 rev = "refs/tags/v${version}";
25 hash = "sha256-wV9byR85qwOkoTyLjG0gOLC3Gc19ykwiLpDy4T/MENQ=";
26 };
27
28 outputs = [ "dev" "out" "lib" ];
29
30 nativeBuildInputs = [
31 unzip
32 cmake
33 doxygen
34 python3
35 ];
36
37 buildInputs = [
38 zlib
39 swig
40 xorg.libXi
41 xorg.libXmu
42 ] ++ lib.optionals stdenv.isDarwin [
43 darwin.apple_sdk.frameworks.Cocoa
44 darwin.apple_sdk.frameworks.GLUT
45 ] ++ lib.optionals (!stdenv.isDarwin) [
46 libglut
47 libGLU
48 libGL
49 ];
50
51 # TODO:
52 # Sexpr support
53
54 strictDeps = true;
55
56 meta = with lib; {
57 description = "C++ (with python bindings) library for easily reading/writing/manipulating common animation particle formats such as PDB, BGEO, PTC";
58 homepage = "https://github.com/wdas/partio";
59 license = licenses.bsd3;
60 platforms = platforms.unix;
61 maintainers = [ maintainers.guibou ];
62 };
63}