summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/oce/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/oce/package.py')
-rw-r--r--var/spack/repos/builtin/packages/oce/package.py22
1 files changed, 19 insertions, 3 deletions
diff --git a/var/spack/repos/builtin/packages/oce/package.py b/var/spack/repos/builtin/packages/oce/package.py
index 4d5081ac9d..3fe6638e66 100644
--- a/var/spack/repos/builtin/packages/oce/package.py
+++ b/var/spack/repos/builtin/packages/oce/package.py
@@ -13,9 +13,20 @@ class Oce(Package):
version('0.17' , 'f1a89395c4b0d199bea3db62b85f818d')
version('0.16.1', '4d591b240c9293e879f50d86a0cb2bb3')
version('0.16' , '7a4b4df5a104d75a537e25e7dd387eca')
- version('0.15' , '7ec541a1c350ca8a684f74980e48801c')
+
+ variant('tbb', default=True, description='Build with Intel Threading Building Blocks')
depends_on('cmake@2.8:')
+ depends_on('tbb', when='+tbb')
+
+ # There is a bug in OCE which appears with Clang (version?) or GCC 6.0
+ # and has to do with compiler optimization, see
+ # https://github.com/tpaviot/oce/issues/576
+ # http://tracker.dev.opencascade.org/view.php?id=26042
+ # https://github.com/tpaviot/oce/issues/605
+ # https://github.com/tpaviot/oce/commit/61cb965b9ffeca419005bc15e635e67589c421dd.patch
+ patch('null.patch',when='@0.16:0.17.1')
+
def install(self, spec, prefix):
options = []
@@ -23,12 +34,12 @@ class Oce(Package):
options.extend([
'-DOCE_INSTALL_PREFIX=%s' % prefix,
'-DOCE_BUILD_SHARED_LIB:BOOL=ON',
- '-DOCE_BUILD_TYPE:STRING=Release',
+ '-DCMAKE_BUILD_TYPE:STRING=Release',
'-DOCE_DATAEXCHANGE:BOOL=ON',
'-DOCE_DISABLE_X11:BOOL=ON',
'-DOCE_DRAW:BOOL=OFF',
'-DOCE_MODEL:BOOL=ON',
- '-DOCE_MULTITHREAD_LIBRARY:STRING=NONE', # FIXME: add tbb
+ '-DOCE_MULTITHREAD_LIBRARY:STRING=%s' % ('TBB' if '+tbb' in spec else 'NONE'),
'-DOCE_OCAF:BOOL=ON',
'-DOCE_USE_TCL_TEST_FRAMEWORK:BOOL=OFF',
'-DOCE_VISUALISATION:BOOL=OFF',
@@ -46,6 +57,11 @@ class Oce(Package):
make("install/strip")
+ # OCE tests build is brocken at least on Darwin.
+ # Unit tests are linked against libTKernel.10.dylib isntead of /full/path/libTKernel.10.dylib
+ # see https://github.com/tpaviot/oce/issues/612
+ # make("test")
+
# The shared libraries are not installed correctly on Darwin; correct this
if (sys.platform == 'darwin'):
fix_darwin_install_name(prefix.lib)