spack.compilers package¶
Submodules¶
spack.compilers.aocc module¶
- class spack.compilers.aocc.Aocc(cspec, operating_system, target, paths, modules=None, alias=None, environment=None, extra_rpaths=None, enable_implicit_rpaths=None, **kwargs)[source]¶
Bases:
spack.compiler.Compiler
- PrgEnv = 'PrgEnv-aocc'¶
- PrgEnv_compiler = 'aocc'¶
- property c11_flag¶
- property c99_flag¶
- cc_names = ['clang']¶
- property cc_pic_flag¶
Returns the flag used by the C compiler to produce Position Independent Code (PIC).
- property cflags¶
- property cxx11_flag¶
- property cxx14_flag¶
- property cxx17_flag¶
- cxx_names = ['clang++']¶
- property cxx_pic_flag¶
Returns the flag used by the C++ compiler to produce Position Independent Code (PIC).
- property cxxflags¶
- property debug_flags¶
- f77_names = ['flang']¶
- property f77_pic_flag¶
Returns the flag used by the F77 compiler to produce Position Independent Code (PIC).
- fc_names = ['flang']¶
- property fc_pic_flag¶
Returns the flag used by the FC compiler to produce Position Independent Code (PIC).
- property fflags¶
- property link_paths¶
- property openmp_flag¶
- property opt_flags¶
- required_libs = ['libclang']¶
- property stdcxx_libs¶
- property verbose_flag¶
This property should be overridden in the compiler subclass if a verbose flag is available.
If it is not overridden, it is assumed to not be supported.
- version_argument = '--version'¶
Compiler argument that produces version information
spack.compilers.apple_clang module¶
- class spack.compilers.apple_clang.AppleClang(cspec, operating_system, target, paths, modules=None, alias=None, environment=None, extra_rpaths=None, enable_implicit_rpaths=None, **kwargs)[source]¶
Bases:
spack.compilers.clang.Clang
- property cxx11_flag¶
- property cxx14_flag¶
- property cxx17_flag¶
- openmp_flag = '-Xpreprocessor -fopenmp'¶
- setup_custom_environment(pkg, env)[source]¶
Set the DEVELOPER_DIR environment for the Xcode toolchain.
On macOS, not all buildsystems support querying CC and CXX for the compilers to use and instead query the Xcode toolchain for what compiler to run. This side-steps the spack wrappers. In order to inject spack into this setup, we need to copy (a subset of) Xcode.app and replace the compiler executables with symlinks to the spack wrapper. Currently, the stage is used to store the Xcode.app copies. We then set the ‘DEVELOPER_DIR’ environment variables to cause the xcrun and related tools to use this Xcode.app.
spack.compilers.arm module¶
- class spack.compilers.arm.Arm(cspec, operating_system, target, paths, modules=None, alias=None, environment=None, extra_rpaths=None, enable_implicit_rpaths=None, **kwargs)[source]¶
Bases:
spack.compiler.Compiler
- property c11_flag¶
- property c99_flag¶
- cc_names = ['armclang']¶
- property cc_pic_flag¶
Returns the flag used by the C compiler to produce Position Independent Code (PIC).
- property cxx11_flag¶
- property cxx14_flag¶
- property cxx17_flag¶
- cxx_names = ['armclang++']¶
- property cxx_pic_flag¶
Returns the flag used by the C++ compiler to produce Position Independent Code (PIC).
- classmethod extract_version_from_output(output)[source]¶
Extracts the version from compiler’s output.
- f77_names = ['armflang']¶
- property f77_pic_flag¶
Returns the flag used by the F77 compiler to produce Position Independent Code (PIC).
- fc_names = ['armflang']¶
- property fc_pic_flag¶
Returns the flag used by the FC compiler to produce Position Independent Code (PIC).
- link_paths = {'cc': 'arm/armclang', 'cxx': 'arm/armclang++', 'f77': 'arm/armflang', 'fc': 'arm/armflang'}¶
- property openmp_flag¶
- property opt_flags¶
- required_libs = ['libclang', 'libflang']¶
- property verbose_flag¶
This property should be overridden in the compiler subclass if a verbose flag is available.
If it is not overridden, it is assumed to not be supported.
- version_argument = '--version'¶
Compiler argument that produces version information
- version_regex = 'Arm C\\/C\\+\\+\\/Fortran Compiler version ([\\d\\.]+) \\(build number (\\d+)\\) '¶
Regex used to extract version from compiler’s output
spack.compilers.cce module¶
- class spack.compilers.cce.Cce(cspec, operating_system, target, paths, modules=None, alias=None, environment=None, extra_rpaths=None, enable_implicit_rpaths=None, **kwargs)[source]¶
Bases:
spack.compiler.Compiler
Cray compiler environment compiler.
- PrgEnv = 'PrgEnv-cray'¶
- PrgEnv_compiler = 'cce'¶
- property c11_flag¶
- property c99_flag¶
- cc_names = ['cc']¶
- property cc_pic_flag¶
Returns the flag used by the C compiler to produce Position Independent Code (PIC).
- property cxx11_flag¶
- property cxx14_flag¶
- cxx_names = ['CC']¶
- property cxx_pic_flag¶
Returns the flag used by the C++ compiler to produce Position Independent Code (PIC).
- property debug_flags¶
- f77_names = ['ftn']¶
- property f77_pic_flag¶
Returns the flag used by the F77 compiler to produce Position Independent Code (PIC).
- fc_names = ['ftn']¶
- property fc_pic_flag¶
Returns the flag used by the FC compiler to produce Position Independent Code (PIC).
- property is_clang_based¶
- link_paths = {'cc': 'cce/cc', 'cxx': 'cce/case-insensitive/CC', 'f77': 'cce/ftn', 'fc': 'cce/ftn'}¶
- property openmp_flag¶
- property stdcxx_libs¶
- suffixes = ['-mp-\\d\\.\\d']¶
- property verbose_flag¶
This property should be overridden in the compiler subclass if a verbose flag is available.
If it is not overridden, it is assumed to not be supported.
- property version_argument¶
str(object=’’) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to ‘strict’.
- version_regex = '[Vv]ersion.*?(\\d+(\\.\\d+)+)'¶
Regex used to extract version from compiler’s output
spack.compilers.clang module¶
- class spack.compilers.clang.Clang(cspec, operating_system, target, paths, modules=None, alias=None, environment=None, extra_rpaths=None, enable_implicit_rpaths=None, **kwargs)[source]¶
Bases:
spack.compiler.Compiler
- property c11_flag¶
- property c99_flag¶
- cc_names = ['clang']¶
- property cc_pic_flag¶
Returns the flag used by the C compiler to produce Position Independent Code (PIC).
- property cxx11_flag¶
- property cxx14_flag¶
- property cxx17_flag¶
- cxx_names = ['clang++']¶
- property cxx_pic_flag¶
Returns the flag used by the C++ compiler to produce Position Independent Code (PIC).
- property debug_flags¶
- f77_names = ['flang', 'gfortran', 'xlf_r']¶
- property f77_pic_flag¶
Returns the flag used by the F77 compiler to produce Position Independent Code (PIC).
- fc_names = ['flang', 'gfortran', 'xlf90_r']¶
- property fc_pic_flag¶
Returns the flag used by the FC compiler to produce Position Independent Code (PIC).
- property link_paths¶
- openmp_flag = '-fopenmp'¶
- property opt_flags¶
- required_libs = ['libclang']¶
- property verbose_flag¶
This property should be overridden in the compiler subclass if a verbose flag is available.
If it is not overridden, it is assumed to not be supported.
- version_argument = '--version'¶
Compiler argument that produces version information
- spack.compilers.clang.f77_mapping = [('gfortran', 'clang/gfortran'), ('xlf_r', 'xl_r/xlf_r'), ('xlf', 'xl/xlf'), ('pgfortran', 'pgi/pgfortran'), ('ifort', 'intel/ifort')]¶
compiler symlink mappings for mixed f77 compilers
- spack.compilers.clang.fc_mapping = [('gfortran', 'clang/gfortran'), ('xlf90_r', 'xl_r/xlf90_r'), ('xlf90', 'xl/xlf90'), ('pgfortran', 'pgi/pgfortran'), ('ifort', 'intel/ifort')]¶
compiler symlink mappings for mixed f90/fc compilers
spack.compilers.fj module¶
- class spack.compilers.fj.Fj(cspec, operating_system, target, paths, modules=None, alias=None, environment=None, extra_rpaths=None, enable_implicit_rpaths=None, **kwargs)[source]¶
Bases:
spack.compiler.Compiler
- property c11_flag¶
- property c99_flag¶
- cc_names = ['fcc']¶
- property cc_pic_flag¶
Returns the flag used by the C compiler to produce Position Independent Code (PIC).
- property cxx11_flag¶
- property cxx14_flag¶
- property cxx17_flag¶
- property cxx98_flag¶
- cxx_names = ['FCC']¶
- property cxx_pic_flag¶
Returns the flag used by the C++ compiler to produce Position Independent Code (PIC).
- property debug_flags¶
- f77_names = ['frt']¶
- property f77_pic_flag¶
Returns the flag used by the F77 compiler to produce Position Independent Code (PIC).
- fc_names = ['frt']¶
- property fc_pic_flag¶
Returns the flag used by the FC compiler to produce Position Independent Code (PIC).
- link_paths = {'cc': 'fj/fcc', 'cxx': 'fj/case-insensitive/FCC', 'f77': 'fj/frt', 'fc': 'fj/frt'}¶
- property openmp_flag¶
- property opt_flags¶
- required_libs = ['libfj90i', 'libfj90f', 'libfjsrcinfo']¶
- property verbose_flag¶
This property should be overridden in the compiler subclass if a verbose flag is available.
If it is not overridden, it is assumed to not be supported.
- version_argument = '--version'¶
Compiler argument that produces version information
- version_regex = '\\((?:FCC|FRT)\\) ([a-z\\d.]+)'¶
Regex used to extract version from compiler’s output
spack.compilers.gcc module¶
- class spack.compilers.gcc.Gcc(cspec, operating_system, target, paths, modules=None, alias=None, environment=None, extra_rpaths=None, enable_implicit_rpaths=None, **kwargs)[source]¶
Bases:
spack.compiler.Compiler
- PrgEnv = 'PrgEnv-gnu'¶
- PrgEnv_compiler = 'gcc'¶
- property c11_flag¶
- property c99_flag¶
- cc_names = ['gcc']¶
- property cc_pic_flag¶
Returns the flag used by the C compiler to produce Position Independent Code (PIC).
- property cxx11_flag¶
- property cxx14_flag¶
- property cxx17_flag¶
- property cxx98_flag¶
- cxx_names = ['g++']¶
- property cxx_pic_flag¶
Returns the flag used by the C++ compiler to produce Position Independent Code (PIC).
- property debug_flags¶
- classmethod default_version(cc)[source]¶
Older versions of gcc use the
-dumpversion
option. Output looks like this:4.4.7
In GCC 7, this option was changed to only return the major version of the compiler:
7
A new
-dumpfullversion
option was added that gives us what we want:7.2.0
- f77_names = ['gfortran']¶
- property f77_pic_flag¶
Returns the flag used by the F77 compiler to produce Position Independent Code (PIC).
- fc_names = ['gfortran']¶
- property fc_pic_flag¶
Returns the flag used by the FC compiler to produce Position Independent Code (PIC).
- classmethod fc_version(fc)[source]¶
Older versions of gfortran use the
-dumpversion
option. Output looks like this:GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) Copyright (C) 2010 Free Software Foundation, Inc.
or:
4.8.5
In GCC 7, this option was changed to only return the major version of the compiler:
7
A new
-dumpfullversion
option was added that gives us what we want:7.2.0
- link_paths = {'cc': 'gcc/gcc', 'cxx': 'gcc/g++', 'f77': 'gcc/gfortran', 'fc': 'gcc/gfortran'}¶
- property openmp_flag¶
- property opt_flags¶
- required_libs = ['libgcc', 'libgfortran']¶
- property stdcxx_libs¶
- suffixes = ['-mp-\\d+\\.\\d+', '-\\d+\\.\\d+', '-\\d+', '\\d\\d']¶
- property verbose_flag¶
This property should be overridden in the compiler subclass if a verbose flag is available.
If it is not overridden, it is assumed to not be supported.
spack.compilers.intel module¶
- class spack.compilers.intel.Intel(cspec, operating_system, target, paths, modules=None, alias=None, environment=None, extra_rpaths=None, enable_implicit_rpaths=None, **kwargs)[source]¶
Bases:
spack.compiler.Compiler
- PrgEnv = 'PrgEnv-intel'¶
- PrgEnv_compiler = 'intel'¶
- property c11_flag¶
- property c99_flag¶
- cc_names = ['icc']¶
- property cc_pic_flag¶
Returns the flag used by the C compiler to produce Position Independent Code (PIC).
- property cxx11_flag¶
- property cxx14_flag¶
- cxx_names = ['icpc']¶
- property cxx_pic_flag¶
Returns the flag used by the C++ compiler to produce Position Independent Code (PIC).
- property debug_flags¶
- f77_names = ['ifort']¶
- property f77_pic_flag¶
Returns the flag used by the F77 compiler to produce Position Independent Code (PIC).
- fc_names = ['ifort']¶
- property fc_pic_flag¶
Returns the flag used by the FC compiler to produce Position Independent Code (PIC).
- link_paths = {'cc': 'intel/icc', 'cxx': 'intel/icpc', 'f77': 'intel/ifort', 'fc': 'intel/ifort'}¶
- property openmp_flag¶
- property opt_flags¶
- required_libs = ['libirc', 'libifcore', 'libifcoremt', 'libirng']¶
- property stdcxx_libs¶
- property verbose_flag¶
This property should be overridden in the compiler subclass if a verbose flag is available.
If it is not overridden, it is assumed to not be supported.
- version_argument = '--version'¶
Compiler argument that produces version information
- version_regex = '\\((?:IFORT|ICC)\\) ([^ ]+)'¶
Regex used to extract version from compiler’s output
spack.compilers.nag module¶
- class spack.compilers.nag.Nag(cspec, operating_system, target, paths, modules=None, alias=None, environment=None, extra_rpaths=None, enable_implicit_rpaths=None, **kwargs)[source]¶
Bases:
spack.compiler.Compiler
- cc_names = []¶
- property cxx11_flag¶
- cxx_names = []¶
- property debug_flags¶
- property disable_new_dtags¶
- property enable_new_dtags¶
- f77_names = ['nagfor']¶
- property f77_pic_flag¶
Returns the flag used by the F77 compiler to produce Position Independent Code (PIC).
- property f77_rpath_arg¶
- fc_names = ['nagfor']¶
- property fc_pic_flag¶
Returns the flag used by the FC compiler to produce Position Independent Code (PIC).
- property fc_rpath_arg¶
- link_paths = {'cc': 'cc', 'cxx': 'c++', 'f77': 'nag/nagfor', 'fc': 'nag/nagfor'}¶
- property linker_arg¶
Flag that need to be used to pass an argument to the linker.
- property openmp_flag¶
- property opt_flags¶
- property verbose_flag¶
This property should be overridden in the compiler subclass if a verbose flag is available.
If it is not overridden, it is assumed to not be supported.
- version_argument = '-V'¶
Compiler argument that produces version information
- version_regex = 'NAG Fortran Compiler Release ([0-9.]+)'¶
Regex used to extract version from compiler’s output
spack.compilers.nvhpc module¶
- class spack.compilers.nvhpc.Nvhpc(cspec, operating_system, target, paths, modules=None, alias=None, environment=None, extra_rpaths=None, enable_implicit_rpaths=None, **kwargs)[source]¶
Bases:
spack.compiler.Compiler
- PrgEnv = 'PrgEnv-nvhpc'¶
- PrgEnv_compiler = 'nvhpc'¶
- property c11_flag¶
- property c99_flag¶
- cc_names = ['nvc']¶
- property cc_pic_flag¶
Returns the flag used by the C compiler to produce Position Independent Code (PIC).
- property cxx11_flag¶
- property cxx14_flag¶
- property cxx17_flag¶
- cxx_names = ['nvc++']¶
- property cxx_pic_flag¶
Returns the flag used by the C++ compiler to produce Position Independent Code (PIC).
- property debug_flags¶
- f77_names = ['nvfortran']¶
- property f77_pic_flag¶
Returns the flag used by the F77 compiler to produce Position Independent Code (PIC).
- fc_names = ['nvfortran']¶
- property fc_pic_flag¶
Returns the flag used by the FC compiler to produce Position Independent Code (PIC).
- link_paths = {'cc': 'nvhpc/nvc', 'cxx': 'nvhpc/nvc++', 'f77': 'nvhpc/nvfortran', 'fc': 'nvhpc/nvfortran'}¶
- property openmp_flag¶
- property opt_flags¶
- required_libs = ['libnvc', 'libnvf']¶
- property stdcxx_libs¶
- property verbose_flag¶
This property should be overridden in the compiler subclass if a verbose flag is available.
If it is not overridden, it is assumed to not be supported.
- version_argument = '--version'¶
Compiler argument that produces version information
- version_regex = 'nv[^ ]* (?:[^ ]+ Dev-r)?([0-9.]+)(?:-[0-9]+)?'¶
Regex used to extract version from compiler’s output
spack.compilers.oneapi module¶
- class spack.compilers.oneapi.Oneapi(cspec, operating_system, target, paths, modules=None, alias=None, environment=None, extra_rpaths=None, enable_implicit_rpaths=None, **kwargs)[source]¶
Bases:
spack.compiler.Compiler
- PrgEnv = 'PrgEnv-oneapi'¶
- PrgEnv_compiler = 'oneapi'¶
- property c11_flag¶
- property c99_flag¶
- cc_names = ['icx']¶
- property cc_pic_flag¶
Returns the flag used by the C compiler to produce Position Independent Code (PIC).
- property cxx11_flag¶
- property cxx14_flag¶
- cxx_names = ['icpx']¶
- property cxx_pic_flag¶
Returns the flag used by the C++ compiler to produce Position Independent Code (PIC).
- property debug_flags¶
- f77_names = ['ifx']¶
- property f77_pic_flag¶
Returns the flag used by the F77 compiler to produce Position Independent Code (PIC).
- fc_names = ['ifx']¶
- property fc_pic_flag¶
Returns the flag used by the FC compiler to produce Position Independent Code (PIC).
- link_paths = {'cc': 'oneapi/icx', 'cxx': 'oneapi/icpx', 'f77': 'oneapi/ifx', 'fc': 'oneapi/ifx'}¶
- property openmp_flag¶
- property opt_flags¶
- required_libs = ['libirc', 'libifcore', 'libifcoremt', 'libirng', 'libsvml', 'libintlc', 'libimf', 'libsycl', 'libOpenCL']¶
- property stdcxx_libs¶
- property verbose_flag¶
This property should be overridden in the compiler subclass if a verbose flag is available.
If it is not overridden, it is assumed to not be supported.
- version_argument = '--version'¶
Compiler argument that produces version information
- version_regex = '(?:(?:oneAPI DPC\\+\\+(?:\\/C\\+\\+)? Compiler)|(?:\\(IFORT\\))) (\\S+)'¶
Regex used to extract version from compiler’s output
spack.compilers.pgi module¶
- class spack.compilers.pgi.Pgi(cspec, operating_system, target, paths, modules=None, alias=None, environment=None, extra_rpaths=None, enable_implicit_rpaths=None, **kwargs)[source]¶
Bases:
spack.compiler.Compiler
- PrgEnv = 'PrgEnv-pgi'¶
- PrgEnv_compiler = 'pgi'¶
- property c11_flag¶
- property c99_flag¶
- cc_names = ['pgcc']¶
- property cc_pic_flag¶
Returns the flag used by the C compiler to produce Position Independent Code (PIC).
- property cxx11_flag¶
- cxx_names = ['pgc++', 'pgCC']¶
- property cxx_pic_flag¶
Returns the flag used by the C++ compiler to produce Position Independent Code (PIC).
- property debug_flags¶
- f77_names = ['pgfortran', 'pgf77']¶
- property f77_pic_flag¶
Returns the flag used by the F77 compiler to produce Position Independent Code (PIC).
- fc_names = ['pgfortran', 'pgf95', 'pgf90']¶
- property fc_pic_flag¶
Returns the flag used by the FC compiler to produce Position Independent Code (PIC).
- ignore_version_errors = [2]¶
Return values to ignore when invoking the compiler to get its version
- link_paths = {'cc': 'pgi/pgcc', 'cxx': 'pgi/pgc++', 'f77': 'pgi/pgfortran', 'fc': 'pgi/pgfortran'}¶
- property openmp_flag¶
- property opt_flags¶
- required_libs = ['libpgc', 'libpgf90']¶
- property stdcxx_libs¶
- property verbose_flag¶
This property should be overridden in the compiler subclass if a verbose flag is available.
If it is not overridden, it is assumed to not be supported.
- version_argument = '-V'¶
Compiler argument that produces version information
- version_regex = 'pg[^ ]* ([0-9.]+)-[0-9]+ (LLVM )?[^ ]+ target on '¶
Regex used to extract version from compiler’s output
spack.compilers.xl module¶
- class spack.compilers.xl.Xl(cspec, operating_system, target, paths, modules=None, alias=None, environment=None, extra_rpaths=None, enable_implicit_rpaths=None, **kwargs)[source]¶
Bases:
spack.compiler.Compiler
- property c11_flag¶
- property c99_flag¶
- cc_names = ['xlc']¶
- property cc_pic_flag¶
Returns the flag used by the C compiler to produce Position Independent Code (PIC).
- property cxx11_flag¶
- cxx_names = ['xlC', 'xlc++']¶
- property cxx_pic_flag¶
Returns the flag used by the C++ compiler to produce Position Independent Code (PIC).
- property debug_flags¶
- f77_names = ['xlf']¶
- property f77_pic_flag¶
Returns the flag used by the F77 compiler to produce Position Independent Code (PIC).
- fc_names = ['xlf90', 'xlf95', 'xlf2003', 'xlf2008']¶
- property fc_pic_flag¶
Returns the flag used by the FC compiler to produce Position Independent Code (PIC).
- property fflags¶
- link_paths = {'cc': 'xl/xlc', 'cxx': 'xl/xlc++', 'f77': 'xl/xlf', 'fc': 'xl/xlf90'}¶
- property openmp_flag¶
- property opt_flags¶
- property verbose_flag¶
This property should be overridden in the compiler subclass if a verbose flag is available.
If it is not overridden, it is assumed to not be supported.
- version_argument = '-qversion'¶
Compiler argument that produces version information
- version_regex = '([0-9]?[0-9]\\.[0-9])'¶
Regex used to extract version from compiler’s output
spack.compilers.xl_r module¶
- class spack.compilers.xl_r.XlR(cspec, operating_system, target, paths, modules=None, alias=None, environment=None, extra_rpaths=None, enable_implicit_rpaths=None, **kwargs)[source]¶
Bases:
spack.compilers.xl.Xl
- cc_names = ['xlc_r']¶
- cxx_names = ['xlC_r', 'xlc++_r']¶
- f77_names = ['xlf_r']¶
- fc_names = ['xlf90_r', 'xlf95_r', 'xlf2003_r', 'xlf2008_r']¶
- link_paths = {'cc': 'xl_r/xlc_r', 'cxx': 'xl_r/xlc++_r', 'f77': 'xl_r/xlf_r', 'fc': 'xl_r/xlf90_r'}¶
Module contents¶
This module contains functions related to finding compilers on the system and configuring Spack to use multiple compilers.
- class spack.compilers.CacheReference(val)[source]¶
Bases:
object
This acts as a hashable reference to any object (regardless of whether the object itself is hashable) and also prevents the object from being garbage-collected (so if two CacheReference objects are equal, they will refer to the same object, since it will not have been gc’ed since the creation of the first CacheReference).
- exception spack.compilers.CompilerDuplicateError(compiler_spec, arch_spec)[source]¶
Bases:
spack.error.SpackError
- class spack.compilers.CompilerID(os, compiler_name, version)¶
Bases:
tuple
Gathers the attribute values by which a detected compiler is considered unique in Spack.
os: the operating system
compiler_name: the name of the compiler (e.g. ‘gcc’, ‘clang’, etc.)
version: the version of the compiler
- property compiler_name¶
Alias for field number 1
- property os¶
Alias for field number 0
- property version¶
Alias for field number 2
- exception spack.compilers.CompilerSpecInsufficientlySpecificError(compiler_spec)[source]¶
Bases:
spack.error.SpackError
- class spack.compilers.DetectVersionArgs(id, variation, language, path)¶
Bases:
tuple
Groups together the arguments needed by detect_version. The four entries in the tuple are:
- id: An instance of the CompilerID named tuple (version can be set to None
as it will be detected later)
variation: a NameVariation for file being tested
language: compiler language being tested (one of ‘cc’, ‘cxx’, ‘fc’, ‘f77’)
path: full path to the executable being tested
- property id¶
Alias for field number 0
- property language¶
Alias for field number 2
- property path¶
Alias for field number 3
- property variation¶
Alias for field number 1
- exception spack.compilers.InvalidCompilerConfigurationError(compiler_spec)[source]¶
Bases:
spack.error.SpackError
- class spack.compilers.NameVariation(prefix, suffix)¶
Bases:
tuple
Variations on a matched compiler name
- property prefix¶
Alias for field number 0
- property suffix¶
Alias for field number 1
- exception spack.compilers.NoCompilerForSpecError(compiler_spec, target)[source]¶
Bases:
spack.error.SpackError
- exception spack.compilers.NoCompilersError[source]¶
Bases:
spack.error.SpackError
- spack.compilers.add_compilers_to_config(compilers, scope=None, init_config=True)[source]¶
Add compilers to the config for the specified architecture.
- Parameters
compilers – a list of Compiler objects.
scope – configuration scope to modify.
- spack.compilers.all_compilers_config(scope=None, init_config=True)[source]¶
Return a set of specs for all the compiler versions currently available to build with. These are instances of CompilerSpec.
- spack.compilers.all_os_classes()[source]¶
Return the list of classes for all operating systems available on this platform
- spack.compilers.arguments_to_detect_version_fn(operating_system, paths)[source]¶
Returns a list of DetectVersionArgs tuples to be used in a corresponding function to detect compiler versions.
The
operating_system
instance can customize the behavior of this function by providing a method called with the same name.- Parameters
operating_system (spack.operating_systems.OperatingSystem) – the operating system on which we are looking for compilers
paths – paths to search for compilers
- Returns
List of DetectVersionArgs tuples. Each item in the list will be later mapped to the corresponding function call to detect the version of the compilers in this OS.
- spack.compilers.class_for_compiler_name(compiler_name)[source]¶
Given a compiler module name, get the corresponding Compiler class.
- spack.compilers.detect_version(detect_version_args)[source]¶
Computes the version of a compiler and adds it to the information passed as input.
As this function is meant to be executed by worker processes it won’t raise any exception but instead will return a (value, error) tuple that needs to be checked by the code dispatching the calls.
- Parameters
detect_version_args (DetectVersionArgs) – information on the compiler for which we should detect the version.
- Returns
A
(DetectVersionArgs, error)
tuple. Iferror
isNone
the version of the compiler was computed correctly and the first argument of the tuple will contain it. Otherwiseerror
is a string containing an explanation on why the version couldn’t be computed.
- spack.compilers.find_compilers(path_hints=None)[source]¶
Return the list of compilers found in the paths given as arguments.
- spack.compilers.find_new_compilers(path_hints=None, scope=None)[source]¶
Same as
find_compilers
but return only the compilers that are not already in compilers.yaml.
- spack.compilers.get_compiler_config(scope=None, init_config=True)[source]¶
Return the compiler configuration for the specified architecture.
- spack.compilers.is_mixed_toolchain(compiler)[source]¶
Returns True if the current compiler is a mixed toolchain, False otherwise.
- Parameters
compiler (spack.compiler.Compiler) – a valid compiler object
- spack.compilers.make_compiler_list(detected_versions)[source]¶
Process a list of detected versions and turn them into a list of compiler specs.