1{ lib
2, buildPythonPackage
3, fetchPypi
4, fetchpatch
5, distro
6, packaging
7, setuptools
8, wheel
9# Test Inputs
10, cmake
11, codecov
12, coverage
13, cython
14, flake8
15, ninja
16, pathpy
17, pytest
18, pytestcov
19, pytest-mock
20, pytestrunner
21, pytest-virtualenv
22, requests
23, six
24, virtualenv
25}:
26
27buildPythonPackage rec {
28 pname = "scikit-build";
29 version = "0.10.0";
30
31 src = fetchPypi {
32 inherit pname version;
33 sha256 = "7342017cc82dd6178e3b19377389b8a8d1f8b429d9cdb315cfb1094e34a0f526";
34 };
35
36 propagatedBuildInputs = [
37 distro
38 packaging
39 setuptools
40 wheel
41 ];
42 checkInputs = [
43 cmake
44 codecov
45 coverage
46 cython
47 flake8
48 ninja
49 pathpy
50 pytest
51 pytestcov
52 pytest-mock
53 pytestrunner
54 pytest-virtualenv
55 requests
56 six
57 virtualenv
58 ];
59
60 dontUseCmakeConfigure = true;
61
62 # scikit-build PR #458. Remove in version > 0.10.0
63 patches = [
64 (fetchpatch {
65 name = "python38-platform_linux_distribution-fix-458";
66 url = "https://github.com/scikit-build/scikit-build/commit/faa7284e5bc4c72bc8744987acdf3297b5d2e7e4.patch";
67 sha256 = "1hgl3cnkf266zaw534b64c88waxfz9721wha0m6j3hsnxk76ayjv";
68 })
69 ];
70
71 disabledTests = lib.concatMapStringsSep " and " (s: "not " + s) ([
72 "test_hello_develop" # tries setuptools develop install
73 "test_source_distribution" # pip has no way to install missing dependencies
74 "test_wheel" # pip has no way to install missing dependencies
75 "test_fortran_compiler" # passes if gfortran is available
76 "test_install_command" # tries to alter out path
77 "test_test_command" # tries to alter out path
78 ]);
79
80 checkPhase = ''
81 py.test -k '${disabledTests}'
82 '';
83
84 meta = with lib; {
85 description = "Improved build system generator for CPython C/C++/Fortran/Cython extensions";
86 homepage = "http://scikit-build.org/";
87 license = with licenses; [ mit bsd2 ]; # BSD due to reuses of PyNE code
88 maintainers = with maintainers; [ FlorianFranzen ];
89 };
90}