anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / misc / organicmaps / default.nix
blobb81f09e1c301598c93b508551a52c849442c167f
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cmake
5 , ninja
6 , pkg-config
7 , which
8 , python3
9 , rsync
10 , wrapQtAppsHook
11 , qtbase
12 , qtpositioning
13 , qtsvg
14 , qtwayland
15 , libGLU
16 , libGL
17 , zlib
18 , icu
19 , freetype
20 , pugixml
21 , nix-update-script
24 let
25   world_feed_integration_tests_data = fetchFromGitHub {
26     owner = "organicmaps";
27     repo = "world_feed_integration_tests_data";
28     rev = "3b66e59eaae85ebc583ce20baa3bdf27811349c4";
29     hash = "sha256-wOZKqwYxJLllyxCr44rAcropKhohLUIVCtsR5tz9TRw=";
30   };
31 in stdenv.mkDerivation rec {
32   pname = "organicmaps";
33   version = "2024.09.08-7";
35   src = fetchFromGitHub {
36     owner = "organicmaps";
37     repo = "organicmaps";
38     rev = "${version}-android";
39     hash = "sha256-X1dmk1IBjqM2AUVkvSDNZyVtV5Ens9ninZvMvsRc334=";
40     fetchSubmodules = true;
41   };
43   postPatch = ''
44     # Disable certificate check. It's dependent on time
45     echo "exit 0" > tools/unix/check_cert.sh
47     # crude fix for https://github.com/organicmaps/organicmaps/issues/1862
48     echo "echo ${lib.replaceStrings ["." "-"] ["" ""] version}" > tools/unix/version.sh
50     # TODO use system boost instead, see https://github.com/organicmaps/organicmaps/issues/5345
51     patchShebangs 3party/boost/tools/build/src/engine/build.sh
53     # Prefetch test data, or the build system will try to fetch it with git.
54     ln -s ${world_feed_integration_tests_data} data/world_feed_integration_tests_data
55   '';
57   nativeBuildInputs = [
58     cmake
59     ninja
60     pkg-config
61     which
62     python3
63     rsync
64     wrapQtAppsHook
65   ];
67   # Most dependencies are vendored
68   buildInputs = [
69     qtbase
70     qtpositioning
71     qtsvg
72     qtwayland
73     libGLU
74     libGL
75     zlib
76     icu
77     freetype
78     pugixml
79   ];
81   # Yes, this is PRE configure. The configure phase uses cmake
82   preConfigure = ''
83     bash ./configure.sh
84   '';
86   passthru = {
87     updateScript = nix-update-script {
88       extraArgs = [ "-vr" "(.*)-android" ];
89     };
90   };
92   meta = with lib; {
93     # darwin: "invalid application of 'sizeof' to a function type"
94     broken = stdenv.hostPlatform.isDarwin;
95     homepage = "https://organicmaps.app/";
96     description = "Detailed Offline Maps for Travellers, Tourists, Hikers and Cyclists";
97     license = licenses.asl20;
98     maintainers = with maintainers; [ fgaz ];
99     platforms = platforms.all;
100     mainProgram = "OMaps";
101   };