diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/spack/spack/__init__.py | 2 | ||||
-rw-r--r-- | lib/spack/spack/build_systems/aspell_dict.py | 57 |
2 files changed, 59 insertions, 0 deletions
diff --git a/lib/spack/spack/__init__.py b/lib/spack/spack/__init__.py index 3b614b0482..19590b6790 100644 --- a/lib/spack/spack/__init__.py +++ b/lib/spack/spack/__init__.py @@ -177,6 +177,7 @@ __all__ = [] from spack.package import Package, run_before, run_after, on_package_attributes from spack.build_systems.makefile import MakefilePackage +from spack.build_systems.aspell_dict import AspellDictPackage from spack.build_systems.autotools import AutotoolsPackage from spack.build_systems.cmake import CMakePackage from spack.build_systems.qmake import QMakePackage @@ -193,6 +194,7 @@ __all__ += [ 'on_package_attributes', 'Package', 'MakefilePackage', + 'AspellDictPackage', 'AutotoolsPackage', 'CMakePackage', 'QMakePackage', diff --git a/lib/spack/spack/build_systems/aspell_dict.py b/lib/spack/spack/build_systems/aspell_dict.py new file mode 100644 index 0000000000..4d54e13b70 --- /dev/null +++ b/lib/spack/spack/build_systems/aspell_dict.py @@ -0,0 +1,57 @@ +############################################################################## +# 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 +############################################################################## +# Why doesn't this work for me? +# from spack import * +from llnl.util.filesystem import filter_file +from spack.build_systems.autotools import AutotoolsPackage +from spack.directives import extends +from spack.util.executable import which + + +# +# Aspell dictionaries install their bits into their prefix.lib +# and when activated they'll get symlinked into the appropriate aspell's +# dict dir (see aspell's {de,}activate methods). +# +# They aren't really an Autotools package, but it's close enough +# that this works if we override configure(). +class AspellDictPackage(AutotoolsPackage): + """Specialized class for builing aspell dictionairies.""" + + extends('aspell') + + def patch(self): + filter_file(r'^dictdir=.*$', 'dictdir=/lib', 'configure') + filter_file(r'^datadir=.*$', 'datadir=/lib', 'configure') + + def configure(self, spec, prefix): + aspell = spec['aspell'].prefix.bin.aspell + prezip = spec['aspell'].prefix.bin.prezip + destdir = prefix + + sh = which('sh') + sh('./configure', '--vars', "ASPELL={0}".format(aspell), + "PREZIP={0}".format(prezip), + "DESTDIR={0}".format(destdir)) |