From 6ca4d554cd8ff8e9707b13701900d595b64d6d7e Mon Sep 17 00:00:00 2001 From: Bernhard Kaindl <43588962+bernhardkaindl@users.noreply.github.com> Date: Thu, 14 Oct 2021 20:42:01 +0200 Subject: [PATCH] libfive: Add all variants, +qt needs qt@5.15.2:+opengl (#26629) Refresh of deps to fix the build and add variants from CMakeLists.txt --- .../repos/builtin/packages/libfive/package.py | 25 ++++++++++++++++--- 1 file 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')]