1{ lib, stdenv
2, fetchFromGitHub
3, fetchpatch
4, ninja
5, meson
6, pkg-config
7, gobject-introspection
8, gtk-doc
9, docbook-xsl-nons
10, docbook_xml_dtd_43
11, glib
12, gtk3
13, graphene
14, libepoxy
15, json-glib
16}:
17
18stdenv.mkDerivation rec {
19 pname = "gthree";
20 version = "0.9.0";
21
22 outputs = [ "out" "dev" "devdoc" ];
23
24 src = fetchFromGitHub {
25 owner = "alexlarsson";
26 repo = "gthree";
27 rev = version;
28 sha256 = "09fcnjc3j21lh5fjf067wm35sb4qni4vgzing61kixnn2shy79iy";
29 };
30
31 patches = [
32 # Add option for disabling examples
33 (fetchpatch {
34 url = "https://github.com/alexlarsson/gthree/commit/75f05c40aba9d5f603d8a3c490c3406c1fe06776.patch";
35 sha256 = "PBwLz4DLhC+7BtypVTFMFiF3hKAJeskU3XBKFHa3a84=";
36 })
37 ];
38
39 nativeBuildInputs = [
40 ninja
41 meson
42 pkg-config
43 gtk-doc
44 docbook-xsl-nons
45 docbook_xml_dtd_43
46 gobject-introspection
47 ];
48
49 buildInputs = [
50 libepoxy
51 json-glib
52 ];
53
54 propagatedBuildInputs = [
55 glib
56 gtk3
57 graphene
58 ];
59
60 mesonFlags = [
61 "-Dgtk_doc=${if stdenv.isDarwin then "false" else "true"}"
62 # Data for examples is useless when the example programs are not installed.
63 "-Dexamples=false"
64 ];
65
66 meta = with lib; {
67 description = "GObject/GTK port of three.js";
68 homepage = "https://github.com/alexlarsson/gthree";
69 license = licenses.mit;
70 maintainers = [ ];
71 platforms = platforms.unix;
72 broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/gthree.x86_64-darwin
73 };
74}