summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2018-04-12 01:50:17 +0200
committerJan Tojnar <jtojnar@gmail.com>2018-04-12 01:50:17 +0200
commitfc3a467b22344e0b260ecac204db9909b8d6f917 (patch)
treea0e8dcf37a778403810d478c43c0a3567d1f32cc /pkgs/build-support
parent0884027ef56c0e7cac94e1c0a42c2a1610c8ef5c (diff)
parentd2ce3a9bda57111a8f96f60a2ffaa5ed848cc1a8 (diff)
downloadnixlib-fc3a467b22344e0b260ecac204db9909b8d6f917.tar
nixlib-fc3a467b22344e0b260ecac204db9909b8d6f917.tar.gz
nixlib-fc3a467b22344e0b260ecac204db9909b8d6f917.tar.bz2
nixlib-fc3a467b22344e0b260ecac204db9909b8d6f917.tar.lz
nixlib-fc3a467b22344e0b260ecac204db9909b8d6f917.tar.xz
nixlib-fc3a467b22344e0b260ecac204db9909b8d6f917.tar.zst
nixlib-fc3a467b22344e0b260ecac204db9909b8d6f917.zip
Merge remote-tracking branch 'upstream/master' into staging
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/build-setupcfg/default.nix23
1 files changed, 23 insertions, 0 deletions
diff --git a/pkgs/build-support/build-setupcfg/default.nix b/pkgs/build-support/build-setupcfg/default.nix
new file mode 100644
index 000000000000..62dda59f1d52
--- /dev/null
+++ b/pkgs/build-support/build-setupcfg/default.nix
@@ -0,0 +1,23 @@
+# Build a python package from info made available by setupcfg2nix.
+#
+# * src: The source of the package.
+# * info: The package information generated by setupcfg2nix.
+# * meta: Standard nixpkgs metadata.
+# * application: Whether this package is a python library or an
+#   application which happens to be written in python.
+pythonPackages: { src, info, meta ? {}, application ? false }: let
+  build = if application
+    then pythonPackages.buildPythonApplication
+  else pythonPackages.buildPythonPackage;
+in build {
+  inherit (info) pname version;
+
+  inherit src meta;
+
+  nativeBuildInputs = map (p: pythonPackages.${p}) (
+    (info.setup_requires or []) ++
+    (info.tests_require or []));
+
+  propagatedBuildInputs = map (p: pythonPackages.${p})
+    (info.install_requires or []);
+}