lol
1{
2 cmake,
3 desktopToDarwinBundle,
4 eigen,
5 fetchFromGitHub,
6 glm,
7 gobject-introspection,
8 gtkmm4,
9 lib,
10 libepoxy,
11 libossp_uuid,
12 librsvg,
13 libspnav,
14 libuuid,
15 libxml2,
16 meson,
17 ninja,
18 opencascade-occt_7_6,
19 pkg-config,
20 python3,
21 stdenv,
22 wrapGAppsHook3,
23}:
24
25let
26 opencascade-occt = opencascade-occt_7_6;
27in
28stdenv.mkDerivation (finalAttrs: {
29 pname = "dune3d";
30 version = "1.3.0";
31
32 src = fetchFromGitHub {
33 owner = "dune3d";
34 repo = "dune3d";
35 rev = "v${finalAttrs.version}";
36 hash = "sha256-9lBaenBxMoJgG5tMM+EZ87xcJ4HhFTA9RUNZt2Jx34Q=";
37 };
38
39 nativeBuildInputs = [
40 gobject-introspection
41 meson
42 ninja
43 pkg-config
44 wrapGAppsHook3
45 libxml2 # for xmllints
46 ]
47 ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
48
49 buildInputs = [
50 cmake
51 eigen
52 glm
53 gtkmm4
54 libepoxy
55 librsvg
56 libspnav
57 (if stdenv.hostPlatform.isLinux then libuuid else libossp_uuid)
58 opencascade-occt
59 (python3.withPackages (pp: [
60 pp.pygobject3
61 ]))
62 ];
63
64 env.CASROOT = opencascade-occt;
65
66 meta = {
67 description = "3D CAD application";
68 homepage = "https://dune3d.org";
69 license = lib.licenses.gpl3Plus;
70 maintainers = with lib.maintainers; [
71 _0x4A6F
72 jue89
73 ];
74 mainProgram = "dune3d";
75 platforms = lib.platforms.linux ++ lib.platforms.darwin;
76 };
77})