1{ lib
2, stdenv
3, fetchFromGitHub
4, unzip
5, cmake
6, freeglut
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.1";
20
21 src = fetchFromGitHub {
22 owner = "wdas";
23 repo = "partio";
24 rev = "refs/tags/v${version}";
25 hash = "sha256-3t3y3r4R/ePw2QE747rqumbrYRm1wNkSKN3n8MPPIVg=";
26 };
27
28 outputs = [ "dev" "out" "lib" ];
29
30 nativeBuildInputs = [
31 unzip
32 cmake
33 doxygen
34 ];
35
36 buildInputs = [
37 zlib
38 swig
39 xorg.libXi
40 xorg.libXmu
41 python3
42 ] ++ lib.optionals stdenv.isDarwin [
43 darwin.apple_sdk.frameworks.Cocoa
44 darwin.apple_sdk.frameworks.GLUT
45 ] ++ lib.optionals (!stdenv.isDarwin) [
46 freeglut
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}