evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / by-name / co / codeblocks / package.nix
blob80fbe5674635dc6c166addd09be4dab22fa4ca97
1 { lib, stdenv, fetchurl, fetchpatch, pkg-config, file, zip, wxGTK32, gtk3
2 , contribPlugins ? false, hunspell, boost, wrapGAppsHook3
3 }:
5 stdenv.mkDerivation rec {
6   name = "${pname}-${lib.optionalString contribPlugins "full-"}${version}";
7   version = "20.03";
8   pname = "codeblocks";
10   src = fetchurl {
11     url = "mirror://sourceforge/codeblocks/Sources/${version}/codeblocks-${version}.tar.xz";
12     sha256 = "1idaksw1vacmm83krxh5zlb12kad3dkz9ixh70glw1gaibib7vhm";
13   };
15   nativeBuildInputs = [ pkg-config file zip wrapGAppsHook3 ];
16   buildInputs = [ wxGTK32 gtk3 ]
17     ++ lib.optionals contribPlugins [ hunspell boost ];
18   enableParallelBuilding = true;
19   patches = [
20     ./writable-projects.patch
21     ./fix-clipboard-flush.patch
22     # Fix build on non-x86 machines
23     (fetchpatch {
24       name = "remove-int3.patch";
25       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/d76c015c456561d2c7987935a5f4dc6c0932b0c4.patch";
26       sha256 = "sha256-dpH33vGf2aNdYTeLwxglYDNbvwoY2bGSG6YFRyoGw+A=";
27     })
28     (fetchpatch {
29       name = "remove-pragmas.patch";
30       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/966949d5ab7f3cb86e2a2c7ef4e853ee209b5a1a.patch";
31       sha256 = "sha256-XjejjGOvDk3gl1/n9R69XATGLj5n7tOZNyG8vIlwfyg=";
32     })
33     # Fix build with GCC 11
34     (fetchpatch {
35       name = "use-gcc11-openfilelist.patch";
36       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/a5ea6ff7ff301d739d3dc8145db1578f504ee4ca.patch";
37       sha256 = "sha256-kATaLej8kJf4xm0VicHfRetOepX8O9gOhwdna0qylvQ=";
38     })
39     (fetchpatch {
40       name = "use-gcc11-ccmanager.patch";
41       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/04b7c50fb8c6a29b2d84579ee448d2498414d855.patch";
42       sha256 = "sha256-VPy/M6IvNBxUE4hZRbLExFm0DJf4gmertrqrvsXQNz4=";
43     })
44     # Fix build with wxGTK 3.1.5
45     (fetchpatch {
46       name = "use-wxgtk315.patch";
47       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/2345b020b862ec855038dd32a51ebb072647f28d.patch";
48       sha256 = "sha256-RRjwZA37RllnG8cJdBEnASpEd8z0+ru96fjntO42OvU=";
49     })
50     (fetchpatch {
51       name = "fix-taskbar-icons.patch";
52       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/40eb88e3f2b933f19f9933e06c8d0899c54f5e25.patch";
53       hash = "sha256-Gj5gtxX5QNYAeF+QrPS/bBHLLEmflSxUHSLUK3GSs0I=";
54     })
55     (fetchpatch {
56       name = "fix-warnings.patch";
57       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/56ac0396fad7a5b4bbb40bb8c4b5fe1755078aef.patch";
58       excludes = [ "src/src/environmentsettingsdlg.h" ];
59       hash = "sha256-tl4rF9iAf1TzCIbKhVFqcxvr1IiPdwqLYZg0SY5BJ7I=";
60     })
61     (fetchpatch {
62       name = "fix-getstring.patch";
63       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/dbdf5c5ea9e3161233f0588a7616b7e4fedc7870.patch";
64       sha256 = "sha256-DrEMFluN8vs0LERa7ULGshl7HdejpsuvXAMjIr/K1fQ=";
65     })
66     # Fix build with wxGTK 3.1.6
67     (fetchpatch {
68       name = "remove-code-for-old-wx-1.patch";
69       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/8035dfdff321754819f79e3165401aa59bd8c7f7.patch";
70       hash = "sha256-Z8Ap03W/XH5VwKFVudJr7rugb0BgI2dKJgQS4yIWbEM=";
71     })
72     (fetchpatch {
73       name = "remove-code-for-old-wx-2.patch";
74       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/9a9c6a9d5e3e0f6eff5594ecd61a2222f073be9c.patch";
75       hash = "sha256-SwYixvbRuXQ+jA1ijmClWkzqzzr0viVuFOAsihGc5dM=";
76     })
77     (fetchpatch {
78       name = "remove-code-for-old-wx-3.patch";
79       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/c28746f4887f10e6f9f10eeafae0fb22ecdbf9c7.patch";
80       hash = "sha256-1lcIiCnY2nBuUsffXC2rdglOE3ccIbogcgTx4M2Ee2I=";
81     })
82     (fetchpatch {
83       name = "fix-notebookstyles.patch";
84       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/29315df024251850832583f73e67e515dae10830.patch";
85       hash = "sha256-Uc1V0eEbNljnN+1Dqb/35MLSSoLjyuRZMTofgcXRyb8=";
86     })
87     (fetchpatch {
88       name = "fix-regex.patch";
89       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/46720043319758cb0e798eb23520063583c40eaa.patch";
90       hash = "sha256-Aix58T0JJcX/7VZukU/9i/nXh9GJywXC3yXEyUZK0js=";
91     })
92     (fetchpatch {
93       name = "fix-build-with-clang.patch";
94       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/92cb2239662952e3b59b31e03edd653bb8066e64.patch";
95       hash = "sha256-XI7JW9Nuueb7muKpaC2icM/CxhrCJtO48cLHK+BVWXI=";
96     })
97     (fetchpatch {
98       name = "fix-normalize.patch";
99       url = "https://github.com/archlinux/svntogit-community/raw/458eacb60bc0e71e3d333943cebbc41e75ed0956/trunk/sc_wxtypes-normalize.patch";
100       hash = "sha256-7wEwDLwuNUWHUwHjFyq74sHiuEha1VexRLEX42rPZSs=";
101     })
102     # Fix HiDPI
103     (fetchpatch {
104       name = "update-about-dialog.patch";
105       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/a4aacc92640b587ad049cd6aa68c637e536e9ab5.patch";
106       hash = "sha256-2S4sVn+Dq5y9xcxCkzQ+WeR+qWxAOLbQUZEnk060RI0=";
107     })
108     (fetchpatch {
109       name = "add-display-info.patch";
110       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/f2f127cf5cd97c7da6a957a3f7764cb25cc9017e.patch";
111       hash = "sha256-C0dVfC0NIHMXfWNlOwjzoGz5tmG2dlnU/EE92Jjebbs=";
112     })
113     (fetchpatch {
114       name = "fix-hidpi.patch";
115       url = "https://github.com/arnholm/codeblocks_sfmirror/commit/b2e4f1279804e1d11b71bc75eeb37072c3589296.patch";
116       hash = "sha256-/Xp6ww9C3V6I67tTA4MrGpSGo3J0MXzFjzQU7RxY84U=";
117     })
118   ];
119   preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file";
120   postConfigure = lib.optionalString stdenv.hostPlatform.isLinux "substituteInPlace libtool --replace ldconfig ${stdenv.cc.libc.bin}/bin/ldconfig";
121   configureFlags = [ "--enable-pch=no" ] ++ lib.optionals contribPlugins [
122     ("--with-contrib-plugins=all,-FileManager" + lib.optionalString stdenv.hostPlatform.isDarwin ",-NassiShneiderman")
123     "--with-boost-libdir=${boost}/lib"
124   ];
125   postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
126     ln -s $out/lib/codeblocks/plugins $out/share/codeblocks/plugins
127   '';
129   meta = with lib; {
130     maintainers = [ maintainers.linquize ];
131     platforms = platforms.all;
132     description = "Open source, cross platform, free C, C++ and Fortran IDE";
133     longDescription =
134       ''
135         Code::Blocks is a free C, C++ and Fortran IDE built to meet the most demanding needs of its users.
136         It is designed to be very extensible and fully configurable.
137         Finally, an IDE with all the features you need, having a consistent look, feel and operation across platforms.
138       '';
139     homepage = "http://www.codeblocks.org";
140     license = licenses.gpl3;
141   };