# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) import re import llnl.util.tty as tty import spack.compiler import spack.util.executable from spack.package import * class Fj(Package): """The Fujitsu compiler system is a high performance, production quality code generation tool designed for high performance parallel computing workloads. """ homepage = "https://www.fujitsu.com/us/" maintainers("t-karatsu") def install(self, spec, prefix): raise InstallError( "Fujitsu compilers are not installable yet, but can be " "detected on a system where they are supplied by vendor" ) executables = ["^fcc", "^FCC", "^frt"] @classmethod def determine_version(cls, exe): version_regex = re.compile(r"\((?:FCC|FRT)\) ([a-z\d.]+)") try: output = spack.compiler.get_compiler_version_output(exe, "--version") match = version_regex.search(output) if match: return match.group(1) except spack.util.executable.ProcessError: pass except Exception as e: tty.debug(e) @classmethod def determine_variants(cls, exes, version_str): compilers = {} for exe in exes: if "fcc" in exe: compilers["c"] = exe if "FCC" in exe: compilers["cxx"] = exe if "frt" in exe: compilers["fortran"] = exe return "", {"compilers": compilers}