From 9940392c2b9fde3598f2f36936ab69e27b71bdd2 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Thu, 5 Mar 2020 10:52:20 -0600 Subject: New package: opensubdiv (#15310) * [opensubdiv] created stub for opensubdiv * [opensubdiv] added homepage and description * [opensubdiv] removed boilerplate * [opensubdiv] working on dependencies and variants * [opensubdiv] fixed syntax error * [opensubdiv] defined spec * [opensubdiv] added dev version * [opensubdiv] building on CudaPackage * [opensubdiv] always build with open gl and depends_on('gl') * [opensubdiv] applying cuda flags * [opensubdiv] worked on doc variant * [opensubdiv] added some x11 libraries * [opensubdiv] depends on glfw * [opensubdiv] locating glew * [opensubdiv] added openmp variant * [opensubdiv] flake8 fixing * [opensubdiv] fixed develop version name * [opensubdiv] fixed description to not need @ --- .../repos/builtin/packages/opensubdiv/package.py | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 var/spack/repos/builtin/packages/opensubdiv/package.py (limited to 'var') diff --git a/var/spack/repos/builtin/packages/opensubdiv/package.py b/var/spack/repos/builtin/packages/opensubdiv/package.py new file mode 100644 index 0000000000..69f9aeba4c --- /dev/null +++ b/var/spack/repos/builtin/packages/opensubdiv/package.py @@ -0,0 +1,85 @@ +# Copyright 2013-2019 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 * + + +class Opensubdiv(CMakePackage, CudaPackage): + """OpenSubdiv is a set of open source libraries that + implement high performance subdivision surface (subdiv) + evaluation on massively parallel CPU and GPU architectures. + This code path is optimized for drawing deforming surfaces + with static topology at interactive framerates.""" + + homepage = "http://graphics.pixar.com/opensubdiv/docs/intro.html" + url = "https://github.com/PixarAnimationStudios/OpenSubdiv/archive/v3_4_0.tar.gz" + git = "https://github.com/PixarAnimationStudios/OpenSubdiv" + + version('develop', branch='dev') + version('3_4_0', sha256='d932b292f83371c7518960b2135c7a5b931efb43cdd8720e0b27268a698973e4') + + variant('tbb', default=False, description='Builds with Intel TBB support') + variant('openmp', default=False, description='Builds with OpenMP support') + variant('doc', default=False, description='Builds documentation. Requires Python 2') + + depends_on('cmake@2.8.6:', type='build') + depends_on('graphviz', type='build', when='+doc') + depends_on('doxygen', type='build', when='+doc') + depends_on('py-docutils', type='build', when='+doc') + depends_on('python@2.6:2.999', type='build', when='+doc') + depends_on('gl') + depends_on('glew@1.9.0:') + depends_on('glfw@3.0.0:') + depends_on('intel-tbb@4.0:', when='+tbb') + depends_on('libxrandr') + depends_on('libxcursor') + depends_on('libxinerama') + depends_on('llvm-openmp', when='+openmp') + + def cmake_args(self): + spec = self.spec + args = [] + + args.append('-DNO_EXAMPLES=1') # disable examples build + args.append('-DNO_TUTORIALS=1') # disable tutorials build + args.append('-DNO_REGRESSION=1') # disable regression tests build + args.append('-DNO_PTEX=1') # disable PTex support + args.append('-DNO_OPENCL=1') # disable OpenCL + args.append('-DNO_CLEW=1') # disable CLEW wrapper library + args.append('-DNO_METAL=1') # disable Metal + + args.append('-DNO_OPENGL=0') # OpenGL always on + args.append('-DGLEW_LOCATION={0}'.format(spec['glew'].prefix)) + + if '+cuda' in spec: + args.append('-DNO_CUDA=0') + + cuda_arch = [x for x in spec.variants['cuda_arch'].value if x] + if cuda_arch: + args.append('-DOSD_CUDA_NVCC_FLAGS={0}'.format( + ' '.join(self.cuda_flags(cuda_arch)))) + else: + args.append('-DOSD_CUDA_NVCC_FLAGS=') + + else: + args.append('-DNO_CUDA=1') + + if '+tbb' in spec: + args.append('-DNO_TBB=0') + else: + args.append('-DNO_TBB=1') + + if '+doc' in spec: + args.append('-DNO_DOC=0') + else: + args.append('-DNO_DOC=1') + + if '+openmp' in spec: + args.append('-DNO_OMP=0') + else: + args.append('-DNO_OMP=1') + + return args -- cgit v1.2.3-60-g2f50