diff options
-rw-r--r-- | etc/spack/defaults/packages.yaml | 1 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/irep/package.py | 18 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/lua-luajit/package.py | 29 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/lua/package.py | 2 |
4 files changed, 50 insertions, 0 deletions
diff --git a/etc/spack/defaults/packages.yaml b/etc/spack/defaults/packages.yaml index 17fb4e2be1..2d6b3da9be 100644 --- a/etc/spack/defaults/packages.yaml +++ b/etc/spack/defaults/packages.yaml @@ -34,6 +34,7 @@ packages: java: [openjdk, jdk, ibm-java] jpeg: [libjpeg-turbo, libjpeg] lapack: [openblas, amdlibflame] + lua-lang: [lua, lua-luajit] mariadb-client: [mariadb-c-client, mariadb] mkl: [intel-mkl] mpe: [mpe2] diff --git a/var/spack/repos/builtin/packages/irep/package.py b/var/spack/repos/builtin/packages/irep/package.py new file mode 100644 index 0000000000..3658dae19b --- /dev/null +++ b/var/spack/repos/builtin/packages/irep/package.py @@ -0,0 +1,18 @@ +# Copyright 2013-2021 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) + +class Irep(CMakePackage): + """IREP is a tool that enables mixed-language simulation codes to use a + common, Lua-based format for their input decks. Essentially, the input + format is a set of tables -- Lua's one (and only?) data structure.""" + + homepage = "https://irep.readthedocs.io/" + url = "https://github.com/LLNL/irep/archive/refs/tags/v1.0.0.tar.gz" + + maintainers = ['tomstitt', 'kennyweiss'] + + version('1.0.0', 'b84203ac92de824dbdc672de45cfdb9609373791c4ee84a5201fa6e4ccecc1a4') + + depends_on('lua-lang') diff --git a/var/spack/repos/builtin/packages/lua-luajit/package.py b/var/spack/repos/builtin/packages/lua-luajit/package.py index d5a44325cc..3e791e6683 100644 --- a/var/spack/repos/builtin/packages/lua-luajit/package.py +++ b/var/spack/repos/builtin/packages/lua-luajit/package.py @@ -3,6 +3,7 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import glob import os from spack import * @@ -18,6 +19,34 @@ class LuaLuajit(MakefilePackage): conflicts('@:2.0.5', when='target=aarch64:') + variant('lualinks', default=False, description="add symlinks to make lua-luajit a drop-in lua replacement") + + provides("lua-lang", when="+lualinks") + + @run_after("install") + def install_links(self): + if not self.spec.satisfies("+lualinks"): + return + + with working_dir(self.prefix.bin): + luajit = os.readlink(self.prefix.bin.luajit) + symlink(luajit, "lua") + + with working_dir(self.prefix.include): + luajit_include_subdirs = glob.glob( + os.path.join(self.prefix.include, "luajit*")) + assert len(luajit_include_subdirs) == 1 + symlink(luajit_include_subdirs[0], "lua") + + with working_dir(self.prefix.lib): + luajit_libnames = glob.glob( + os.path.join(self.prefix.lib, "libluajit*.so*")) + real_lib = next( + lib for lib in luajit_libnames + if os.path.isfile(lib) and not os.path.islink(lib) + ) + symlink(real_lib, "liblua.so") + @property def headers(self): hdrs = find_headers('luajit', self.prefix.include, recursive=True) diff --git a/var/spack/repos/builtin/packages/lua/package.py b/var/spack/repos/builtin/packages/lua/package.py index db80713789..93d8d15649 100644 --- a/var/spack/repos/builtin/packages/lua/package.py +++ b/var/spack/repos/builtin/packages/lua/package.py @@ -34,6 +34,8 @@ class Lua(Package): extendable = True + provides('lua-lang') + depends_on('ncurses+termlib') depends_on('readline') # luarocks needs unzip for some packages (e.g. lua-luaposix) |