# Basic compiling: make app

SRC=.
MAINFILE=BBaroloGUI.py
APP=BBaroloGUI

# PYUIC converts QTDesigner files to source code
#PYUIC=pyuic6
PYUIC=pyside6-uic
# PYRCC converts resources (e.g., images) to source code
#PYRCC=pyrcc5
PYRCC=pyside6-rcc
# PyInstaller is for deployment
PYINST=pyinstaller
PYINST_OPT= -y -w --clean -F -i $(SRC)/resources/Bbarolo.icns

#Detecting operating system
ifeq ($(OS),Windows_NT)
	OPS=WIN
else ifeq ($(OS),Darwin)
	OPS=OSX
	APP := $(APP).app
else
	OPS=LINUX
endif

app: cleanest gui
	$(PYINST) $(SRC)/$(MAINFILE) $(PYINST_OPT)
ifeq ($(OPS),OSX)
	$(post_installation_mac)
endif

macpost: 
	$(post_installation_mac)
	
define post_installation_mac
	mv dist/$(APP) .
	cp BBarolo $(APP)/Contents/MacOS/
	# Adding retina display support
	#plutil -insert NSHighResolutionCapable -bool YES $(APP)/Contents/Info.plist
endef

gui:
	mkdir -p $(SRC)/moc
	$(PYUIC) -o $(SRC)/moc/ui_bbarolowindow.py $(SRC)/ui/bbarolowindow.ui
	$(PYRCC) resources.qrc -o resources_rc.py
	
clean:
	rm -rf setup.py build/ dist/ $(SRC)/__pycache__ *.spec $(SRC)/moc/__pycache__
	
cleanest: clean
	rm -rf $(APP)

	
