+
+#Matplotlib root dir
+IF ( NOT DEFINED MATPLOTLIB_ROOT_DIR )
+ set(MATPLOTLIB_ROOT_DIR $ENV{MATPLOTLIB_ROOT_DIR} )
+ENDIF( NOT DEFINED MATPLOTLIB_ROOT_DIR )
+
+#PyQt5 root dir
+IF ( NOT DEFINED PYQT5_ROOT_DIR )
+ set(PYQT5_ROOT_DIR $ENV{PYQT5_ROOT_DIR} )
+ENDIF( NOT DEFINED PYQT5_ROOT_DIR )
+
+#Paraview library paths
+set (PV_LIB_DIR /usr/lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/dist-packages/paraview/:/usr/lib64/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages/vtk/:${MATPLOTLIB_ROOT_DIR}/lib/:${PARAVIEW_LIBRARIES_DIR})
+set (PV_PYTHON_DIR /usr/lib/python${Python_VERSION_MAJOR}/dist-packages/:/usr/lib/python${Python_VERSION_MAJOR}/dist-packages/paraview/:/usr/lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/dist-packages/paraview/:/usr/lib64/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages/vtk/:/usr/lib64/paraview/site-packages/:/usr/lib64/paraview/site-packages/paraview/:/usr/lib64/paraview/site-packages/vtk/:/usr/lib64/paraview/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages/:/usr/lib64/paraview/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages/paraview/:/usr/lib64/paraview/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages/vtkmodules:/usr/lib/paraview/site-packages/paraview:/usr/lib/paraview/site-packages/paraview/vtk:${PARAVIEW_ROOT_DIR}/lib/:${PARAVIEW_ROOT_DIR}/lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages/:${PARAVIEW_ROOT_DIR}/lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages/vtkmodules/:${MATPLOTLIB_ROOT_DIR}/lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages:${PYQT5_ROOT_DIR}:${PYQT5_ROOT_DIR}/lib/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages)
+
+# Detection of python-paraview
+string(REPLACE ":" ";" PV_PYTHON_DIR_PATHS "${PV_PYTHON_DIR}")# use semicolon instead of colon in PATH search
+find_file(python-paraview simple.py PATHS ${PV_PYTHON_DIR_PATHS})
+if( ${python-paraview} STREQUAL "python-paraview-NOTFOUND" )
+ message(WARNING "Python Paraview library not found. Post processing will fail in SOLVERLAB scripts.")
+ set(PRELOAD_NETCDF_ON_UBUNTU20 OFF)
+else( ${python-paraview} STREQUAL "python-paraview-NOTFOUND" )
+ if( ${python-paraview} STREQUAL "/usr/lib/python3/dist-packages/paraview/simple.py" )
+ message ( STATUS "Using system Paraview python libraries on Ubuntu 20.04 requires the presence and preload of library netcdf (bug in linkage)." )
+ if( EXISTS "/usr/lib/x86_64-linux-gnu/libnetcdf.so" )
+ message ( STATUS "Library netcdf found in the system. Paraview python libraries should be functional." )
+ set(PRELOAD_NETCDF_ON_UBUNTU20 ON)
+ else( EXISTS "/usr/lib/x86_64-linux-gnu/libnetcdf.so" )
+ message ( WARNING "Library netcdf not found in system. Paraview python libraries may not be functional (bug in linkage)." )
+ set(PRELOAD_NETCDF_ON_UBUNTU20 OFF)
+ endif( EXISTS "/usr/lib/x86_64-linux-gnu/libnetcdf.so" )
+ else( ${python-paraview} STREQUAL "/usr/lib/python3/dist-packages/paraview/simple.py" )
+ message(STATUS "Python Paraview library found. Post processing will work in SOLVERLAB scripts.")
+ set(PRELOAD_NETCDF_ON_UBUNTU20 OFF)
+ endif( ${python-paraview} STREQUAL "/usr/lib/python3/dist-packages/paraview/simple.py" )
+endif( ${python-paraview} STREQUAL "python-paraview-NOTFOUND" )
+
+# Find SWIG
+IF ( DEFINED SWIG_ROOT_DIR OR DEFINED ENV{SWIG_ROOT_DIR})
+ IF ( DEFINED SWIG_ROOT_DIR )
+ set(SWIG_EXECUTABLE ${SWIG_ROOT_DIR}/bin/swig )
+ ELSE ( DEFINED SWIG_ROOT_DIR )
+ set(SWIG_EXECUTABLE $ENV{SWIG_ROOT_DIR}/bin/swig )
+ ENDIF( DEFINED SWIG_ROOT_DIR)
+ENDIF( DEFINED SWIG_ROOT_DIR OR DEFINED ENV{SWIG_ROOT_DIR})