From 9b0b85345ce982426d6d16f086c06eb174d9a024 Mon Sep 17 00:00:00 2001 From: Frederik Rietdijk Date: Thu, 19 Dec 2019 19:57:42 +0100 Subject: [PATCH] pythonPackages.pybind11: hardcode include directory --- .../0001-Find-include-directory.patch | 53 +++++++++++++++++++ .../python-modules/pybind11/default.nix | 10 +++- 2 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch diff --git a/pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch b/pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch new file mode 100644 index 00000000000..d5b669dab7a --- /dev/null +++ b/pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch @@ -0,0 +1,53 @@ +From a027e2590d5d2d384d23568a8d47b7095054b6b7 Mon Sep 17 00:00:00 2001 +From: Frederik Rietdijk +Date: Thu, 19 Dec 2019 19:51:07 +0100 +Subject: [PATCH] Find include directory + +--- + pybind11/__init__.py | 33 +-------------------------------- + 1 file changed, 1 insertion(+), 32 deletions(-) + +diff --git a/pybind11/__init__.py b/pybind11/__init__.py +index c625e8c..c8a707b 100644 +--- a/pybind11/__init__.py ++++ b/pybind11/__init__.py +@@ -2,35 +2,4 @@ from ._version import version_info, __version__ # noqa: F401 imported but unuse + + + def get_include(user=False): +- from distutils.dist import Distribution +- import os +- import sys +- +- # Are we running in a virtual environment? +- virtualenv = hasattr(sys, 'real_prefix') or \ +- sys.prefix != getattr(sys, "base_prefix", sys.prefix) +- +- # Are we running in a conda environment? +- conda = os.path.exists(os.path.join(sys.prefix, 'conda-meta')) +- +- if virtualenv: +- return os.path.join(sys.prefix, 'include', 'site', +- 'python' + sys.version[:3]) +- elif conda: +- if os.name == 'nt': +- return os.path.join(sys.prefix, 'Library', 'include') +- else: +- return os.path.join(sys.prefix, 'include') +- else: +- dist = Distribution({'name': 'pybind11'}) +- dist.parse_config_files() +- +- dist_cobj = dist.get_command_obj('install', create=True) +- +- # Search for packages in user's home directory? +- if user: +- dist_cobj.user = user +- dist_cobj.prefix = "" +- dist_cobj.finalize_options() +- +- return os.path.dirname(dist_cobj.install_headers) ++ return "@include@" +-- +2.23.0 + diff --git a/pkgs/development/python-modules/pybind11/default.nix b/pkgs/development/python-modules/pybind11/default.nix index 442e6e70018..76e60fda86a 100644 --- a/pkgs/development/python-modules/pybind11/default.nix +++ b/pkgs/development/python-modules/pybind11/default.nix @@ -39,6 +39,14 @@ buildPythonPackage rec { dontUsePipInstall = true; dontUseSetuptoolsCheck = true; + patches = [ + ./0001-Find-include-directory.patch + ]; + + postPatch = '' + substituteInPlace pybind11/__init__.py --subst-var-by include "$out/include" + ''; + preFixup = '' pushd .. export PYBIND11_USE_CMAKE=1 @@ -50,8 +58,6 @@ buildPythonPackage rec { popd ''; - doCheck = true; - checkInputs = [ pytest numpy