diff options
author | Chuck Atkins <chuck.atkins@kitware.com> | 2022-06-17 10:29:08 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-17 10:29:08 -0400 |
commit | 85dc20cb555b67410a7eaa324f3dc34e60a8e4db (patch) | |
tree | 6e6c063225a14b9f423ac061c19ef234dc818136 /var/spack/repos/builtin.mock/packages/attributes-foo/package.py | |
parent | 667c39987cbe95a4bdac9d3ef887d7e8da625569 (diff) | |
download | spack-85dc20cb555b67410a7eaa324f3dc34e60a8e4db.tar.gz spack-85dc20cb555b67410a7eaa324f3dc34e60a8e4db.tar.bz2 spack-85dc20cb555b67410a7eaa324f3dc34e60a8e4db.tar.xz spack-85dc20cb555b67410a7eaa324f3dc34e60a8e4db.zip |
Spec: Add a new virtual-customizable `home` attribute (#30917)
* Spec: Add a new virtual-customizable home attribute
* java: Use the new builtin home attribute
* python: Use the new builtin home attribute
Diffstat (limited to 'var/spack/repos/builtin.mock/packages/attributes-foo/package.py')
-rw-r--r-- | var/spack/repos/builtin.mock/packages/attributes-foo/package.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/var/spack/repos/builtin.mock/packages/attributes-foo/package.py b/var/spack/repos/builtin.mock/packages/attributes-foo/package.py new file mode 100644 index 0000000000..bf68c96a53 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/attributes-foo/package.py @@ -0,0 +1,69 @@ +# Copyright 2013-2022 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) + +from spack.package import * + + +class AttributesFoo(BundlePackage): + phases = ['install'] + version('1.0') + + provides('bar') + provides('baz') + + def install(self, spec, prefix): + if 'platform=windows' in spec: + lib_suffix = '.lib' + elif 'platform=darwin' in spec: + lib_suffix = '.dylib' + else: + lib_suffix = '.so' + + mkdirp(prefix.include) + touch(prefix.include.join('foo.h')) + mkdirp(prefix.include.bar) + touch(prefix.include.bar.join('bar.h')) + mkdirp(prefix.lib64) + touch(prefix.lib64.join('libFoo' + lib_suffix)) + touch(prefix.lib64.join('libFooBar' + lib_suffix)) + mkdirp(prefix.baz.include.baz) + touch(prefix.baz.include.baz.join('baz.h')) + mkdirp(prefix.baz.lib) + touch(prefix.baz.lib.join('libFooBaz' + lib_suffix)) + + # Headers provided by Foo + @property + def headers(self): + return find_headers('foo', root=self.home.include, recursive=False) + + # Libraries provided by Foo + @property + def libs(self): + return find_libraries('libFoo', root=self.home, recursive=True) + + # Header provided by the bar virutal package + @property + def bar_headers(self): + return find_headers('bar/bar', root=self.home.include, recursive=False) + + # Libary provided by the bar virtual package + @property + def bar_libs(self): + return find_libraries('libFooBar', root=self.home, recursive=True) + + # The baz virtual package home + @property + def baz_home(self): + return self.home.baz + + # Header provided by the baz virtual package + @property + def baz_headers(self): + return find_headers('baz/baz', root=self.baz_home.include, recursive=False) + + # Library provided by the baz virtual package + @property + def baz_libs(self): + return find_libraries('libFooBaz', root=self.baz_home, recursive=True) |