1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 cmake,
6 pkg-config,
7 wrapGAppsHook3,
8 at-spi2-core,
9 cairo,
10 dbus,
11 eigen,
12 freetype,
13 fontconfig,
14 glew,
15 gtkmm3,
16 json_c,
17 libdatrie,
18 libepoxy,
19 libGLU,
20 libpng,
21 libselinux,
22 libsepol,
23 libspnav,
24 libthai,
25 libxkbcommon,
26 pangomm,
27 pcre,
28 util-linuxMinimal, # provides libmount
29 xorg,
30 zlib,
31}:
32
33stdenv.mkDerivation rec {
34 pname = "solvespace";
35 version = "3.1";
36
37 src = fetchFromGitHub {
38 owner = "solvespace";
39 repo = "solvespace";
40 rev = "v${version}";
41 hash = "sha256-sSDht8pBrOG1YpsWfC/CLTTWh2cI5pn2PXGH900Z0yA=";
42 fetchSubmodules = true;
43 };
44
45 nativeBuildInputs = [
46 cmake
47 pkg-config
48 wrapGAppsHook3
49 ];
50
51 buildInputs = [
52 at-spi2-core
53 cairo
54 dbus
55 eigen
56 freetype
57 fontconfig
58 glew
59 gtkmm3
60 json_c
61 libdatrie
62 libepoxy
63 libGLU
64 libpng
65 libselinux
66 libsepol
67 libspnav
68 libthai
69 libxkbcommon
70 pangomm
71 pcre
72 util-linuxMinimal
73 xorg.libpthreadstubs
74 xorg.libXdmcp
75 xorg.libXtst
76 zlib
77 ];
78
79 postPatch = ''
80 patch CMakeLists.txt <<EOF
81 @@ -20,9 +20,9 @@
82 # NOTE TO PACKAGERS: The embedded git commit hash is critical for rapid bug triage when the builds
83 # can come from a variety of sources. If you are mirroring the sources or otherwise build when
84 # the .git directory is not present, please comment the following line:
85 -include(GetGitCommitHash)
86 +# include(GetGitCommitHash)
87 # and instead uncomment the following, adding the complete git hash of the checkout you are using:
88 -# set(GIT_COMMIT_HASH 0000000000000000000000000000000000000000)
89 +set(GIT_COMMIT_HASH $version)
90 EOF
91 '';
92
93 cmakeFlags = [ "-DENABLE_OPENMP=ON" ];
94
95 meta = {
96 description = "Parametric 3d CAD program";
97 license = lib.licenses.gpl3Plus;
98 maintainers = [ lib.maintainers.edef ];
99 platforms = lib.platforms.linux;
100 homepage = "https://solvespace.com";
101 changelog = "https://github.com/solvespace/solvespace/raw/v${version}/CHANGELOG.md";
102 };
103}