#! /usr/bin/make -f
#export DH_VERBOSE=1

DESTDIR = $(CURDIR)/debian/tmp
UPSTREAM_VERSION = $(shell dpkg-parsechangelog | awk '/^Version:/ { sub("-[^-]*$$", "", $$2); print $$2}')

%:
	dh $@ --buildsystem=cmake --with python3 --no-parallel

PY3VERS=$(shell py3versions -vr)
PY3DEF=$(shell py3versions -dv)

export LD_LIBRARY_PATH+=:$(CURDIR)/debian/paraview/usr/lib/paraview
export QT_SELECT=qt5

CPPFLAGS:=$(shell dpkg-buildflags --get CPPFLAGS) -g1
CFLAGS:=$(shell dpkg-buildflags --get CFLAGS) $(CPPFLAGS) -Wall -pedantic
CXXFLAGS:=$(shell dpkg-buildflags --get CXXFLAGS) $(CPPFLAGS)
LDFLAGS:=$(shell dpkg-buildflags --get LDFLAGS) -Wl,--as-needed

# Following variables not used.  
#    Eigen_DIR
#    PARAVIEW_BUILD_PLUGIN_EyeDomeLighting
#    PARAVIEW_BUILD_PLUGIN_MobileRemoteControl

# Needs testing:
#	-DVTK_MODULE_USE_EXTERNAL_VTK_mpi4py=ON 
#	-DPARAVIEW_BUILD_DEVELOPER_DOCUMENTATION=ON 
#	-DEigen_DIR=/usr/include/eigen3 
# Investigate: Pixie Needs ADIOS1
#	-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderPixie=ON 
#	-DPARAVIEW_PLUGIN_ENABLE_AdiosReaderStaging=ON 

# gl2ps in Debian/unstable currently 1.4.0; 1.4.1 is needed

# Explicit settings of MPI_* is required see
# http://www.vtk.org/Bug/view.php?id=12572
extra_flags += -Wno-dev \
	-DCMAKE_BUILD_TYPE=Release \
	-DPARAVIEW_BUILD_DEVELOPER_DOCUMENTATION=OFF \
	-DCMAKE_INSTALL_RPATH=/usr/lib/paraview \
	-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF  \
	-DCMAKE_SKIP_RPATH=OFF \
	-DPARAVIEW_ENABLE_FFMPEG=ON \
	-DPARAVIEW_ENABLE_WEB=OFF \
	-DPARAVIEW_BUILD_SHARED_LIBS=ON \
	-DVTK_SOURCE_DIR=$(CURDIR)/VTK \
	-DHDF5_INCLUDE_DIRS="/usr/include/hdf5/serial" \
	-DHDF5_IS_PARALLEL=OFF \
	-DVTK_INSTALL_LIBRARY_DIR="lib/paraview" \
	-DVTK_INSTALL_ARCHIVE_DIR="lib/paraview" \
	-DVTK_INSTALL_INCLUDE_DIR="include/paraview" \
	-DVTK_INSTALL_DATA_DIR="share/paraview" \
	-DVTK_INSTALL_DOC_DIR="share/doc/paraview" \
	-DVTK_INSTALL_PACKAGE_DIR="lib/cmake/paraview" \
	-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_eigen=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_lz4=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_lzma=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_utf8=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_tiff=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_zlib=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_expat=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_png=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_glew=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_freetype=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_netcdf=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps=OFF \
	-DPARAVIEW_USE_MPI=ON \
	-DPARAVIEW_ENABLE_PYTHON=ON \
	-DPARAVIEW_ENABLE_VISITBRIDGE=ON \
	-DPARAVIEW_ENABLE_GDAL=ON \
	-DPARAVIEW_ENABLE_PDAL=ON \
	-DPARAVIEW_ENABLE_XDMF3=ON \
	-DPARAVIEW_ENABLE_MOTIONFX=ON \
	-DPARAVIEW_PLUGIN_ENABLE_EyeDomeLighting=ON \
	-DDEB_HOST_MULTIARCH=$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

override_dh_auto_clean:
	dh_auto_clean
	rm -fr build.*

my_configure_python%: pyver=$(patsubst my_configure_python%,%,$@)
my_configure_python%:
	dh_auto_configure -Bbuild.python$(pyver) -- $(extra_flags) -DPython3_EXECUTABLE=/usr/bin/python$(pyver) -DDEBIAN_PYTHON_VERSION=$(pyver)

override_dh_auto_configure: $(foreach pyver,$(PY3VERS), my_configure_python$(pyver))

my_build_python%: pyver=$(patsubst my_build_python%,%,$@)
my_build_python%:
	dh_auto_build -Bbuild.python$(pyver)

override_dh_auto_build: $(foreach pyver,$(PY3VERS), my_build_python$(pyver))

my_install_python%: pyver=$(patsubst my_install_python%,%,$@)
my_install_python%:
	dh_auto_install -Bbuild.python$(pyver)

override_dh_auto_install: $(foreach pyver,$(PY3VERS), my_install_python$(pyver))
	# Use the defaut python3 version for the tools
	cd debian/tmp/usr/bin $(foreach exe,pvbatch pvpython,&& mv $(exe)$(PY3DEF) $(exe))
	# Move out python3 modules from archtriplet subfolder to have correct behavior from dh_python3
	mv debian/tmp/usr/lib/*/python3* debian/tmp/usr/lib/
	# Drop unwanted mpi4py module
	rm -fr debian/tmp/usr/lib/python3*/site-packages/mpi4py

my_test_python%: pyver=$(patsubst my_test_python%,%,$@)
my_test_python%:
	dh_auto_test -Bbuild.python$(pyver)

override_dh_auto_test: $(foreach pyver,$(PY3VERS), my_test_python$(pyver))

override_dh_compress:
	dh_compress -X.qch

override_dh_makeshlibs:
	dh_makeshlibs -V'paraview (>= $(UPSTREAM_VERSION)), paraview (<< $(UPSTREAM_VERSION).)'
