spack.build_systems package¶
Submodules¶
spack.build_systems.aspell_dict module¶
- class spack.build_systems.aspell_dict.AspellDictPackage(spec)[source]¶
Bases:
spack.build_systems.autotools.AutotoolsPackage
Specialized class for building aspell dictionairies.
- configure(spec, prefix)[source]¶
Runs configure with the arguments specified in
configure_args()
and an appropriately set prefix.
spack.build_systems.autotools module¶
- class spack.build_systems.autotools.AutotoolsPackage(spec)[source]¶
Bases:
spack.package.PackageBase
Specialized class for packages built using GNU Autotools.
This class provides four phases that can be overridden:
They all have sensible defaults and for many packages the only thing necessary will be to override the helper method
configure_args()
. For a finer tuning you may also override:Method
Purpose
Specify
make
targets for the build phaseSpecify
make
targets for the install phaseRun build time tests if required
- property archive_files¶
Files to archive for packages based on autotools
- autoreconf_extra_args = []¶
Options to be passed to autoreconf when using the default implementation
- property autoreconf_search_path_args¶
Arguments to autoreconf to modify the search paths
- build(spec, prefix)[source]¶
Makes the build targets specified by :py:attr:
~.AutotoolsPackage.build_targets
- property build_directory¶
Override to provide another place to build the package
- build_system_class = 'AutotoolsPackage'¶
This attribute is used in UI queries that need to know the build system base class
- build_time_test_callbacks = ['check']¶
Callback names for build-time test
- configure(spec, prefix)[source]¶
Runs configure with the arguments specified in
configure_args()
and an appropriately set prefix.
- property configure_abs_path¶
- configure_args()[source]¶
Produces a list containing all the arguments that must be passed to configure, except
--prefix
which will be pre-pended to the list.- Returns
list of arguments for configure
- property configure_directory¶
Returns the directory where ‘configure’ resides.
- Returns
directory where to find configure
- enable_or_disable(name, activation_value=None, variant=None)[source]¶
Same as
with_or_without()
but substitutewith
withenable
andwithout
withdisable
.- Parameters
name (str) – name of a valid multi-valued variant
activation_value (typing.Callable) –
if present accepts a single value and returns the parameter to be used leading to an entry of the type
--enable-{name}={parameter}
The special value ‘prefix’ can also be assigned and will return
spec[name].prefix
as activation parameter.
- Returns
list of arguments to configure
- flags_to_build_system_args(flags)[source]¶
Produces a list of all command line arguments to pass specified compiler flags to configure.
- force_autoreconf = False¶
Set to true to force the autoreconf step even if configure is present
- install(spec, prefix)[source]¶
Makes the install targets specified by :py:attr:
~.AutotoolsPackage.install_targets
- install_libtool_archives = False¶
If False deletes all the .la files in the prefix folder after the installation. If True instead it installs them.
- install_time_test_callbacks = ['installcheck']¶
Callback names for install-time test
- property patch_config_files¶
Whether or not to update old
config.guess
andconfig.sub
files distributed with the tarball. This currently only applies toppc64le:
,aarch64:
, andriscv64
target architectures. The substitutes are taken from thegnuconfig
package, which is automatically added as a build dependency for these architectures. In case system versions of these config files are required, thegnuconfig
package can be marked external with a prefix pointing to the directory containing the systemconfig.guess
andconfig.sub
files.
- patch_libtool = True¶
Whether or not to update
libtool
(currently only for Arm/Clang/Fujitsu compilers)
- phases = ['autoreconf', 'configure', 'build', 'install']¶
Phases of a GNU Autotools package
- remove_libtool_archives()[source]¶
Remove all .la files in prefix sub-folders if the package sets
install_libtool_archives
to be False.
- set_configure_or_die()[source]¶
Checks the presence of a
configure
file after the autoreconf phase. If it is found sets a module attribute appropriately, otherwise raises an error.- Raises
RuntimeError – if a configure script is not found in
configure_directory()
- with_or_without(name, activation_value=None, variant=None)[source]¶
Inspects a variant and returns the arguments that activate or deactivate the selected feature(s) for the configure options.
This function works on all type of variants. For bool-valued variants it will return by default
--with-{name}
or--without-{name}
. For other kinds of variants it will cycle over the allowed values and return either--with-{value}
or--without-{value}
.If activation_value is given, then for each possible value of the variant, the option
--with-{value}=activation_value(value)
or--without-{value}
will be added depending on whether or notvariant=value
is in the spec.- Parameters
name (str) – name of a valid multi-valued variant
activation_value (typing.Callable) –
callable that accepts a single value and returns the parameter to be used leading to an entry of the type
--with-{name}={parameter}
.The special value ‘prefix’ can also be assigned and will return
spec[name].prefix
as activation parameter.
- Returns
list of arguments to configure
spack.build_systems.cached_cmake module¶
- class spack.build_systems.cached_cmake.CachedCMakePackage(spec)[source]¶
Bases:
spack.build_systems.cmake.CMakePackage
Specialized class for packages built using CMake initial cache.
This feature of CMake allows packages to increase reproducibility, especially between Spack- and manual builds. It also allows packages to sidestep certain parsing bugs in extremely long
cmake
commands, and to avoid system limits on the length of the command line.- property cache_name¶
- property cache_path¶
- flag_handler(name, flags)[source]¶
flag_handler that injects all flags through the compiler wrapper.
- phases = ['initconfig', 'cmake', 'build', 'install']¶
Phases of a CMake package
- property std_cmake_args¶
Standard cmake arguments provided as a property for convenience of package writers
- Returns
standard cmake arguments
- spack.build_systems.cached_cmake.cmake_cache_option(name, boolean_value, comment='')[source]¶
Generate a string for a cmake configuration option
spack.build_systems.cmake module¶
- class spack.build_systems.cmake.CMakePackage(spec)[source]¶
Bases:
spack.package.PackageBase
Specialized class for packages built using CMake
For more information on the CMake build system, see: https://cmake.org/cmake/help/latest/
This class provides three phases that can be overridden:
They all have sensible defaults and for many packages the only thing necessary will be to override
cmake_args()
. For a finer tuning you may also override:Method
Purpose
Location of the root CMakeLists.txt
Directory where to build the package
The generator used by CMake can be specified by providing the generator attribute. Per https://cmake.org/cmake/help/git-master/manual/cmake-generators.7.html, the format is: [<secondary-generator> - ]<primary_generator>. The full list of primary and secondary generators supported by CMake may be found in the documentation for the version of CMake used; however, at this time Spack supports only the primary generators “Unix Makefiles” and “Ninja.” Spack’s CMake support is agnostic with respect to primary generators. Spack will generate a runtime error if the generator string does not follow the prescribed format, or if the primary generator is not supported.
- property archive_files¶
Files to archive for packages based on CMake
- property build_directory¶
Returns the directory to use when building the package
- Returns
directory where to build the package
- property build_dirname¶
Returns the directory name to use when building the package
- Returns
name of the subdirectory for building the package
- build_system_class = 'CMakePackage'¶
This attribute is used in UI queries that need to know the build system base class
- build_targets = []¶
- build_time_test_callbacks = ['check']¶
A list or set of build time test functions to be called when tests are executed or ‘None’ if there are no such test functions.
- cmake_args()[source]¶
Produces a list containing all the arguments that must be passed to cmake, except:
CMAKE_INSTALL_PREFIX
CMAKE_BUILD_TYPE
which will be set automatically.
- Returns
list of arguments for cmake
- static define(cmake_var, value)[source]¶
Return a CMake command line argument that defines a variable.
The resulting argument will convert boolean values to OFF/ON and lists/tuples to CMake semicolon-separated string lists. All other values will be interpreted as strings.
Examples
[define('BUILD_SHARED_LIBS', True), define('CMAKE_CXX_STANDARD', 14), define('swr', ['avx', 'avx2'])]
will generate the following configuration options:
["-DBUILD_SHARED_LIBS:BOOL=ON", "-DCMAKE_CXX_STANDARD:STRING=14", "-DSWR:STRING=avx;avx2]
- define_from_variant(cmake_var, variant=None)[source]¶
Return a CMake command line argument from the given variant’s value.
The optional
variant
argument defaults to the lower-case transform ofcmake_var
.This utility function is similar to
with_or_without()
.Examples
Given a package with:
variant('cxxstd', default='11', values=('11', '14'), multi=False, description='') variant('shared', default=True, description='') variant('swr', values=any_combination_of('avx', 'avx2'), description='')
calling this function like:
[self.define_from_variant('BUILD_SHARED_LIBS', 'shared'), self.define_from_variant('CMAKE_CXX_STANDARD', 'cxxstd'), self.define_from_variant('SWR')]
will generate the following configuration options:
["-DBUILD_SHARED_LIBS:BOOL=ON", "-DCMAKE_CXX_STANDARD:STRING=14", "-DSWR:STRING=avx;avx2]
for
<spec-name> cxxstd=14 +shared swr=avx,avx2
- flags_to_build_system_args(flags)[source]¶
Produces a list of all command line arguments to pass the specified compiler flags to cmake. Note CMAKE does not have a cppflags option, so cppflags will be added to cflags, cxxflags, and fflags to mimic the behavior in other tools.
- generator = 'Unix Makefiles'¶
The build system generator to use.
See
cmake --help
for a list of valid generators. Currently, “Unix Makefiles” and “Ninja” are the only generators that Spack supports. Defaults to “Unix Makefiles”.See https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html for more information.
- install_targets = ['install']¶
- phases = ['cmake', 'build', 'install']¶
Phases of a CMake package
- property root_cmakelists_dir¶
The relative path to the directory containing CMakeLists.txt
This path is relative to the root of the extracted tarball, not to the
build_directory
. Defaults to the current directory.- Returns
directory containing CMakeLists.txt
- property std_cmake_args¶
Standard cmake arguments provided as a property for convenience of package writers
- Returns
standard cmake arguments
spack.build_systems.cuda module¶
- class spack.build_systems.cuda.CudaPackage(spec)[source]¶
Bases:
spack.package.PackageBase
Auxiliary class which contains CUDA variant, dependencies and conflicts and is meant to unify and facilitate its usage.
Maintainers: ax3l, Rombur, davidbeckingsale
- cuda_arch_values = ('10', '11', '12', '13', '20', '21', '30', '32', '35', '37', '50', '52', '53', '60', '61', '62', '70', '72', '75', '80', '86')¶
- value = '86'¶
spack.build_systems.gnu module¶
- class spack.build_systems.gnu.GNUMirrorPackage(spec)[source]¶
Bases:
spack.package.PackageBase
Mixin that takes care of setting url and mirrors for GNU packages.
- base_mirrors = ['https://ftpmirror.gnu.org/', 'https://ftp.gnu.org/gnu/', 'http://ftpmirror.gnu.org/']¶
List of GNU mirrors used by Spack
- gnu_mirror_path = None¶
Path of the package in a GNU mirror
- property urls¶
spack.build_systems.intel module¶
- class spack.build_systems.intel.IntelPackage(spec)[source]¶
Bases:
spack.package.PackageBase
Specialized class for licensed Intel software.
This class provides two phases that can be overridden:
They both have sensible defaults and for many packages the only thing necessary will be to override setup_run_environment to set the appropriate environment variables.
- auto_dispatch_options = ('COMMON-AVX512', 'MIC-AVX512', 'CORE-AVX512', 'CORE-AVX2', 'CORE-AVX-I', 'AVX', 'SSE4.2', 'SSE4.1', 'SSSE3', 'SSE3', 'SSE2')¶
- property blas_libs¶
- build_system_class = 'IntelPackage'¶
This attribute is used in UI queries that need to know the build system base class
- component_lib_dir(component, **kwargs)[source]¶
Provide directory suitable for find_libraries() and SPACK_COMPILER_EXTRA_RPATHS.
- configure(spec, prefix)[source]¶
Generates the silent.cfg file to pass to installer.sh.
See https://software.intel.com/en-us/articles/configuration-file-format
- property file_to_source¶
Full path of file to source for initializing an Intel package. A client package could override as follows: ` @property` ` def file_to_source(self):` ` return self.normalize_path(“apsvars.sh”, “vtune_amplifier”)`
- property global_license_file¶
Returns the path where a Spack-global license file should be stored.
All Intel software shares the same license, so we store it in a common ‘intel’ directory.
- property headers¶
- install(spec, prefix)[source]¶
Runs Intel’s install.sh installation script. Afterwards, save the installer config and logs to <prefix>/.spack
- property intel64_int_suffix¶
Provide the suffix for Intel library names to match a client application’s desired int size, conveyed by the active spec variant. The possible suffixes and their meanings are:
ilp64
all of int, long, and pointer are 64 bit, `` lp64`` only long and pointer are 64 bit; int will be 32bit.
- property lapack_libs¶
- property libs¶
- license_comment = '#'¶
Comment symbol used in the license.lic file
- property license_files¶
Built-in mutable sequence.
If no argument is given, the constructor creates a new empty list. The argument must be an iterable if specified.
- property license_required¶
bool(x) -> bool
Returns True when the argument x is true, False otherwise. The builtins True and False are the only two instances of the class bool. The class bool is a subclass of the class int, and cannot be subclassed.
- license_url = 'https://software.intel.com/en-us/articles/intel-license-manager-faq'¶
URL providing information on how to acquire a license key
- license_vars = ['INTEL_LICENSE_FILE']¶
Environment variables that Intel searches for a license file
- property mpi_compiler_wrappers¶
Return paths to compiler wrappers as a dict of env-like names
- mpi_setup_dependent_build_environment(env, dependent_spec, compilers_of_client={})[source]¶
Unified back-end for setup_dependent_build_environment() of Intel packages that provide ‘mpi’.
- Parameters
env – same as in setup_dependent_build_environment().
dependent_spec – same as in setup_dependent_build_environment().
compilers_of_client (dict) – Conveys spack_cc, spack_cxx, etc., from the scope of dependent packages; constructed in caller.
- normalize_path(component_path, component_suite_dir=None, relative=False)[source]¶
Returns the absolute or relative path to a component or file under a component suite directory.
Intel’s product names, scope, and directory layout changed over the years. This function provides a unified interface to their directory names.
- Parameters
component_path (str) – a component name like ‘mkl’, or ‘mpi’, or a deeper relative path.
component_suite_dir (str) –
_Unversioned_ name of the expected parent directory of component_path. When absent or None, an appropriate default will be used. A present but empty string “” requests that component_path refer to self.prefix directly.
Typical values: compilers_and_libraries, composer_xe, parallel_studio_xe.
Also supported: advisor, inspector, vtune. The actual directory name for these suites varies by release year. The name will be corrected as needed for use in the return value.
relative (bool) – When True, return path relative to self.prefix, otherwise, return an absolute path (the default).
- normalize_suite_dir(suite_dir_name, version_globs=['*.*.*'])[source]¶
Returns the version-specific and absolute path to the directory of an Intel product or a suite of product components.
- Parameters
suite_dir_name (str) –
Name of the product directory, without numeric version.
Examples:
composer_xe, parallel_studio_xe, compilers_and_libraries
The following will work as well, even though they are not directly targets for Spack installation:
advisor_xe, inspector_xe, vtune_amplifier_xe, performance_snapshots (new name for vtune as of 2018)
These are single-component products without subordinate components and are normally made available to users by a toplevel psxevars.sh or equivalent file to source (and thus by the modulefiles that Spack produces).
version_globs (list) – Suffix glob patterns (most specific first) expected to qualify suite_dir_name to its fully version-specific install directory (as opposed to a compatibility directory or symlink).
- property openmp_libs¶
Supply LibraryList for linking OpenMP
- phases = ['configure', 'install']¶
Phases of an Intel package
- property pset_components¶
- property scalapack_libs¶
- setup_dependent_build_environment(env, dependent_spec)[source]¶
Sets up the build environment of packages that depend on this one.
This is similar to
setup_build_environment
, but it is used to modify the build environments of packages that depend on this one.This gives packages like Python and others that follow the extension model a way to implement common environment or compile-time settings for dependencies.
This method will be called before the dependent package prefix exists in Spack’s store.
Examples
1. Installing python modules generally requires
PYTHONPATH
to point to thelib/pythonX.Y/site-packages
directory in the module’s install prefix. This method could be used to set that variable.- Parameters
env (spack.util.environment.EnvironmentModifications) – environment modifications to be applied when the dependent package is built. Package authors can call methods on it to alter the build environment.
dependent_spec (spack.spec.Spec) – the spec of the dependent package about to be built. This allows the extendee (self) to query the dependent’s state. Note that this package’s spec is available as
self.spec
- setup_dependent_package(module, dep_spec)[source]¶
Set up Python module-scope variables for dependent packages.
Called before the install() method of dependents.
Default implementation does nothing, but this can be overridden by an extendable package to set up the module of its extensions. This is useful if there are some common steps to installing all extensions for a certain package.
Examples:
Extensions often need to invoke the
python
interpreter from the Python installation being extended. This routine can put apython()
Executable object in the module scope for the extension package to simplify extension installs.MPI compilers could set some variables in the dependent’s scope that point to
mpicc
,mpicxx
, etc., allowing them to be called by common name regardless of which MPI is used.BLAS/LAPACK implementations can set some variables indicating the path to their libraries, since these paths differ by BLAS/LAPACK implementation.
- Parameters
module (spack.package.PackageBase.module) – The Python
module
object of the dependent package. Packages can use this to set module-scope variables for the dependent to use.dependent_spec (spack.spec.Spec) – The spec of the dependent package about to be built. This allows the extendee (self) to query the dependent’s state. Note that this package’s spec is available as
self.spec
.
- setup_run_environment(env)[source]¶
Adds environment variables to the generated module file.
These environment variables come from running:
$ source parallel_studio_xe_2017/bin/psxevars.sh intel64 [and likewise for MKL, MPI, and other components]
- property tbb_headers¶
- property tbb_libs¶
Supply LibraryList for linking TBB
- property version_yearlike¶
Return the version in a unified style, suitable for Version class conditionals.
- version_years = {'intel-ipp@9.0:9': 2016, 'intel-mkl@11.3.0:11.3': 2016, 'intel-mpi@5.1:5': 2016}¶
spack.build_systems.makefile module¶
- class spack.build_systems.makefile.MakefilePackage(spec)[source]¶
Bases:
spack.package.PackageBase
Specialized class for packages that are built using editable Makefiles
This class provides three phases that can be overridden:
It is usually necessary to override the
edit()
phase, whilebuild()
andinstall()
have sensible defaults. For a finer tuning you may override:Method
Purpose
Specify
make
targets for the build phaseSpecify
make
targets for the install phaseDirectory where the Makefile is located
- build(spec, prefix)[source]¶
Calls make, passing
build_targets
as targets.
- property build_directory¶
Returns the directory containing the main Makefile
- Returns
build directory
- build_system_class = 'MakefilePackage'¶
This attribute is used in UI queries that need to know the build system base class
- build_time_test_callbacks = ['check']¶
Callback names for build-time test
- install(spec, prefix)[source]¶
Calls make, passing
install_targets
as targets.
- install_time_test_callbacks = ['installcheck']¶
Callback names for install-time test
- phases = ['edit', 'build', 'install']¶
Phases of a package that is built with an hand-written Makefile
spack.build_systems.maven module¶
- class spack.build_systems.maven.MavenPackage(spec)[source]¶
Bases:
spack.package.PackageBase
Specialized class for packages that are built using the Maven build system. See https://maven.apache.org/index.html for more information.
This class provides the following phases that can be overridden:
build
install
- property build_directory¶
The directory containing the
pom.xml
file.
- build_system_class = 'MavenPackage'¶
- phases = ['build', 'install']¶
spack.build_systems.meson module¶
- class spack.build_systems.meson.MesonPackage(spec)[source]¶
Bases:
spack.package.PackageBase
Specialized class for packages built using Meson
For more information on the Meson build system, see: https://mesonbuild.com/
This class provides three phases that can be overridden:
They all have sensible defaults and for many packages the only thing necessary will be to override
meson_args()
. For a finer tuning you may also override:Method
Purpose
Location of the root MesonLists.txt
Directory where to build the package
- property archive_files¶
Files to archive for packages based on Meson
- property build_directory¶
Returns the directory to use when building the package
- Returns
directory where to build the package
- build_system_class = 'MesonPackage'¶
This attribute is used in UI queries that need to know the build system base class
- build_targets = []¶
- build_time_test_callbacks = ['check']¶
A list or set of build time test functions to be called when tests are executed or ‘None’ if there are no such test functions.
- flags_to_build_system_args(flags)[source]¶
Produces a list of all command line arguments to pass the specified compiler flags to meson.
- install_targets = ['install']¶
- meson_args()[source]¶
Produces a list containing all the arguments that must be passed to meson, except:
--prefix
--libdir
--buildtype
--strip
--default_library
which will be set automatically.
- Returns
list of arguments for meson
- phases = ['meson', 'build', 'install']¶
Phases of a Meson package
- property root_mesonlists_dir¶
The relative path to the directory containing meson.build
This path is relative to the root of the extracted tarball, not to the
build_directory
. Defaults to the current directory.- Returns
directory containing meson.build
- property std_meson_args¶
Standard meson arguments provided as a property for convenience of package writers
- Returns
standard meson arguments
spack.build_systems.octave module¶
- class spack.build_systems.octave.OctavePackage(spec)[source]¶
Bases:
spack.package.PackageBase
Specialized class for Octave packages. See https://www.gnu.org/software/octave/doc/v4.2.0/Installing-and-Removing-Packages.html for more information.
This class provides the following phases that can be overridden:
- build_system_class = 'OctavePackage'¶
- phases = ['install']¶
- setup_build_environment(env)[source]¶
Sets up the build environment for a package.
This method will be called before the current package prefix exists in Spack’s store.
- Parameters
env (spack.util.environment.EnvironmentModifications) – environment modifications to be applied when the package is built. Package authors can call methods on it to alter the build environment.
spack.build_systems.oneapi module¶
Common utilities for managing intel oneapi packages.
- class spack.build_systems.oneapi.IntelOneApiLibraryPackage(spec)[source]¶
Bases:
spack.build_systems.oneapi.IntelOneApiPackage
Base class for Intel oneAPI library packages.
- property headers¶
- property libs¶
- class spack.build_systems.oneapi.IntelOneApiPackage(spec)[source]¶
Bases:
spack.package.Package
Base class for Intel oneAPI packages.
- property component_dir¶
Subdirectory for this component in the install prefix.
- property component_path¶
Path to component <prefix>/<component>/<version>.
- homepage = 'https://software.intel.com/oneapi'¶
Package homepage where users can find more information about the package
- phases = ['install']¶
The one and only phase
- redistribute_source = False¶
spack.build_systems.perl module¶
- class spack.build_systems.perl.PerlPackage(spec)[source]¶
Bases:
spack.package.PackageBase
Specialized class for packages that are built using Perl.
This class provides four phases that can be overridden if required:
- The default methods use, in order of preference:
Makefile.PL,
Build.PL.
Some packages may need to override
configure_args()
, which produces a list of arguments forconfigure()
. Arguments should not include the installation base directory.- build_system_class = 'PerlPackage'¶
This attribute is used in UI queries that need to know the build system base class
- build_time_test_callbacks = ['check']¶
Callback names for build-time test
- configure(spec, prefix)[source]¶
Runs Makefile.PL or Build.PL with arguments consisting of an appropriate installation base directory followed by the list returned by
configure_args()
.- Raises
RuntimeError – if neither Makefile.PL or Build.PL exist
- configure_args()[source]¶
Produces a list containing the arguments that must be passed to
configure()
. Arguments should not include the installation base directory, which is prepended automatically.- Returns
list of arguments for Makefile.PL or Build.PL
- phases = ['configure', 'build', 'install']¶
Phases of a Perl package
spack.build_systems.python module¶
- class spack.build_systems.python.PythonPackage(spec)[source]¶
Bases:
spack.package.PackageBase
Specialized class for packages that are built using Python setup.py files
This class provides the following phases that can be overridden:
build
build_py
build_ext
build_clib
build_scripts
install
install_lib
install_headers
install_scripts
install_data
These are all standard setup.py commands and can be found by running:
$ python setup.py --help-commands
By default, only the ‘build’ and ‘install’ phases are run, but if you need to run more phases, simply modify your
phases
list like so:phases = ['build_ext', 'install', 'bdist']
Each phase provides a function <phase> that runs:
$ python -s setup.py --no-user-cfg <phase>
Each phase also has a <phase_args> function that can pass arguments to this call. All of these functions are empty except for the
install_args
function, which passes--prefix=/path/to/installation/directory
.If you need to run a phase which is not a standard setup.py command, you’ll need to define a function for it like so:
def configure(self, spec, prefix): self.setup_py('configure')
- add_files_to_view(view, merge_map)[source]¶
Given a map of package files to destination paths in the view, add the files to the view. By default this adds all files. Alternative implementations may skip some files, for example if other packages linked into the view already include the file.
- property build_directory¶
The directory containing the
setup.py
file.
- build_system_class = 'PythonPackage'¶
- property homepage¶
- property import_modules¶
Names of modules that the Python package provides.
These are used to test whether or not the installation succeeded. These names generally come from running:
>> import setuptools >> setuptools.find_packages()
in the source tarball directory. If the module names are incorrectly detected, this property can be overridden by the package.
- Returns
list of strings of module names
- Return type
- install_time_test_callbacks = ['test']¶
Callback names for install-time test
- property list_url¶
- maintainers = ['adamjstewart']¶
List of strings which contains GitHub usernames of package maintainers. Do not include @ here in order not to unnecessarily ping the users.
- phases = ['build', 'install']¶
- py_namespace = None¶
- pypi = None¶
Package name, version, and extension on PyPI
- remove_files_from_view(view, merge_map)[source]¶
Given a map of package files to files currently linked in the view, remove the files from the view. The default implementation removes all files. Alternative implementations may not remove all files. For example if two packages include the same file, it should only be removed when both packages are removed.
- property url¶
spack.build_systems.qmake module¶
- class spack.build_systems.qmake.QMakePackage(spec)[source]¶
Bases:
spack.package.PackageBase
Specialized class for packages built using qmake.
For more information on the qmake build system, see: http://doc.qt.io/qt-5/qmake-manual.html
This class provides three phases that can be overridden:
They all have sensible defaults and for many packages the only thing necessary will be to override
qmake_args()
.- property build_directory¶
The directory containing the
*.pro
file.
- build_system_class = 'QMakePackage'¶
This attribute is used in UI queries that need to know the build system base class
- build_time_test_callbacks = ['check']¶
Callback names for build-time test
- phases = ['qmake', 'build', 'install']¶
Phases of a qmake package
spack.build_systems.r module¶
- class spack.build_systems.r.RPackage(spec)[source]¶
Bases:
spack.package.PackageBase
Specialized class for packages that are built using R.
For more information on the R build system, see: https://stat.ethz.ch/R-manual/R-devel/library/utils/html/INSTALL.html
This class provides a single phase that can be overridden:
It has sensible defaults, and for many packages the only thing necessary will be to add dependencies
- bioc = None¶
- build_system_class = 'RPackage'¶
This attribute is used in UI queries that need to know the build system base class
- cran = None¶
- property git¶
- property homepage¶
- property list_url¶
- maintainers = ['glennpj']¶
List of strings which contains GitHub usernames of package maintainers. Do not include @ here in order not to unnecessarily ping the users.
- phases = ['install']¶
- property url¶
spack.build_systems.rocm module¶
- class spack.build_systems.rocm.ROCmPackage(spec)[source]¶
Bases:
spack.package.PackageBase
Auxiliary class which contains ROCm variant, dependencies and conflicts and is meant to unify and facilitate its usage. Closely mimics CudaPackage.
Maintainers: dtaller
- amdgpu_targets = ('gfx701', 'gfx801', 'gfx802', 'gfx803', 'gfx900', 'gfx906', 'gfx908', 'gfx1010', 'gfx1011', 'gfx1012')¶
- value = 'gfx1012'¶
spack.build_systems.ruby module¶
- class spack.build_systems.ruby.RubyPackage(spec)[source]¶
Bases:
spack.package.PackageBase
Specialized class for building Ruby gems.
This class provides two phases that can be overridden if required:
- build_system_class = 'RubyPackage'¶
This attribute is used in UI queries that need to know the build system base class
- install(spec, prefix)[source]¶
Install a Ruby gem.
The ruby package sets
GEM_HOME
to tell gem where to install to.
- maintainers = ['Kerilk']¶
List of strings which contains GitHub usernames of package maintainers. Do not include @ here in order not to unnecessarily ping the users.
- phases = ['build', 'install']¶
Phases of a Ruby package
spack.build_systems.scons module¶
- class spack.build_systems.scons.SConsPackage(spec)[source]¶
Bases:
spack.package.PackageBase
Specialized class for packages built using SCons.
See http://scons.org/documentation.html for more information.
This class provides the following phases that can be overridden:
Packages that use SCons as a build system are less uniform than packages that use other build systems. Developers can add custom subcommands or variables that control the build. You will likely need to override
build_args()
to pass the appropriate variables.- build_system_class = 'SConsPackage'¶
To be used in UI queries that require to know which build-system class we are using
- build_test()[source]¶
Run unit tests after build.
By default, does nothing. Override this if you want to add package-specific tests.
- build_time_test_callbacks = ['build_test']¶
Callback names for build-time test
- phases = ['build', 'install']¶
Phases of a SCons package
spack.build_systems.sip module¶
- class spack.build_systems.sip.SIPPackage(spec)[source]¶
Bases:
spack.package.PackageBase
Specialized class for packages that are built using the SIP build system. See https://www.riverbankcomputing.com/software/sip/intro for more information.
This class provides the following phases that can be overridden:
configure
build
install
The configure phase already adds a set of default flags. To see more options, run
python configure.py --help
.- build_system_class = 'SIPPackage'¶
- property import_modules¶
Names of modules that the Python package provides.
These are used to test whether or not the installation succeeded. These names generally come from running:
>> import setuptools >> setuptools.find_packages()
in the source tarball directory. If the module names are incorrectly detected, this property can be overridden by the package.
- Returns
list of strings of module names
- Return type
- install_time_test_callbacks = ['test']¶
Callback names for install-time test
- phases = ['configure', 'build', 'install']¶
- sip_module = 'sip'¶
Name of private sip module to install alongside package
spack.build_systems.sourceforge module¶
- class spack.build_systems.sourceforge.SourceforgePackage(spec)[source]¶
Bases:
spack.package.PackageBase
Mixin that takes care of setting url and mirrors for Sourceforge packages.
- base_mirrors = ['https://prdownloads.sourceforge.net/', 'https://freefr.dl.sourceforge.net/', 'https://netcologne.dl.sourceforge.net/', 'https://pilotfiber.dl.sourceforge.net/', 'https://downloads.sourceforge.net/', 'http://kent.dl.sourceforge.net/sourceforge/']¶
List of Sourceforge mirrors used by Spack
- sourceforge_mirror_path = None¶
Path of the package in a Sourceforge mirror
- property urls¶
spack.build_systems.sourceware module¶
- class spack.build_systems.sourceware.SourcewarePackage(spec)[source]¶
Bases:
spack.package.PackageBase
Mixin that takes care of setting url and mirrors for Sourceware.org packages.
- base_mirrors = ['https://sourceware.org/pub/', 'https://mirrors.kernel.org/sourceware/', 'https://ftp.gwdg.de/pub/linux/sources.redhat.com/']¶
List of Sourceware mirrors used by Spack
- sourceware_mirror_path = None¶
Path of the package in a Sourceware mirror
- property urls¶
spack.build_systems.waf module¶
- class spack.build_systems.waf.WafPackage(spec)[source]¶
Bases:
spack.package.PackageBase
Specialized class for packages that are built using the Waf build system. See https://waf.io/book/ for more information.
This class provides the following phases that can be overridden:
configure
build
install
These are all standard Waf commands and can be found by running:
$ python waf --help
Each phase provides a function <phase> that runs:
$ python waf -j<jobs> <phase>
where <jobs> is the number of parallel jobs to build with. Each phase also has a <phase_args> function that can pass arguments to this call. All of these functions are empty except for the
configure_args
function, which passes--prefix=/path/to/installation/prefix
.- property build_directory¶
The directory containing the
waf
file.
- build_system_class = 'WafPackage'¶
- build_test()[source]¶
Run unit tests after build.
By default, does nothing. Override this if you want to add package-specific tests.
- build_time_test_callbacks = ['build_test']¶
A list or set of build time test functions to be called when tests are executed or ‘None’ if there are no such test functions.
- install_test()[source]¶
Run unit tests after install.
By default, does nothing. Override this if you want to add package-specific tests.
- install_time_test_callbacks = ['install_test']¶
A list or set of install time test functions to be called when tests are executed or ‘None’ if there are no such test functions.
- phases = ['configure', 'build', 'install']¶
spack.build_systems.xorg module¶
- class spack.build_systems.xorg.XorgPackage(spec)[source]¶
Bases:
spack.package.PackageBase
Mixin that takes care of setting url and mirrors for x.org packages.
- base_mirrors = ['https://www.x.org/archive/individual/', 'https://mirrors.ircam.fr/pub/x.org/individual/', 'https://mirror.transip.net/xorg/individual/', 'ftp://ftp.freedesktop.org/pub/xorg/individual/', 'http://xorg.mirrors.pair.com/individual/']¶
- property urls¶
- xorg_mirror_path = None¶
Path of the package in a x.org mirror