1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 qtbase,
6 qttools,
7 qtsvg,
8 qt5compat,
9 opencascade-occt,
10 libGLU,
11 cmake,
12 wrapQtAppsHook,
13 rustPlatform,
14 cargo,
15 rustc,
16}:
17
18stdenv.mkDerivation rec {
19 pname = "librepcb";
20 version = "1.3.0";
21
22 src = fetchFromGitHub {
23 owner = pname;
24 repo = pname;
25 rev = version;
26 hash = "sha256-J4y0ikZNuOguN9msmEQzgcY0/REnOEOoDkY/ga+Cfd8=";
27 fetchSubmodules = true;
28 };
29
30 nativeBuildInputs = [
31 cmake
32 qttools
33 qtsvg
34 qt5compat
35 wrapQtAppsHook
36 opencascade-occt
37 libGLU
38 rustPlatform.cargoSetupHook
39 cargo
40 rustc
41 ];
42 buildInputs = [ qtbase ];
43
44 cargoDeps = rustPlatform.fetchCargoVendor {
45 inherit src cargoRoot;
46 hash = "sha256-1td3WjxbDq2lX7c0trpYRhO82ChNAG/ZABBRsekYtq4=";
47 };
48
49 cargoRoot = "libs/librepcb/rust-core";
50
51 meta = with lib; {
52 description = "Free EDA software to develop printed circuit boards";
53 homepage = "https://librepcb.org/";
54 maintainers = with maintainers; [
55 luz
56 thoughtpolice
57 ];
58 license = licenses.gpl3Plus;
59 platforms = platforms.linux;
60 };
61}