1{
2 lib,
3 buildPythonPackage,
4 defusedxml,
5 fetchFromGitHub,
6 fetchpatch,
7 pytestCheckHook,
8 pythonOlder,
9 setuptools,
10 sphinx,
11}:
12
13buildPythonPackage rec {
14 pname = "breathe";
15 version = "4.35.0";
16 pyproject = true;
17
18 disabled = pythonOlder "3.7";
19
20 src = fetchFromGitHub {
21 owner = "breathe-doc";
22 repo = "breathe";
23 rev = "refs/tags/v${version}";
24 hash = "sha256-LJXvtScyWRL8zfj877bJ4xuIbLV9IN3Sn9KPUTLMjMI=";
25 };
26
27 patches = [
28 # sphinx 7.2 support https://github.com/breathe-doc/breathe/pull/964
29 (fetchpatch {
30 url = "https://github.com/breathe-doc/breathe/commit/caa8dc45222b35d360c24bf36835a7d8e6d86df2.patch";
31 hash = "sha256-wWe4x4WwZTrDhNZAF7mhfHHNEjd+Kp4YXghL+DPa10w=";
32 })
33 # sphinx 7.2 support https://github.com/breathe-doc/breathe/pull/976
34 (fetchpatch {
35 url = "https://github.com/breathe-doc/breathe/commit/09c856bf72de41e82582f31855e916295ba6d382.patch";
36 hash = "sha256-vU3DUrj4Jj4AUolFFtWmaLMf9RG7TmKqJe5sCwwRjPI=";
37 })
38 ];
39
40 build-system = [ setuptools ];
41
42 dependencies = [ sphinx ];
43
44 nativeCheckInputs = [
45 defusedxml
46 pytestCheckHook
47 ];
48
49 disabledTestPaths = [
50 # tests fail with sphinx 7.4.x
51 "tests/test_renderer.py"
52 ];
53
54 pythonImportsCheck = [ "breathe" ];
55
56 meta = {
57 description = "Sphinx Doxygen renderer";
58 mainProgram = "breathe-apidoc";
59 homepage = "https://github.com/breathe-doc/breathe";
60 license = lib.licenses.bsd3;
61 maintainers = lib.teams.sphinx.members;
62 };
63}