summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorMelven Roehrig-Zoellner <Melven.Roehrig-Zoellner@DLR.de>2024-08-01 03:44:11 +0200
committerGitHub <noreply@github.com>2024-08-01 03:44:11 +0200
commitc1f22ca5cbbd70ed90036d90171ecec6496b4f20 (patch)
tree2c983c0bf77e33de4c1067cdf2d983c5895fba7d /var
parentc5d1c9ae6191c03fd07192d33135069fb26eb222 (diff)
downloadspack-c1f22ca5cbbd70ed90036d90171ecec6496b4f20.tar.gz
spack-c1f22ca5cbbd70ed90036d90171ecec6496b4f20.tar.bz2
spack-c1f22ca5cbbd70ed90036d90171ecec6496b4f20.tar.xz
spack-c1f22ca5cbbd70ed90036d90171ecec6496b4f20.zip
tixi: add python variant (sets PYTHONPATH and LD_LIBRARY_PATH) (#44592)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/tixi/package.py43
1 files changed, 36 insertions, 7 deletions
diff --git a/var/spack/repos/builtin/packages/tixi/package.py b/var/spack/repos/builtin/packages/tixi/package.py
index 8540ef640c..41872d8ca1 100644
--- a/var/spack/repos/builtin/packages/tixi/package.py
+++ b/var/spack/repos/builtin/packages/tixi/package.py
@@ -3,6 +3,8 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+import sys
+
from spack.package import *
@@ -14,6 +16,8 @@ class Tixi(CMakePackage):
url = "https://github.com/DLR-SC/tixi/archive/v3.0.3.tar.gz"
git = "https://github.com/DLR-SC/tixi.git"
+ maintainers("melven", "joergbrech")
+
license("Apache-2.0")
version("3.3.0", sha256="988d79ccd53c815d382cff0c244c0bb8e393986377dfb45385792766adf6f6a9")
@@ -30,17 +34,42 @@ class Tixi(CMakePackage):
"shared", default=True, description="Enables the build of shared libraries", when="@3.0.3:"
)
variant("fortran", default=True, description="Enable Fortran bindings", when="@3.1.1:")
+ variant("python", default=True, description="Add python bindings to PYTHONPATH")
- depends_on("python", type="build")
+ depends_on("python", when="~python", type="build")
+ depends_on("python", when="+python", type=("build", "run"))
+ conflicts("~shared", when="+python")
depends_on("expat")
depends_on("curl")
depends_on("libxml2")
depends_on("libxslt")
+ @property
+ def libs(self):
+ # different library names for tixi@2 and tixi@3
+ libname = "libtixi3" if "@3" in self.spec else "libTIXI"
+ shared = "~shared" not in self.spec
+ return find_libraries(libname, root=self.prefix, shared=shared, recursive=True)
+
def cmake_args(self):
- args = []
- if self.spec.satisfies("+shared"):
- args.append("-DBUILD_SHARED_LIBS=ON")
- if self.spec.satisfies("+fortran"):
- args.append("-DTIXI_ENABLE_FORTRAN=ON")
- return args
+ return [
+ self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
+ self.define_from_variant("TIXI_ENABLE_FORTRAN", "fortran"),
+ ]
+
+ def setup_run_environment(self, env):
+ """Allow to import tixi3wrapper in python"""
+
+ if "+python" in self.spec:
+ # add tixi3wrapper.py to the PYTHONPATH
+ if "@3" in self.spec:
+ env.prepend_path("PYTHONPATH", self.spec.prefix.share.tixi3.python)
+ else:
+ env.prepend_path("PYTHONPATH", self.spec.prefix.share.tixi.python)
+
+ # allow ctypes to find the tixi library
+ libs = ":".join(self.spec["tixi"].libs.directories)
+ if sys.platform == "darwin":
+ env.prepend_path("DYLD_FALLBACK_LIBRARY_PATH", libs)
+ else:
+ env.prepend_path("LD_LIBRARY_PATH", libs)