1{ fetchurl
2, lib
3, stdenv
4, meson
5, ninja
6, vala
7, gtk-doc
8, docbook_xsl
9, docbook_xml_dtd_412
10, pkg-config
11, glib
12, gtk3
13, cairo
14, sqlite
15, gnome
16, clutter-gtk
17, libsoup
18, libsoup_3
19, gobject-introspection /*, libmemphis */
20, withLibsoup3 ? false
21}:
22
23stdenv.mkDerivation rec {
24 pname = "libchamplain";
25 version = "0.12.21";
26
27 outputs = [ "out" "dev" ]
28 ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
29
30 src = fetchurl {
31 url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
32 sha256 = "qRXNFyoMUpRMVXn8tGg/ioeMVxv16SglS12v78cn5ac=";
33 };
34
35 nativeBuildInputs = [
36 meson
37 ninja
38 pkg-config
39 gobject-introspection
40 vala
41 ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [
42 gtk-doc
43 docbook_xsl
44 docbook_xml_dtd_412
45 ];
46
47 buildInputs = [
48 sqlite
49 (if withLibsoup3 then libsoup_3 else libsoup)
50 ];
51
52 propagatedBuildInputs = [
53 glib
54 gtk3
55 cairo
56 clutter-gtk
57 ];
58
59 mesonFlags = [
60 (lib.mesonBool "gtk_doc" (stdenv.buildPlatform == stdenv.hostPlatform))
61 "-Dvapi=true"
62 (lib.mesonBool "libsoup3" withLibsoup3)
63 ];
64
65 passthru = {
66 updateScript = gnome.updateScript {
67 packageName = pname;
68 versionPolicy = "odd-unstable";
69 };
70 };
71
72 meta = with lib; {
73 homepage = "https://wiki.gnome.org/Projects/libchamplain";
74 license = licenses.lgpl2Plus;
75
76 description = "C library providing a ClutterActor to display maps";
77
78 longDescription = ''
79 libchamplain is a C library providing a ClutterActor to display
80 maps. It also provides a GTK widget to display maps in GTK
81 applications. Python and Perl bindings are also available. It
82 supports numerous free map sources such as OpenStreetMap,
83 OpenCycleMap, OpenAerialMap, and Maps for free.
84 '';
85
86 maintainers = teams.gnome.members ++ teams.pantheon.members;
87 platforms = platforms.gnu ++ platforms.linux; # arbitrary choice
88 };
89}