nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 86 lines 1.6 kB view raw
1{ 2 lib, 3 fetchFromGitHub, 4 meerk40t-camera, 5 python3Packages, 6 gtk3, 7 wrapGAppsHook3, 8}: 9 10python3Packages.buildPythonApplication rec { 11 pname = "MeerK40t"; 12 version = "0.9.7051"; 13 pyproject = true; 14 15 src = fetchFromGitHub { 16 owner = "meerk40t"; 17 repo = pname; 18 tag = version; 19 hash = "sha256-v3lwFl4Qls+NzR2rYwNF8PyFTH0nNcLlF/uwc0h3Pc0="; 20 }; 21 22 nativeBuildInputs = [ 23 wrapGAppsHook3 24 ] 25 ++ (with python3Packages; [ 26 setuptools 27 ]); 28 29 # prevent double wrapping 30 dontWrapGApps = true; 31 32 # https://github.com/meerk40t/meerk40t/blob/main/setup.py 33 propagatedBuildInputs = 34 with python3Packages; 35 [ 36 meerk40t-camera 37 numpy 38 pyserial 39 pyusb 40 setuptools 41 wxpython 42 ] 43 ++ lib.flatten (lib.attrValues optional-dependencies); 44 45 optional-dependencies = with python3Packages; { 46 cam = [ 47 opencv4 48 ]; 49 camhead = [ 50 opencv4 51 ]; 52 dxf = [ 53 ezdxf 54 ]; 55 gui = [ 56 wxpython 57 pillow 58 opencv4 59 ezdxf 60 ]; 61 }; 62 63 preFixup = '' 64 gappsWrapperArgs+=( 65 --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}" 66 ) 67 makeWrapperArgs+=("''${gappsWrapperArgs[@]}") 68 ''; 69 70 nativeCheckInputs = with python3Packages; [ 71 unittestCheckHook 72 ]; 73 74 preCheck = '' 75 export HOME=$TMPDIR 76 ''; 77 78 meta = with lib; { 79 changelog = "https://github.com/meerk40t/meerk40t/releases/tag/${src.tag}"; 80 description = "MeerK40t LaserCutter Software"; 81 mainProgram = "meerk40t"; 82 homepage = "https://github.com/meerk40t/meerk40t"; 83 license = licenses.mit; 84 maintainers = with maintainers; [ hexa ]; 85 }; 86}