#!/usr/bin/make -f
BUILDDIR = $(CURDIR)/debian/build

include /usr/share/dpkg/architecture.mk

nojava_archs=hppa
nojava_os=hurd
ifeq (,$(filter $(DEB_BUILD_ARCH), $(nojava_archs))$(filter $(DEB_BUILD_ARCH_OS), $(nojava_os)))
  export JAVA_HOME=/usr/lib/jvm/default-java
  extra_flags += -DVTK_WRAP_JAVA=ON
  # increase java version from 8 to 11 to remove many warnings
  extra_flags += -DVTK_JAVA_RELEASE_VERSION:STRING=11
endif

ifneq (,$(filter $(DEB_HOST_ARCH), armel m68k mips mipsel powerpc sh4))
  export DEB_CXXFLAGS_MAINT_APPEND += -Wl,--no-as-needed -latomic -Wl,--as-needed
  export DEB_LDFLAGS_MAINT_APPEND += -Wl,--no-as-needed -latomic -Wl,--as-needed
endif

notbb_archs=
notbb_os=hurd
ifeq (,$(filter $(DEB_BUILD_ARCH), $(notbb_archs))$(filter $(DEB_BUILD_ARCH_OS), $(notbb_os)))
  extra_flags += -DVTK_SMP_IMPLEMENTATION_TYPE:STRING="TBB"
else
  extra_flags += -DVTK_SMP_IMPLEMENTATION_TYPE:STRING="OpenMP"
endif

# Work around FTBFS on Alpha (assembler error "No lda !gpdisp!")
ifneq (,$(filter $(DEB_HOST_ARCH),alpha))
  export DEB_CXXFLAGS_MAINT_APPEND += -O1
endif

%:
	dh $@ --buildsystem=cmake --builddirectory=$(BUILDDIR)

extra_flags +=  \
	-DBUILD_SHARED_LIBS=ON \
	-DHDF5_IS_PARALLEL=OFF \
	-DVTK_BUILD_DOCUMENTATION=ON \
	-DVTK_BUILD_EXAMPLES=OFF \
	-DVTK_BUILD_TESTING=OFF \
	-DVTK_EXTRA_COMPILER_WARNINGS=ON \
	-DVTK_GROUP_ENABLE_Imaging:STRING=YES \
	-DVTK_GROUP_ENABLE_MPI:STRING=YES \
	-DVTK_GROUP_ENABLE_Qt:STRING=YES \
	-DVTK_GROUP_ENABLE_Rendering:STRING=YES \
	-DVTK_GROUP_ENABLE_StandAlone:STRING=YES \
	-DVTK_GROUP_ENABLE_Views:STRING=YES \
	-DVTK_MODULE_ENABLE_VTK_GUISupportQtQuick:STRING=DONT_WANT \
	-DVTK_MODULE_ENABLE_VTK_GUISupportQtSQL:STRING=NO \
	-DVTK_MODULE_ENABLE_VTK_InteractionImage:STRING=YES \
	-DVTK_MODULE_ENABLE_VTK_InteractionWidgets:STRING=YES \
	-DVTK_MODULE_ENABLE_VTK_IOGeoJSON:STRING=YES \
	-DVTK_MODULE_ENABLE_VTK_ParallelMPI:STRING=YES \
	-DVTK_MODULE_ENABLE_VTK_RenderingContextOpenGL2=YES \
	-DVTK_MODULE_ENABLE_VTK_RenderingQt:STRING=YES \
	-DVTK_MODULE_ENABLE_VTK_utf8:STRING=YES \
	-DVTK_MODULE_USE_EXTERNAL_VTK_doubleconversion:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_eigen:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_expat:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_freetype:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_gl2ps:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_hdf5:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_jpeg:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_jsoncpp:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_libproj:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_libxml2:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_lz4:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_lzma:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_netcdf:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_nlohmannjson:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_ogg:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_png:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_sqlite:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_theora:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_tiff:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_utf8:BOOL=ON \
	-DVTK_MODULE_USE_EXTERNAL_VTK_zlib:BOOL=ON \
	-DVTK_WRAP_PYTHON=ON \
	-DVTK_USE_MPI=ON \
	-DVTK_QT_VERSION=6

override_dh_auto_configure:
	dh_auto_configure -- $(extra_flags)

execute_after_dh_auto_clean:
	rm -rf $(BUILDDIR)

execute_after_dh_auto_build:
	cd $(BUILDDIR) && make DoxygenDoc
	find $(BUILDDIR)/Utilities/Doxygen/doc/html/ -name "*.md5" -delete

override_dh_auto_install:
	dh_auto_install -X.pyc -X.pyo
ifneq ($(JAVA_HOME),)
	mv $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/java/vtk.jar $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/java/vtk9.jar
endif
	sed -i -e "s/FATAL_ERROR/STATUS/g" $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/cmake/vtk-9.5/VTK-targets.cmake

execute_after_dh_install:
	rm -rf $(CURDIR)/debian/tmp/usr/share/licenses
	find $(CURDIR)/debian/libvtk9-dev/ -name "*Qt*" -delete
	find $(CURDIR)/debian/libvtk9-dev/usr/include/ -name "Q*" -delete
	find $(CURDIR)/debian/libvtk9.5/ -name "*Qt*" -delete
	find $(CURDIR)/debian/tmp/usr/share/doc/vtk-9.5/doxygen -name "_formulas.log" -delete
	find $(CURDIR)/debian/build/Utilities/Doxygen/doc/html -name "_formulas.log" -delete

# Fix privacy breach
execute_after_dh_installdocs-indep:
	find $(CURDIR)/debian/vtk9-doc/ -type f -print0 | xargs -0 sed -i 's/https:\/\/raw\.githubusercontent\.com//g'
	find $(CURDIR)/debian/vtk9-doc/ -type f -print0 | xargs -0 sed -i 's/https:\/\/cdn\.jsdelivr\.net\/npm\/mathjax@2/\/usr\/share\/javascript\/mathjax/g'
