1{ stdenv
2, fetchpatch
3, fetchFromGitLab
4, cmake
5, ninja
6, pkg-config
7, boost
8, glib
9, gsl
10, cairo
11, double-conversion
12, gtest
13, lib
14}:
15
16stdenv.mkDerivation rec {
17 pname = "lib2geom";
18 version = "1.2.2";
19
20 outputs = [ "out" "dev" ];
21
22 src = fetchFromGitLab {
23 owner = "inkscape";
24 repo = "lib2geom";
25 rev = "refs/tags/${version}";
26 sha256 = "sha256-xkUxcAk8KJkL482R7pvgmCT+5I8aUMm/q25pvK3ZPuY=";
27 };
28
29 patches = [
30 # Fixed upstream, remove when the new version releases:
31 # https://gitlab.com/inkscape/lib2geom/-/issues/49
32 (fetchpatch {
33 name = "expect-double-eq-in-choose-test.patch";
34 url = "https://gitlab.com/inkscape/lib2geom/-/commit/5b7c75dd3841cb415f163f0a81f556c57d3e0a83.patch";
35 sha256 = "RMgwJkylrGFTTrqBzqs5j2LMSLsHhcE/UT1pKBZnU50=";
36 })
37 ];
38
39 nativeBuildInputs = [
40 cmake
41 ninja
42 pkg-config
43 ];
44
45 buildInputs = [
46 boost
47 glib
48 gsl
49 cairo
50 double-conversion
51 ];
52
53 nativeCheckInputs = [
54 gtest
55 ];
56
57 cmakeFlags = [
58 "-D2GEOM_BUILD_SHARED=ON"
59 ];
60
61 doCheck = true;
62
63 meta = with lib; {
64 description = "Easy to use 2D geometry library in C++";
65 homepage = "https://gitlab.com/inkscape/lib2geom";
66 license = [ licenses.lgpl21Only licenses.mpl11 ];
67 maintainers = with maintainers; [ jtojnar ];
68 platforms = platforms.unix;
69 };
70}