1{
2 lib,
3 stdenv,
4 fetchurl,
5 cmake,
6 pkg-config,
7 qttools,
8 wrapQtAppsHook,
9 hicolor-icon-theme,
10 openbabel,
11 desktop-file-utils,
12}:
13
14stdenv.mkDerivation rec {
15 pname = "molsketch";
16 version = "0.8.1";
17
18 src = fetchurl {
19 url = "mirror://sourceforge/molsketch/Molsketch-${version}-src.tar.gz";
20 hash = "sha256-6wFvl3Aktv8RgEdI2ENsKallKlYy/f8Tsm5C0FB/igI=";
21 };
22
23 patches = [
24 ./openbabel.patch
25 ];
26
27 # uses C++17 APIs like std::transform_reduce
28 postPatch = ''
29 substituteInPlace molsketch/CMakeLists.txt \
30 --replace "CXX_STANDARD 14" "CXX_STANDARD 17"
31 substituteInPlace libmolsketch/CMakeLists.txt \
32 --replace "CXX_STANDARD 14" "CXX_STANDARD 17"
33 substituteInPlace obabeliface/CMakeLists.txt \
34 --replace "CXX_STANDARD 14" "CXX_STANDARD 17"
35 '';
36
37 cmakeFlags = [
38 "-DMSK_PREFIX=${placeholder "out"}"
39 ];
40
41 postFixup = ''
42 ln -s $out/lib/molsketch/* $out/lib/.
43 '';
44
45 nativeBuildInputs = [
46 cmake
47 pkg-config
48 qttools
49 wrapQtAppsHook
50 ];
51 buildInputs = [
52 hicolor-icon-theme
53 openbabel
54 desktop-file-utils
55 ];
56
57 meta = with lib; {
58 description = "2D molecule editor";
59 homepage = "https://sourceforge.net/projects/molsketch/";
60 license = licenses.gpl2Plus;
61 maintainers = [ maintainers.moni ];
62 mainProgram = "molsketch";
63 platforms = platforms.unix;
64 };
65}