diff options
author | Michael F. Herbst <info@michael-herbst.com> | 2017-10-15 19:45:11 +0200 |
---|---|---|
committer | Christoph Junghans <christoph.junghans@gmail.com> | 2017-10-15 11:45:11 -0600 |
commit | 5656554922f93ce24ade0121cd064094ac7f3419 (patch) | |
tree | 7634a39f3ab12a314614972e934da81fd16c8df8 | |
parent | a16ec21fbefd8f4ff8c99da6905a5e5bd8859d46 (diff) | |
download | spack-5656554922f93ce24ade0121cd064094ac7f3419.tar.gz spack-5656554922f93ce24ade0121cd064094ac7f3419.tar.bz2 spack-5656554922f93ce24ade0121cd064094ac7f3419.tar.xz spack-5656554922f93ce24ade0121cd064094ac7f3419.zip |
Add krims and lazyten (#5771)
* Add krims to spack
* Add lazyten to spack
* Add description for lazyten
* Changes suggested by @davydden and @junghans
-rw-r--r-- | var/spack/repos/builtin/packages/krims/package.py | 86 | ||||
-rw-r--r-- | var/spack/repos/builtin/packages/lazyten/package.py | 118 |
2 files changed, 204 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/krims/package.py b/var/spack/repos/builtin/packages/krims/package.py new file mode 100644 index 0000000000..61e9c1e862 --- /dev/null +++ b/var/spack/repos/builtin/packages/krims/package.py @@ -0,0 +1,86 @@ +############################################################################## +# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the NOTICE and LICENSE files for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * + + +class Krims(CMakePackage): + """The bucket of Krimskrams every C or C++ project needs""" + + homepage = "http://lazyten.org/krims" + url = "https://github.com/lazyten/krims/archive/v0.2.1.tar.gz" + maintainers = ['mfherbst'] + + # + # Versions + # + version("0.2.1", "bf219656fd81c342a4782bad7d7beed0") + version("develop", git="https://github.com/lazyten/krims.git", + branch="master") + + # + # Variants + # + # Library build type + variant("build_type", default="DebugRelease", + description="The build type to build", + values=("Debug", "Release", "DebugRelease")) + variant("shared", default=True, + description="Build shared libraries (else the static one)") + + # Components + variant("examples", default=False, + description="Compile examples") + + # + # Conflicts + # + # Only builds on clang > 3.5 and gcc > 4.8 + conflicts("%intel", msg="krims only builds with gcc and clang") + conflicts("%gcc@:4.8") + conflicts("%clang@:3.5") + + # + # Dependencies + # + depends_on("cmake@3:", type="build") + + # + # Settings and cmake cache + # + def cmake_args(self): + spec = self.spec + + args = [ + "-DAUTOCHECKOUT_MISSING_REPOS=OFF", + # + "-DBUILD_SHARED_LIBS=" + str("+shared" in spec), + "-DDRB_MACHINE_SPECIFIC_OPTIM_Release=ON", # Adds -march=native + # + # TODO Hard-disable tests for now, since rapidcheck not in Spack + "-DKRIMS_ENABLE_TESTS=OFF", + "-DKRIMS_ENABLE_EXAMPLES=" + str("+examples" in spec), + ] + + return args diff --git a/var/spack/repos/builtin/packages/lazyten/package.py b/var/spack/repos/builtin/packages/lazyten/package.py new file mode 100644 index 0000000000..b351e76c0e --- /dev/null +++ b/var/spack/repos/builtin/packages/lazyten/package.py @@ -0,0 +1,118 @@ +############################################################################## +# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC. +# Produced at the Lawrence Livermore National Laboratory. +# +# This file is part of Spack. +# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved. +# LLNL-CODE-647188 +# +# For details, see https://github.com/llnl/spack +# Please also see the NOTICE and LICENSE files for our notice and the LGPL. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License (as +# published by the Free Software Foundation) version 2.1, February 1999. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and +# conditions of the GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +############################################################################## +from spack import * +import os + + +class Lazyten(CMakePackage): + """Lightweight linear algebra library based on lazy matrices""" + + homepage = "http://lazyten.org" + url = "https://github.com/lazyten/lazyten/archive/v0.4.1.tar.gz" + maintainers = ['mfherbst'] + + # + # Versions + # + version('0.4.1', 'd06f7996144e1bf1b0aee82c2af36e83') + version("develop", git="https://github.com/lazyten/lazyten.git", + branch="master") + + # + # Variants + # + # Library build type + variant("build_type", default="DebugRelease", + description="The build type to build", + values=("Debug", "Release", "DebugRelease")) + variant("shared", default=True, + description="Build shared libraries (else the static one)") + + # Features + variant("arpack", default=True, + description="Build with Arpack support") + + # Components + variant("examples", default=False, + description="Compile examples") + + # + # Conflicts + # + # Only builds on clang > 3.5 and gcc > 4.8 + conflicts("%intel", msg="krims only builds with gcc and clang") + conflicts("%gcc@:4.8") + conflicts("%clang@:3.5") + + # + # Dependencies + # + depends_on("cmake@3:", type="build") + + depends_on("krims@develop", when="@develop") + depends_on("krims@0.2.1", when="@0.4.1") + + depends_on("blas") + depends_on("lapack") + depends_on("armadillo@4:") + depends_on("arpack-ng", when="+arpack") + + # + # Settings and cmake cache + # + def cmake_args(self): + spec = self.spec + + args = [ + "-DAUTOCHECKOUT_MISSING_REPOS=OFF", + # + "-DBUILD_SHARED_LIBS=" + str("+shared" in spec), + "-DDRB_MACHINE_SPECIFIC_OPTIM_Release=ON", # Adds -march=native + # + # TODO Hard-disable tests for now, since rapidcheck not in Spack + "-DLAZYTEN_ENABLE_TESTS=OFF", + "-DLAZYTEN_ENABLE_EXAMPLES=" + str("+examples" in spec), + ] + + # Tell lazyten where to look for the krims cmake config + # and targets files + krims_modules = os.path.join(spec["krims"].prefix.share, "cmake/krims") + args.append("-Dkrims_DIR=" + krims_modules) + + # Add linear algebra backends + lapack_blas = spec['lapack'].libs + spec['blas'].libs + args.extend([ + "-DARMADILLO_INCLUDE_DIR=" + spec["armadillo"].prefix.include, + "-DARMADILLO_LIBRARY=" + ";".join(spec["armadillo"].libs), + # + "-DLAPACK_FOUND=ON", + "-DLAPACK_LIBRARIES=" + ";".join(lapack_blas), + ]) + + if "+arpack" in spec: + args.append("-DARPACK_DIR=" + spec["arpack-ng"].prefix) + args.append("-DARPACK_LIBRARY=" + ";".join(spec["arpack-ng"].libs)) + + return args |