New package: povray (#20071)
This commit is contained in:
parent
c15755e88d
commit
1c2424ac29
2 changed files with 155 additions and 0 deletions
|
@ -0,0 +1,15 @@
|
||||||
|
diff -Naur spack-src/unix/prebuild.sh spack-src.patched/unix/prebuild.sh
|
||||||
|
--- spack-src/unix/prebuild.sh 2020-11-19 16:49:04.573263288 -0500
|
||||||
|
+++ spack-src.patched/unix/prebuild.sh 2020-11-19 16:51:35.599850471 -0500
|
||||||
|
@@ -62,8 +62,9 @@
|
||||||
|
|
||||||
|
# Prevents running from another directory.
|
||||||
|
if test x"`dirname $0`" != x"."; then
|
||||||
|
- echo "$0: must ran from POV-Ray's unix/ directory"
|
||||||
|
- exit 1
|
||||||
|
+ wdir=`dirname $0`
|
||||||
|
+ echo >&2 "Changing directory to '$wdir' ..."
|
||||||
|
+ cd $wdir
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check optional argument.
|
140
var/spack/repos/builtin/packages/povray/package.py
Normal file
140
var/spack/repos/builtin/packages/povray/package.py
Normal file
|
@ -0,0 +1,140 @@
|
||||||
|
# Copyright 2013-2020 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)
|
||||||
|
|
||||||
|
from spack import *
|
||||||
|
# For getting fqdn for defaulting COMPILED_BY
|
||||||
|
import socket
|
||||||
|
# For getting username for defaulting COMPILED_BY
|
||||||
|
import getpass
|
||||||
|
|
||||||
|
|
||||||
|
class Povray(AutotoolsPackage):
|
||||||
|
"""The Persistence of Vision Raytracer creates three-dimensional,
|
||||||
|
photo-realistic images using a rendering technique called ray-tracing. It
|
||||||
|
reads in a text file containing information describing the objects and
|
||||||
|
lighting in a scene and generates an image of that scene from the view
|
||||||
|
point of a camera also described in the text file. Ray-tracing is not a
|
||||||
|
fast process by any means, but it produces very high quality images with
|
||||||
|
realistic reflections, shading, perspective and other effects.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Add a proper url for your package's homepage here.
|
||||||
|
homepage = "http://povray.org/download/"
|
||||||
|
url = "https://github.com/POV-Ray/povray/archive/v3.7.0.8.tar.gz"
|
||||||
|
git = "https://github.com/POV-Ray/povray.git"
|
||||||
|
|
||||||
|
# maintainers = ['payerle' ]
|
||||||
|
|
||||||
|
version('3.7.0.8', sha256='53d11ebd2972fc452af168a00eb83aefb61387662c10784e81b63e44aa575de4')
|
||||||
|
|
||||||
|
variant('boost', default=True, description='Build with boost support')
|
||||||
|
variant('debug', default=False,
|
||||||
|
description='Enable compiler debugging mode')
|
||||||
|
variant('io-restrictions', default=True,
|
||||||
|
description='Enable POV-Rays mechanism for control of I/O '
|
||||||
|
'operations')
|
||||||
|
variant('jpeg', default=True, description='Build with jpeg support')
|
||||||
|
variant('libpng', default=True, description='Build with libpng support')
|
||||||
|
variant('libtiff', default=True, description='Build with libtiff support')
|
||||||
|
variant('mkl', default=True, description='Build with Intel MKL support')
|
||||||
|
variant('openexr', default=True, description='Build with OpenEXR support')
|
||||||
|
variant('profile', default=False,
|
||||||
|
description='Enable program execution profiling')
|
||||||
|
variant('static', default=False,
|
||||||
|
description='Build static instead shared binaries')
|
||||||
|
variant('zlib', default=True, description='Build with zlib support')
|
||||||
|
# SDL support is limited to sdl version 1, not sdl2, and spack currently
|
||||||
|
# only supports sdl2
|
||||||
|
# variant('sdl', default=True,
|
||||||
|
# description='Build with SDL support (for display preview)')
|
||||||
|
# X11 support requires SDL, and I believe therefore lacks support for
|
||||||
|
# remote displays. As we do not have SDL support, no X11 support
|
||||||
|
# variant('x11', default=True, description='Build with X11 support')
|
||||||
|
|
||||||
|
# Build dependencies
|
||||||
|
depends_on('autoconf@2.59:', type='build')
|
||||||
|
depends_on('automake@1.9:', type='build')
|
||||||
|
depends_on('perl', type='build')
|
||||||
|
depends_on('m4', type='build')
|
||||||
|
depends_on('boost@1.37:', when='+boost')
|
||||||
|
depends_on('zlib@1.2.1:', when='+zlib')
|
||||||
|
depends_on('libpng@1.2.5:', when='+libpng')
|
||||||
|
depends_on('jpeg', when='+jpeg')
|
||||||
|
depends_on('libtiff@3.6.1:', when='+libtiff')
|
||||||
|
depends_on('openexr@1.2:', when='+openexr')
|
||||||
|
|
||||||
|
# This patch enables prebuild.sh to be invoked from any directory
|
||||||
|
# (it immediately cds to the directory containing prebuild.sh)
|
||||||
|
# This is better than a broken check that it was called from the
|
||||||
|
# containing directory
|
||||||
|
patch('fix_prebuild.sh.patch')
|
||||||
|
|
||||||
|
@run_before('autoreconf')
|
||||||
|
def run_prebuild_script(self):
|
||||||
|
# We need to run <build_dir>/unix/prebuild.sh
|
||||||
|
# and it must be run from within the directory containing it
|
||||||
|
unix_dir = join_path(self.build_directory, 'unix')
|
||||||
|
prebuild_path = join_path(unix_dir, 'prebuild.sh')
|
||||||
|
prebuild_script = which(prebuild_path)
|
||||||
|
prebuild_script()
|
||||||
|
|
||||||
|
def configure_args(self):
|
||||||
|
extra_args = []
|
||||||
|
|
||||||
|
# POVRay insists upon a COMPILED_BY value being passed to configure
|
||||||
|
# We generate a generic using process owner and fqdn of build host.
|
||||||
|
fqdn = socket.getfqdn()
|
||||||
|
uname = getpass.getuser()
|
||||||
|
compiled_by = 'Installed by spack <{0}@{1}>'.format(uname, fqdn)
|
||||||
|
extra_args.append('COMPILED_BY={0}'.format(compiled_by))
|
||||||
|
|
||||||
|
extra_args.append('--disable-silent-rules') # Verbose make output
|
||||||
|
extra_args += self.enable_or_disable('debug')
|
||||||
|
extra_args += self.enable_or_disable('io-restrictions')
|
||||||
|
extra_args += self.enable_or_disable('profile')
|
||||||
|
extra_args += self.enable_or_disable('static')
|
||||||
|
|
||||||
|
if '+boost' in self.spec:
|
||||||
|
extra_args.append('--with-boost={0}'.format(
|
||||||
|
self.spec['boost'].prefix))
|
||||||
|
else:
|
||||||
|
extra_args.append('--without-boost')
|
||||||
|
|
||||||
|
if '+jpeg' in self.spec:
|
||||||
|
extra_args.append('--with-libjpeg={0}'.format(
|
||||||
|
self.spec['jpeg'].prefix))
|
||||||
|
else:
|
||||||
|
extra_args.append('--without-libjpeg')
|
||||||
|
|
||||||
|
if '+libpng' in self.spec:
|
||||||
|
extra_args.append('--with-libpng={0}'.format(
|
||||||
|
self.spec['libpng'].prefix))
|
||||||
|
else:
|
||||||
|
extra_args.append('--without-libpng')
|
||||||
|
|
||||||
|
if '+libtiff' in self.spec:
|
||||||
|
extra_args.append('--with-libtiff={0}'.format(
|
||||||
|
self.spec['libtiff'].prefix))
|
||||||
|
else:
|
||||||
|
extra_args.append('--without-libtiff')
|
||||||
|
|
||||||
|
if '+mkl' in self.spec:
|
||||||
|
extra_args.append('--with-libmkl={0}'.format(
|
||||||
|
self.spec['mkl'].prefix))
|
||||||
|
else:
|
||||||
|
extra_args.append('--without-libmkl')
|
||||||
|
|
||||||
|
if '+openexr' in self.spec:
|
||||||
|
extra_args.append('--with-openexr={0}'.format(
|
||||||
|
self.spec['openexr'].prefix))
|
||||||
|
else:
|
||||||
|
extra_args.append('--without-openexr')
|
||||||
|
|
||||||
|
# POV-Ray only supports sdl v1, spack only supports sdl2 at this time
|
||||||
|
# and X11 support requires sdl
|
||||||
|
extra_args.append('--without-libsdl')
|
||||||
|
extra_args.append('--without-x')
|
||||||
|
|
||||||
|
return extra_args
|
Loading…
Reference in a new issue