anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / editors / mindforger / default.nix
blobdb4d65de7959e5c4c9f04d589d4eea94e9a7d9ea
1 { lib
2 , stdenv
3 , cmark-gfm
4 , fetchurl
5 , fetchpatch
6 , qmake
7 , qtbase
8 , qtwebengine
9 , wrapGAppsHook3
10 , wrapQtAppsHook
13 stdenv.mkDerivation rec {
14   pname = "mindforger";
15   version = "1.52.0";
17   src = fetchurl {
18     url = "https://github.com/dvorka/mindforger/releases/download/${version}/mindforger_${version}.tgz";
19     sha256 = "1pghsw8kwvjhg3jpmjs0n892h2l0pm0cs6ymi8b23fwk0kfj67rd";
20   };
22   nativeBuildInputs = [ qmake wrapGAppsHook3 wrapQtAppsHook ];
23   buildInputs = [ qtbase qtwebengine cmark-gfm ];
25   doCheck = true;
27   patches = [
28     # this makes the package relocatable - removes hardcoded references to /usr
29     ./paths.patch
30     #  this fixes compilation with QtWebEngine - referencing a commit trying to upstream the change - see https://github.com/dvorka/mindforger/pull/1357
31     (fetchpatch {
32       url = "https://github.com/dvorka/mindforger/commit/d28e2bade0278af1b5249953202810540969026a.diff";
33       sha256 = "sha256-qHKQQNGSc3F9seaOHV0gzBQFFqcTXk91LpKrojjpAUw=";
34     })
35   ];
37   postPatch = ''
38     substituteInPlace lib/src/install/installer.cpp --replace /usr "$out"
39     substituteInPlace app/resources/gnome-shell/mindforger.desktop --replace /usr "$out"
40     for f in app/app.pro lib/lib.pro; do
41       substituteInPlace "$f" --replace "QMAKE_CXX = g++" ""
42     done
43   '';
45   qmakeFlags = [
46     "-r"
47     "mindforger.pro"
48     "CONFIG+=mfnoccache"
49     "CONFIG+=mfwebengine"
50   ];
52   postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
53     mkdir "$out"/Applications
54     mv app/mindforger.app "$out"/Applications/
55   '';
57   meta = with lib; {
58     description = "Thinking Notebook & Markdown IDE";
59     longDescription = ''
60      MindForger is actually more than an editor or IDE - it's human
61      mind inspired personal knowledge management tool
62     '';
63     homepage = "https://www.mindforger.com";
64     license = licenses.gpl2Plus;
65     platforms = platforms.all;
66     maintainers = with maintainers; [ cyplo ];
67     mainProgram = "mindforger";
68   };