summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin.mock/packages/attributes-foo/package.py
diff options
context:
space:
mode:
authorChuck Atkins <chuck.atkins@kitware.com>2022-06-17 10:29:08 -0400
committerGitHub <noreply@github.com>2022-06-17 10:29:08 -0400
commit85dc20cb555b67410a7eaa324f3dc34e60a8e4db (patch)
tree6e6c063225a14b9f423ac061c19ef234dc818136 /var/spack/repos/builtin.mock/packages/attributes-foo/package.py
parent667c39987cbe95a4bdac9d3ef887d7e8da625569 (diff)
downloadspack-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.py69
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)