From 90dbfea895454a22604832ddf8e6e6b8169489cf Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 1 Aug 2022 08:48:07 -0700 Subject: python: fix clingo bootstrapping on Apple M1/M2 (#31792) --- var/spack/repos/builtin/packages/clingo/package.py | 4 ++-- var/spack/repos/builtin/packages/python/package.py | 13 ++++++++----- 2 files changed, 10 insertions(+), 7 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/clingo/package.py b/var/spack/repos/builtin/packages/clingo/package.py index 27dd3473e5..bef3e146cb 100644 --- a/var/spack/repos/builtin/packages/clingo/package.py +++ b/var/spack/repos/builtin/packages/clingo/package.py @@ -74,8 +74,8 @@ class Clingo(CMakePackage): """ python = self.spec["python"] return [ - self.define("Python_EXECUTABLE", str(python.command)), - self.define("Python_INCLUDE_DIR", python.package.config_vars["include"]), + self.define("Python_EXECUTABLE", python.command), + self.define("Python_INCLUDE_DIR", python.headers.directories[0]), ] @property diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py index 79dc35fafc..9f3ffa92d9 100644 --- a/var/spack/repos/builtin/packages/python/package.py +++ b/var/spack/repos/builtin/packages/python/package.py @@ -961,6 +961,7 @@ config.update(get_paths()) # get_config_vars "BINDIR": self.prefix.bin, "CC": "cc", + "CONFINCLUDEPY": self.prefix.include.join("python{}").format(version), "CXX": "c++", "INCLUDEPY": self.prefix.include.join("python{}").format(version), "LIBDEST": self.prefix.lib.join("python{}").format(version), @@ -1098,15 +1099,17 @@ config.update(get_paths()) @property def headers(self): - directory = self.config_vars["include"] + # Location where pyconfig.h is _supposed_ to be config_h = self.config_vars["config_h_filename"] - if os.path.exists(config_h): headers = HeaderList(config_h) else: - headers = find_headers("pyconfig", directory) - if headers: - config_h = headers[0] + # If not, one of these config vars should contain the right directory + for var in ["INCLUDEPY", "CONFINCLUDEPY"]: + headers = find_headers("pyconfig", self.config_vars[var]) + if headers: + config_h = headers[0] + break else: msg = "Unable to locate {} headers in {}" raise spack.error.NoHeadersError(msg.format(self.name, directory)) -- cgit v1.2.3-60-g2f50