.PHONY: all

all: tests

######## Setup ########

VERSION = 0.1.0
DIST=dist/csrk-${VERSION}.tar.gz
version: clean
	sed --in-place "s/ version: .*/ version: '${VERSION}',/g" meson.build 
	echo "__version__ = '${VERSION}'" > src/csrk/__version__.py
EXAMPLE_LOCATION = ./
HERE=$(shell pwd)
WHL=wheelhouse
LOCAL_WHEELS=${HERE}/local-wheels

######## Installation ########
$(DIST): clean version
	- git add src meson.build
	- git commit
	python3 -m build

install: $(DIST)
	python3 -m pip install $(DIST)

testpypi: tests
	python3 -m twine upload --repository testpypi $(DIST)

pypi: testpypi
	python3 -m twine upload $(DIST)

local-wheels: clean
	mkdir -p $(LOCAL_WHEELS)
	cibuildwheel --output-dir $(LOCAL_WHEELS)
	wget "https://gitlab.com/xevra/csrk/-/jobs/artifacts/main/download?job=linux" -O $(LOCAL_WHEELS)/artifacts.zip
	cd $(LOCAL_WHEELS); unzip artifacts.zip
	mv $(LOCAL_WHEELS)/$(WHL)/*.whl $(LOCAL_WHEELS)
	ls $(LOCAL_WHEELS)/artifacts.zip
	rm $(LOCAL_WHEELS)/artifacts.zip
	rm -rf $(LOCAL_WHEELS)/$(WHL)

testpypi-wheels: local-wheels
	python3 -m twine upload --repository testpypi $(LOCAL_WHEELS)/*.whl
pypi-wheels: testpypi-wheels
	python3 -m twine upload $(LOCAL_WHEELS)/*.whl


######## Tests ########
test_hybrid: install
	python3 $(EXAMPLE_LOCATION)/tests/test_hybrid.py

test_Nighthawks: install
	python3 $(EXAMPLE_LOCATION)/tests/test_Nighthawks.py

pytest: clean install
	pytest

tests: test_hybrid test_Nighthawks

######## Scripts ########
Nighthawks: install
	python3 $(EXAMPLE_LOCATION)/scripts/interp_Nighthawks.py

######## Clean ########
clean:
	rm -rf $(EXAMPLE_LOCATION)/src/*.egg-info
	rm -rf ${EXAMPLE_LOCATION}/src/csrk/rust/target
	rm -rf $(EXAMPLE_LOCATION)/dist
	rm -rf $(EXAMPLE_LOCATION)/build
	rm -rf ${EXAMPLE_LOCATION}/data/*
	rm -rf $(LOCAL_WHEELS)/*
	rm -rf $(EXAMPLE_LOCATION)/src/csrk/__pycache__
	rm -rf test_*.hdf5
	rm -rf test_*.png
	rm -rf dist/*
