BC_VAR_PROJECT_NAME=nostalgia
BC_VAR_PROJECT_NAME_CAP=Nostalgia
BC_VAR_DEVENV_ROOT=util
BUILDCORE_PATH=deps/oxlib/deps/buildcore
include ${BUILDCORE_PATH}/base.mk

ifeq ($(BC_VAR_OS),darwin)
	PROJECT_STUDIO=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}Studio.app/Contents/MacOS/${BC_VAR_PROJECT_NAME_CAP}Studio
	MGBA=/Applications/mGBA.app/Contents/MacOS/mGBA
else
	PROJECT_STUDIO=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}Studio
	MGBA=mgba-qt
endif
PROJECT_PLAYER=./build/${BC_VAR_CURRENT_BUILD}/bin/${BC_VAR_PROJECT_NAME_CAP}

.PHONY: git-setup-ox-remote
git-setup-ox-remote:
	git remote add -f ox-master git@git.drinkingtea.net:drinkingtea/ox.git

.PHONY: git-pull-ox
git-pull-ox:
	git fetch ox-master master
	git subtree pull --prefix deps/oxlib ox-master master --squash

.PHONY: git-push-ox
git-push-ox:
	git subtree push --prefix=deps/oxlib ox-master master

.PHONY: pkg-gba
pkg-gba: build-pack build-gba-player
	${BC_CMD_ENVRUN} ${BC_PY3} ./util/scripts/pkg-gba.py sample_project ${BC_VAR_PROJECT_NAME_CAP}

.PHONY: pkg-mac
pkg-mac: install
	${BC_CMD_ENVRUN} ${BC_PY3} ./util/scripts/pkg-dmg.py NostalgiaStudio

.PHONY: generate-studio-rsrc
generate-studio-rsrc:
	${BC_CMD_ENVRUN} ${BC_PY3} ./util/scripts/file-to-cpp.py --rsrc src/olympic/studio/applib/src/rsrc.json
	${BC_CMD_ENVRUN} ${BC_PY3} ./util/scripts/file-to-cpp.py --rsrc src/nostalgia/studio/rsrc.json

.PHONY: build-gba-player
build-gba-player:
	cmake --build ./build/gba-*

.PHONY: build-player
build-player:
	${BC_CMD_CMAKE_BUILD} ${BC_VAR_BUILD_PATH} ${BC_VAR_PROJECT_NAME_CAP}

.PHONY: build-pack
build-pack:
	cmake --build ./build/${BC_VAR_CURRENT_BUILD} --target ${BC_VAR_PROJECT_NAME}-pack


.PHONY: run
run: build-player
	${PROJECT_PLAYER} sample_project

.PHONY: build-studio
build-studio:
	cmake --build ./build/${BC_VAR_CURRENT_BUILD} --target ${BC_VAR_PROJECT_NAME_CAP}Studio

.PHONY: run-studio
run-studio: build-studio
	${PROJECT_STUDIO}

.PHONY: gba-run
gba-run: pkg-gba
	${MGBA} ${BC_VAR_PROJECT_NAME_CAP}.gba

.PHONY: debug
debug: build
	${BC_CMD_HOST_DEBUGGER} ${PROJECT_PLAYER} sample_project

.PHONY: debug-studio
debug-studio: build
	${BC_CMD_HOST_DEBUGGER} ${PROJECT_STUDIO}


.PHONY: configure-gba
configure-gba:
	${BC_CMD_SETUP_BUILD} --toolchain=deps/gbabuildcore/cmake/modules/GBA.cmake --target=gba --current_build=0 --build_type=release --build_root=${BC_VAR_BUILD_PATH}

.PHONY: configure-gba-debug
configure-gba-debug:
	${BC_CMD_SETUP_BUILD} --toolchain=deps/gbabuildcore/cmake/modules/GBA.cmake --target=gba --current_build=0 --build_type=debug --build_root=${BC_VAR_BUILD_PATH}

.PHONY: loc
loc:
	${BC_PY3} util/scripts/loc.py \
		--search-dirs \
			src \
			deps/ox/src \
			deps/buildcore \
			deps/gbabuildcore \
			deps/glutils \
			deps/teagba \
		--include-exts \
			.cpp \
			.hpp \
			.py \
			.s \
			.cmake \
		--exclude-paths \
			deps/teagba/src/gba_crt0.s \
			src/olympic/studio/applib/src/font.cpp \
			src/olympic/studio/applib/src/font.hpp \
			src/nostalgia/studio/icondata.cpp
