# IT4Innovations

easyblock = 'CMakeMake'

name = 'ParaView'
version = '5.4.1'
versionsuffix = '-mpi'

homepage = "http://www.paraview.org"
description = "ParaView is a scientific parallel visualizer."

toolchain = {'name': 'intel', 'version': '2017a'}
toolchainopts = {'pic': True, 'usempi': True}

local_download_local_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile='
source_urls = [
    'http://www.paraview.org/paraview-downloads/%s' %
    local_download_local_suffix]
sources = ["ParaView-v%(version)s.tar.gz"]

patches = ['ParaView-5.4.1-Qt.patch']

dependencies = [
    ('X11', '20170314', '', True),
    ('Mesa', '18.1.3', '', ('GCC', '6.3.0-2.27')),
    ('libGLU', '9.0.0', '', ('GCC', '6.3.0-2.27')),
    ('Qt5', '5.11.1', '', ('GCC', '6.3.0-2.27')),
    ('zlib', '1.2.11', '', True),
    ('HDF5', '1.8.17'),
    ('Python', '2.7.13', '', True),
]

builddependencies = [('CMake', '3.9.1', '', True)]

separate_build_dir = True

configopts = '-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON -DVTK_OPENGL_HAS_OSMESA=ON -DPARAVIEW_USE_MPI=ON '
configopts += '-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include -DOPENGL_gl_LIBRARY=$EBROOTMESA/lib/libGL.%s ' % SHLIB_EXT
configopts += '-DOSMESA_INCLUDE_DIR=$EBROOTMESA/include -DOSMESA_LIBRARY=$EBROOTMESA/lib/libOSMesa.%s ' % SHLIB_EXT
configopts += '-DOPENGL_glu_LIBRARY=$EBROOTLIBGLU/lib/libGLU.%s ' % SHLIB_EXT
configopts += '-DVTK_USE_SYSTEM_HDF5=ON -DPARAVIEW_ENABLE_PYTHON=ON -DBUILD_SHARED_LIBS=ON -DVTK_RENDERING_BACKEND=OpenGL2 '
configopts += '-DPARAVIEW_QT_VERSION=5 '
# if you want to build server only Paraview, uncomment the following line:
# configopts += '-DVTK_USE_X=OFF '

# Without internet connection turn off testing (uncomment the following line)
configopts += '-DBUILD_TESTING=OFF '
# Or consult https://gitlab.kitware.com/vtk/vtk/blob/master/Documentation/dev/git/data.md
# and download ExternalData to $EASYBUILD_SOURCEPATH and adjust -DExternalData_OBJECT_STORES accordingly
# Without internet connection, comment the following two lines (configopts and prebuildopts)
#configopts += '-DExternalData_OBJECT_STORES=%(builddir)s/ExternalData '
# The ParaView server can be cranky, test downloads are quite often failing, especially in the case
# of parallel downloads. Using ; insted of && gives a second chance to download the test files, if the
# first serial attempt would fail.
#prebuildopts = 'make VTKData ;'

moduleclass = 'vis'
