graphviz: Tame Language Bindings (#1089)
graphviz: * Download from Fedora projet, as main graphviz site not working. * Disable java because Spack does not yet support Java, and the system might not have it installed. * Added all language binding variants; disabled enough in the default configuration to avoid dependencies. * Removed alternate download location (turned into comments). * Turn off all language bindings by default. * Raise an exception on bindings that have not been verified to work. * Added text indicating what works and doesn't work when user runs `spack info`.
This commit is contained in:
parent
1de2c53935
commit
7180613218
1 changed files with 79 additions and 18 deletions
|
@ -29,33 +29,94 @@
|
|||
|
||||
class Graphviz(AutotoolsPackage):
|
||||
"""Graph Visualization Software"""
|
||||
homepage = "http://www.graphviz.org"
|
||||
url = "http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.38.0.tar.gz"
|
||||
homepage = 'http://www.graphviz.org'
|
||||
url = 'http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.38.0.tar.gz'
|
||||
|
||||
version('2.38.0', '5b6a829b2ac94efcd5fa3c223ed6d3ae')
|
||||
|
||||
# By default disable optional Perl language support to prevent build issues
|
||||
# related to missing Perl packages. If spack begins support for Perl in the
|
||||
# future, this package can be updated to depend_on('perl') and the
|
||||
# ncecessary devel packages.
|
||||
variant(
|
||||
'perl', default=False,
|
||||
description='Enable if you need the optional Perl language bindings.')
|
||||
# We try to leave language bindings enabled if they don't cause
|
||||
# build issues or add dependencies.
|
||||
variant('swig', default=False,
|
||||
description='Enable for optional swig language bindings'
|
||||
' (not yet functional)')
|
||||
variant('sharp', default=False,
|
||||
description='Enable for optional sharp language bindings'
|
||||
' (not yet functional)')
|
||||
variant('go', default=False,
|
||||
description='Enable for optional go language bindings'
|
||||
' (not yet functional)')
|
||||
variant('guile', default=False,
|
||||
description='Enable for optional guile language bindings'
|
||||
' (not yet functional)')
|
||||
variant('io', default=False,
|
||||
description='Enable for optional io language bindings'
|
||||
' (not yet functional)')
|
||||
variant('java', default=False, # Spack has no Java support
|
||||
description='Enable for optional java language bindings')
|
||||
variant('lua', default=False,
|
||||
description='Enable for optional lua language bindings'
|
||||
' (not yet functional)')
|
||||
variant('ocaml', default=False,
|
||||
description='Enable for optional ocaml language bindings'
|
||||
' (not yet functional)')
|
||||
variant('perl', default=False, # Spack has no Perl support
|
||||
description='Enable for optional perl language bindings')
|
||||
variant('php', default=False,
|
||||
description='Enable for optional php language bindings'
|
||||
' (not yet functional)')
|
||||
variant('python', default=False, # Build issues with Python 2/3
|
||||
description='Enable for optional python language bindings'
|
||||
' (not yet functional)')
|
||||
variant('r', default=False,
|
||||
description='Enable for optional r language bindings'
|
||||
' (not yet functional)')
|
||||
variant('ruby', default=False,
|
||||
description='Enable for optional ruby language bindings'
|
||||
' (not yet functional)')
|
||||
variant('tcl', default=False,
|
||||
description='Enable for optional tcl language bindings'
|
||||
' (not yet functional)')
|
||||
|
||||
parallel = False
|
||||
|
||||
depends_on("swig")
|
||||
depends_on("python")
|
||||
depends_on("ghostscript")
|
||||
depends_on("freetype")
|
||||
depends_on("expat")
|
||||
depends_on("libtool")
|
||||
depends_on("pkg-config", type='build')
|
||||
depends_on('swig', when='+swig')
|
||||
depends_on('ghostscript')
|
||||
depends_on('freetype')
|
||||
depends_on('expat')
|
||||
depends_on('libtool')
|
||||
depends_on('pkg-config', type='build')
|
||||
|
||||
depends_on('jdk', when='+java')
|
||||
depends_on('python@2:2.8', when='+python')
|
||||
|
||||
def configure_args(self):
|
||||
options = []
|
||||
if '+perl' not in self.spec:
|
||||
options.append('--disable-perl')
|
||||
|
||||
# These language bindings have been tested, we know they work.
|
||||
tested_bindings = ('+java', '+perl')
|
||||
|
||||
# These language bindings have not yet been tested. They
|
||||
# likely need additional dependencies to get working.
|
||||
untested_bindings = (
|
||||
'+swig', '+sharp', '+go', '+guile', '+io',
|
||||
'+lua', '+ocaml', '+php',
|
||||
'+python', '+r', '+ruby', '+tcl')
|
||||
|
||||
for var in untested_bindings:
|
||||
if var in spec:
|
||||
raise SpackException(
|
||||
"The variant {0} for language bindings has not been "
|
||||
"tested. It might or might not work. To try it "
|
||||
"out, run `spack edit graphviz`, and then move '{0}' "
|
||||
"from the `untested_bindings` list to the "
|
||||
"`tested_bindings` list. Be prepared to add "
|
||||
"required dependencies. "
|
||||
"Please then submit a pull request to "
|
||||
"http://github.com/llnl/spack")
|
||||
|
||||
for var in tested_bindings:
|
||||
enable = 'enable' if (var in spec) else 'disable'
|
||||
options.append('--%s-%s' % (enable, var[1:]))
|
||||
|
||||
# On OSX fix the compiler error:
|
||||
# In file included from tkStubLib.c:15:
|
||||
|
|
Loading…
Reference in a new issue