#!/usr/bin/make -f
#
# Build Debian package using https://github.com/spotify/dh-virtualenv

export DH_VIRTUALENV_INSTALL_ROOT=/opt/venvs
NODEENV_VERSION=1.3.1
EXTRA_REQUIREMENTS=--upgrade-pip --preinstall "setuptools>=17.1" --preinstall "wheel" \
    --preinstall "Cython==0.29.11" --extras=default

ifeq (1,$(shell grep -iscm1 xenial /etc/os-release))
    # On Xenial, install "python3.6 python3.6-tk" from Deadsnakes PPA
    SNAKE=/usr/bin/python3.6
else
    SNAKE=/usr/bin/python3
endif

PACKAGE=$(shell dh_listpackages)
VERSION=$(shell parsechangelog | grep ^Version: | sed -re 's/[^0-9]+([^-]+).*/\1/')
DH_VENV_ARGS=--setuptools --builtin-venv --python $(SNAKE) $(EXTRA_REQUIREMENTS) \
            --extra-pip-arg=--progress-bar=pretty
            # --extra-pip-arg "--no-binary=psycopg2" \
            # -v
DH_VENV_DIR=debian/$(PACKAGE)$(DH_VIRTUALENV_INSTALL_ROOT)/$(PACKAGE)
PILLOW_SPEC=$(shell grep Pillow== setup.py | cut -f2 -d"'")

ifeq (,$(wildcard $(CURDIR)/.npmrc))
    NPM_CONFIG=~/.npmrc
else
    NPM_CONFIG=$(CURDIR)/.npmrc
endif


%:
	dh $@ --with python-virtualenv

.PHONY: override_dh_virtualenv override_dh_strip override_dh_shlibdeps

override_dh_virtualenv:
	dh_virtualenv $(DH_VENV_ARGS)
	$(DH_VENV_DIR)/bin/python $(DH_VENV_DIR)/bin/pip install -I --no-binary Pillow,PIL $(PILLOW_SPEC)
	$(DH_VENV_DIR)/bin/python $(DH_VENV_DIR)/bin/pip install nodeenv==$(NODEENV_VERSION)
	$(DH_VENV_DIR)/bin/nodeenv -C '' -p -n system
	. $(DH_VENV_DIR)/bin/activate && node /usr/bin/npm install --userconfig=$(NPM_CONFIG) -g configurable-http-proxy
	-PJS=$$(find $(DH_VENV_DIR)/lib -iname 'phantomjs_bin' -type d) && test -n "$$PJS" && \
		chmod a+x "$$PJS/bin/linux/phantomjs" && \
		rm "$$PJS/bin/macosx/phantomjs" "$$PJS/bin/windows/phantomjs.exe"
	date -Iseconds >$(DH_VENV_DIR)/dpkg-stamp

override_dh_strip:
	dh_strip --exclude=cffi --exclude=_imaging --exclude=libtiff
	date -Iseconds >$(DH_VENV_DIR)/dpkg-stamp

override_dh_shlibdeps:
	dh_shlibdeps -X/x86/ \
        -X/chromedriver_binary/ -X/Cython/ -X/kiwisolver -X/markupsafe/ \
        -X/matplotlib/ -X/numpy/ -X/pandas/ -X/PIL/ -X/psutil/ -X/pvectorc -X/pycurl \
        -X/scipy/ -X/selenium/ -X/sqlalchemy/ -X/tornado/ -X/_yaml -X/zmq/
	date -Iseconds >$(DH_VENV_DIR)/dpkg-stamp
