# IT4Innovations 2019

easyblock = 'CMakeMake'

name = 'OpenCV'
version = '3.4.6'

homepage = 'http://opencv.org/'
description = """OpenCV (Open Source Computer Vision Library) is an open source computer vision
 and machine learning software library. OpenCV was built to provide
 a common infrastructure for computer vision applications and to accelerate
 the use of machine perception in the commercial products."""

toolchain = {'name': 'intel', 'version': '2017c'}

source_urls = [
    'https://github.com/Itseez/opencv/archive/'
]
sources = [
    '%(version)s.zip',
]

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

dependencies = [
    ('Python', '3.7.3', '', ('GCCcore', '6.3.0')),
    ('zlib', '1.2.11', '', True),
    ('FFmpeg', '4.1', '', True),
    ('pkg-config', '0.29.2', '', True),
    ('OpenCL-sdk', '7.0.0.2568', '', True),
]

separate_build_dir = True

preconfigopts = 'wget https://github.com/opencv/opencv_contrib/archive/3.4.6.zip && '
preconfigopts += 'unzip 3.4.6.zip && '

configopts = '-DCMAKE_BUILD_TYPE=RELEASE '
configopts += '-DBUILD_PYTHON_SUPPORT=ON '
configopts += '-DPYTHON_PACKAGES_PATH=%(installdir)s/lib/python%(pyshortver)s/site-packages '
configopts += '-DBUILD_NEW_PYTHON_SUPPORT=ON '
configopts += '-DWITH_CUDA=OFF '
configopts += '-DOPENCV_ENABLE_NONFREE:BOOL=ON '
configopts += '-D BUILD_opencv_ts=OFF '
configopts += '-DPYTHON3_EXECUTABLE=$(which python3.7) '
configopts += '-DPYTHON_INCLUDE_DIR=$(python3.7 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") '
configopts += '-DPYTHON_PACKAGES_PATH=$(python3.7 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") '
configopts += '-DOPENCV_EXTRA_MODULES_PATH=%(builddir)s/easybuild_obj/opencv_contrib-3.4.6/modules '

sanity_check_paths = {
    'files': [
        'lib/libopencv_core.%s' %
        SHLIB_EXT] + [
            'lib/python3.7/site-packages/cv2/python-3.7/cv2.cpython-37m-x86_64-linux-gnu.so'] + [
                'bin/opencv_%s' %
                x for x in [
                    'annotation', 'createsamples', 'traincascade']], 'dirs': ['include']}

modextrapaths = {
    'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
    'CLASSPATH': 'share/OpenCV/java',
}

moduleclass = 'vis'