biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / misc / opencpn / default.nix
blob479fe1bcb0763172527094585034616283893861
1 { stdenv
2 , lib
3 , AppKit
4 , DarwinTools
5 , alsa-utils
6 , at-spi2-core
7 , cmake
8 , curl
9 , dbus
10 , elfutils
11 , fetchFromGitHub
12 , flac
13 , gtk3
14 , glew
15 , gtest
16 , jasper
17 , lame
18 , libGLU
19 , libarchive
20 , libdatrie
21 , libepoxy
22 , libexif
23 , libogg
24 , libopus
25 , libselinux
26 , libsepol
27 , libsndfile
28 , libthai
29 , libunarr
30 , libusb1
31 , libvorbis
32 , libxkbcommon
33 , lsb-release
34 , lz4
35 , libmpg123
36 , makeWrapper
37 , pcre
38 , pcre2
39 , pkg-config
40 , portaudio
41 , rapidjson
42 , sqlite
43 , tinyxml
44 , util-linux
45 , wxGTK32
46 , xorg
49 stdenv.mkDerivation (finalAttrs: {
50   pname = "opencpn";
51   version = "5.8.4";
53   src = fetchFromGitHub {
54     owner = "OpenCPN";
55     repo = "OpenCPN";
56     rev = "Release_${finalAttrs.version}";
57     hash = "sha256-axRI3sssj2Q6IBfIeyvOa494b0EgKFP+lFL/QrGIybQ=";
58   };
60   postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
61     sed -i '/fixup_bundle/d; /NO_DEFAULT_PATH/d' CMakeLists.txt
62   '';
64   nativeBuildInputs = [
65     cmake
66     pkg-config
67     gtest
68   ] ++ lib.optionals stdenv.hostPlatform.isLinux [
69     lsb-release
70   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
71     DarwinTools
72     makeWrapper
73   ];
75   buildInputs = [
76     at-spi2-core
77     curl
78     dbus
79     flac
80   ] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
81     AppKit
82   ] ++ [
83     gtk3
84     glew
85     jasper
86     libGLU
87     libarchive
88     libdatrie
89     libepoxy
90     libexif
91     libogg
92     libopus
93     libsndfile
94     libthai
95     libunarr
96     libusb1
97     libvorbis
98     libxkbcommon
99     lz4
100     libmpg123
101     pcre
102     pcre2
103     portaudio
104     rapidjson
105     sqlite
106     tinyxml
107     wxGTK32
108   ] ++ lib.optionals stdenv.hostPlatform.isLinux [
109     alsa-utils
110     libselinux
111     libsepol
112     util-linux
113     xorg.libXdmcp
114     xorg.libXtst
115   ] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [
116     elfutils
117   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
118     lame
119   ];
121   cmakeFlags = [ "-DOCPN_BUNDLE_DOCS=true" ];
123   env.NIX_CFLAGS_COMPILE = toString (lib.optionals (!stdenv.hostPlatform.isx86) [
124     "-DSQUISH_USE_SSE=0"
125   ]);
127   postInstall = lib.optionals stdenv.hostPlatform.isDarwin ''
128     mkdir -p $out/Applications
129     mv $out/bin/OpenCPN.app $out/Applications
130     makeWrapper $out/Applications/OpenCPN.app/Contents/MacOS/OpenCPN $out/bin/opencpn
131   '';
133   doCheck = true;
135   meta = with lib; {
136     description = "Concise ChartPlotter/Navigator";
137     maintainers = with maintainers; [ kragniz lovesegfault ];
138     platforms = platforms.unix;
139     license = licenses.gpl2Plus;
140     homepage = "https://opencpn.org/";
141   };