#!/usr/bin/make -f

export DH_VERBOSE=1 # can also set this on each debian/rules command line
export LC_ALL=C.UTF-8
JSUSING:=fonts-font-awesome libjs-mathjax node-ajv node-d3-format node-requirejs node-jquery node-jquery-ui node-backbone node-es6-promise node-semver node-underscore
BUILTUSING:=$(foreach jspkg, $(JSUSING), $(shell dpkg-query -f '$${source:Package} (= $${source:Version}), ' -W $(jspkg)))

PYVERS=$(shell python3 -c 'import sysconfig;print (sysconfig.get_python_version())')
PYPATH=$(CURDIR)/debian/python3-ipywidgets/usr/lib/python$(PYVERS)/dist-packages
PYTHON_MODS=ipywidgets widgetsnbextension

NODE_MODS=base base-manager controls html-manager output # schema
JSDEPS=@jupyterlab jquery @lumino @types underscore lodash postcss minipass source-map-js

#CMD=ln -sf
CMD=cp -r

%:
	dh $@ --with nodejs,python3,sphinxdoc --buildsystem=pybuild --buildsystem=nodejs

override_dh_auto_clean:
	dh_auto_clean --buildsystem nodejs
	for i in $(PYTHON_MODS) ; do dh_auto_clean --buildsystem=pybuild -- --dir python/$$i ; rm -rf python/$$i/$$i.egg-info ; done

override_dh_auto_configure:
	# mv debian/missing-sources/* .
	dh_auto_configure --buildsystem nodejs
	for i in $(PYTHON_MODS) ; do dh_auto_configure --buildsystem=pybuild -- --dir python/$$i ; done
	cp -r /usr/share/javascript/mathjax packages/controls/node_modules/
	# partial libraries without package.json break pkg-js-tools machinery
	# ln -s ../../@jupyterlab jupyter-js-widgets/node_modules/@jupyterlab
	# d/nodejs/component_links doesn't work if the component name includes @
	# ln -s ../../../@types/underscore jupyter-js-widgets/node_modules/@types/underscore

override_dh_auto_build:
	for i in $(PYTHON_MODS) ; do dh_auto_build --buildsystem=pybuild -- --dir python/$$i ; done
	dh_auto_build --buildsystem nodejs

XXXoverride_dh_sphinxdoc:
	for i in $(PYTHON_MODS) ; do dh_auto_install --buildsystem=pybuild -- --dir python/$$i ; done
	dh_install
	PYTHONPATH=$(PYPATH) python3 -m sphinx -N -bhtml docs/source debian/python-ipywidgets-doc/usr/share/doc/python-ipywidgets-doc/html
	ln -s /usr/share/javascript/requirejs/require.min.js debian/python-ipywidgets-doc/usr/share/doc/python-ipywidgets-doc/html/_static
	#ln -s /usr/share/nodejs/@jupyter-widgets/html-manager/dist/embed-amd.js debian/python-ipywidgets-doc/usr/share/doc/python-ipywidgets-doc/html/_static
	mkdir -p debian/python-ipywidgets-doc/usr/share/doc/python-ipywidgets-doc/html//nodejs/@jupyter-widgets/html-manager/dist
	touch debian/python-ipywidgets-doc/usr/share/doc/python-ipywidgets-doc/html//nodejs/@jupyter-widgets/html-manager/dist/embed-amd.js
	dh_sphinxdoc

override_dh_auto_install:
	dh_auto_install --buildsystem nodejs
	for i in $(PYTHON_MODS) ; do dh_auto_install --buildsystem=pybuild -- --dir python/$$i ; done
	#set -e; for i in debian/tmp/usr/lib/*/dist-packages/widgetsnbextension/static; do \
	#  rm -rf $$i && ln -sfT /usr/share/jupyter/nbextensions/jupyter-js-widgets $$i; \
	#done
	dh_install

override_dh_auto_test:
	#for i in $(PYTHON_MODS) ; do dh_auto_install --buildsystem=pybuild -- --dir python/$$i ; done
	#dh_install
	cd python/ipywidgets ; PYTHONPATH=$(PYPATH) pytest --cov=ipywidgets ipywidgets # || true

override_dh_gencontrol:
	echo "js:Built-Using=$(BUILTUSING)" >> debian/jupyter-nbextension-jupyter-js-widgets.substvars
	dh_gencontrol
