1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5
6 # build-system
7 setuptools,
8
9 # dependencies
10 hidapi,
11 pyusb,
12
13 # tests
14 click,
15 pytestCheckHook,
16 spsdk,
17 writableTmpDirAsHomeHook,
18
19 # passthru
20 spsdk-mcu-link,
21}:
22
23buildPythonPackage rec {
24 pname = "spsdk-mcu-link";
25 version = "0.6.6";
26 pyproject = true;
27
28 # Latest tag missing on GitHub
29 src = fetchPypi {
30 pname = "spsdk_mcu_link";
31 inherit version;
32 hash = "sha256-KISqhJJFtHFCDOFs+Zx0ghX0lGK5tazVqEIOT9gyAQs=";
33 };
34
35 build-system = [
36 setuptools
37 ];
38
39 pythonRemoveDeps = [
40 # unpackaged
41 "libusb_package"
42 "wasmtime"
43 ];
44
45 pythonRelaxDeps = [
46 "pyusb"
47 ];
48
49 dependencies = [
50 hidapi
51 pyusb
52 ];
53
54 nativeCheckInputs = [
55 click
56 pytestCheckHook
57 spsdk
58 writableTmpDirAsHomeHook
59 ];
60
61 # Cyclic dependency with spsdk
62 doCheck = false;
63
64 passthru.tests = {
65 pytest = spsdk-mcu-link.overridePythonAttrs {
66 pythonImportsCheck = [
67 "spsdk_mcu_link"
68 ];
69
70 doCheck = true;
71 };
72 };
73
74 meta = {
75 description = "Debugger probe plugin for SPSDK supporting LPC-Link/MCU-Link from NXP";
76 homepage = "https://pypi.org/project/spsdk-mcu-link";
77 license = lib.licenses.bsd3;
78 maintainers = with lib.maintainers; [ GaetanLepage ];
79 };
80}