From a5436b39626a7de74bf6656ad58d41963e28236c Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 26 Aug 2024 06:37:35 -0500 Subject: R: external detection (#46023) Co-authored-by: wdconinc --- var/spack/repos/builtin/packages/r/package.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/var/spack/repos/builtin/packages/r/package.py b/var/spack/repos/builtin/packages/r/package.py index a21ac6ac84..a2d0f01517 100644 --- a/var/spack/repos/builtin/packages/r/package.py +++ b/var/spack/repos/builtin/packages/r/package.py @@ -20,6 +20,8 @@ class R(AutotoolsPackage): extendable = True + executables = ["^R$"] + license("GPL-2.0-or-later") version("4.4.1", sha256="b4cb675deaaeb7299d3b265d218cde43f192951ce5b89b7bb1a5148a36b2d94d") @@ -127,6 +129,24 @@ class R(AutotoolsPackage): build_directory = "spack-build" + @classmethod + def determine_version(cls, exe): + output = Executable(exe)("--version", output=str, error=str) + # R version 4.3.3 (2024-02-29) -- "Angel Food Cake" + match = re.search(r"^R version ([^\s]+)", output) + return match.group(1) if match else None + + @classmethod + def determine_variants(cls, exes, version): + variants = [] + for exe in exes: + output = Executable(exe)("CMD", "config", "--all", output=str, error=str) + + if "-lX11" in output: + variants.append("+X") + + return variants + # R custom URL version def url_for_version(self, version): """Handle R's customed URL versions""" -- cgit v1.2.3-70-g09d2