summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/libfive/package.py25
1 files changed, 22 insertions, 3 deletions
diff --git a/var/spack/repos/builtin/packages/libfive/package.py b/var/spack/repos/builtin/packages/libfive/package.py
index 8fe0da08c4..f8a14cf989 100644
--- a/var/spack/repos/builtin/packages/libfive/package.py
+++ b/var/spack/repos/builtin/packages/libfive/package.py
@@ -13,12 +13,31 @@ class Libfive(CMakePackage):
git = "https://github.com/libfive/libfive.git"
# https://libfive.com/download/ recommends working from the master branch
+ # and currently, all tags are from 2017:
version('master', branch='master')
depends_on('pkgconfig', type='build')
- depends_on('cmake@3.3:', type='build')
+ depends_on('cmake@3.12:', type='build')
depends_on('boost@1.65:')
depends_on('eigen@3.3.0:')
depends_on('libpng')
- depends_on('qt@5.7:')
- depends_on('guile@2.2.1:')
+ depends_on('python@3:', when='+python', type=('link', 'run'))
+ depends_on('guile@2.2.1:', when='+guile')
+ # In case build of future git master fails, check raising the minimum Qt version
+ depends_on('qt@5.15.2:+opengl', when='+qt')
+
+ variant('qt', default=True, description='Enable Studio UI(with Guile or Python)')
+ variant('guile', default=True, description='Enable Guile support for Studio UI')
+ variant('python', default=True, description='Enable Python support for Studio UI')
+
+ variant('packed_opcodes', default=False,
+ description='packed opcodes breaks compatibility with saved f-reps!')
+
+ def cmake_args(self):
+ if self.spec.satisfies('+qt~guile~python'):
+ raise InstallError('The Qt-based Studio UI (+qt) needs +guile or +python!')
+
+ return [self.define_from_variant('BUILD_STUDIO_APP', 'qt'),
+ self.define_from_variant('BUILD_GUILE_BINDINGS', 'guile'),
+ self.define_from_variant('BUILD_PYTHON_BINDINGS', 'python'),
+ self.define_from_variant('LIBFIVE_PACKED_OPCODES', 'packed_opcodes')]