dotnet: improve language coverage of passthru.tests for dotnet sdks (#370789)
[NixPkgs.git] / pkgs / applications / misc / opencpn / default.nix
blobcf253fa3bc52ce0076b87ef14250d45c2e262cfd
2   stdenv,
3   lib,
4   AppKit,
5   DarwinTools,
6   alsa-utils,
7   at-spi2-core,
8   cmake,
9   curl,
10   dbus,
11   elfutils,
12   fetchFromGitHub,
13   flac,
14   gitMinimal,
15   gtk3,
16   glew,
17   gtest,
18   jasper,
19   lame,
20   libGLU,
21   libarchive,
22   libdatrie,
23   libepoxy,
24   libexif,
25   libogg,
26   libopus,
27   libselinux,
28   libsepol,
29   libsndfile,
30   libthai,
31   libunarr,
32   libusb1,
33   libvorbis,
34   libxkbcommon,
35   lsb-release,
36   lz4,
37   libmpg123,
38   makeWrapper,
39   pcre,
40   pcre2,
41   pkg-config,
42   portaudio,
43   rapidjson,
44   sqlite,
45   tinyxml,
46   util-linux,
47   wxGTK32,
48   xorg,
51 stdenv.mkDerivation (finalAttrs: {
52   pname = "opencpn";
53   version = "5.10.2";
55   src = fetchFromGitHub {
56     owner = "OpenCPN";
57     repo = "OpenCPN";
58     rev = "Release_${finalAttrs.version}";
59     hash = "sha256-VuMClQ5k1mTMF5yWstTi9YTF4tEN68acH5OPhjdzIwM=";
60   };
62   postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
63     sed -i '/fixup_bundle/d; /NO_DEFAULT_PATH/d' CMakeLists.txt
64   '';
66   nativeBuildInputs =
67     [
68       cmake
69       pkg-config
70       gtest
71     ]
72     ++ lib.optionals stdenv.hostPlatform.isLinux [
73       lsb-release
74     ]
75     ++ lib.optionals stdenv.hostPlatform.isDarwin [
76       DarwinTools
77       makeWrapper
78     ];
80   buildInputs =
81     [
82       at-spi2-core
83       curl
84       dbus
85       flac
86       gitMinimal
87     ]
88     ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
89       AppKit
90     ]
91     ++ [
92       gtk3
93       glew
94       jasper
95       libGLU
96       libarchive
97       libdatrie
98       libepoxy
99       libexif
100       libogg
101       libopus
102       libsndfile
103       libthai
104       libunarr
105       libusb1
106       libvorbis
107       libxkbcommon
108       lz4
109       libmpg123
110       pcre
111       pcre2
112       portaudio
113       rapidjson
114       sqlite
115       tinyxml
116       wxGTK32
117     ]
118     ++ lib.optionals stdenv.hostPlatform.isLinux [
119       alsa-utils
120       libselinux
121       libsepol
122       util-linux
123       xorg.libXdmcp
124       xorg.libXtst
125     ]
126     ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [
127       elfutils
128     ]
129     ++ lib.optionals stdenv.hostPlatform.isDarwin [
130       lame
131     ];
133   cmakeFlags =
134     [
135       "-DOCPN_BUNDLE_DOCS=true"
136     ]
137     ++ lib.optionals stdenv.hostPlatform.isLinux [
138       # Override OpenCPN platform detection.
139       "-DOCPN_TARGET_TUPLE=unknown;unknown;${stdenv.hostPlatform.linuxArch}"
140     ];
142   env.NIX_CFLAGS_COMPILE = toString (
143     lib.optionals (!stdenv.hostPlatform.isx86) [
144       "-DSQUISH_USE_SSE=0"
145     ]
146   );
148   postInstall = lib.optionals stdenv.hostPlatform.isDarwin ''
149     mkdir -p $out/Applications
150     mv $out/bin/OpenCPN.app $out/Applications
151     makeWrapper $out/Applications/OpenCPN.app/Contents/MacOS/OpenCPN $out/bin/opencpn
152   '';
154   doCheck = true;
156   meta = with lib; {
157     description = "Concise ChartPlotter/Navigator";
158     maintainers = with maintainers; [
159       kragniz
160       lovesegfault
161     ];
162     platforms = platforms.unix;
163     license = licenses.gpl2Plus;
164     homepage = "https://opencpn.org/";
165   };