include build/common_head.mak

CROSS_COMPILE?=
ifneq (,$(CROSS_COMPILE))
CXX:=$(CROSS_COMPILE)g++
endif

HOST_CXX?=g++

EXT?=.exe

all: true_all

PKGS:=\
	sdl2\

PKG_CFLAGS:=$(shell pkg-config $(PKGS) --cflags)
PKG_LDFLAGS:=$(shell pkg-config $(PKGS) --libs || echo "ERROR")

ifeq (ERROR,$(PKG_LDFLAGS))
  $(error At least one library was not found in the build environment)
endif

DBGFLAGS?=-g

CXXFLAGS+=-Wall -Wextra
CXXFLAGS+=-Isrc
CXXFLAGS+=-I.
CXXFLAGS+=-std=c++14
CXXFLAGS+=$(PKG_CFLAGS)
LDFLAGS+=$(PKG_LDFLAGS)

#CXXFLAGS+=-O3

CXXFLAGS+=$(DBGFLAGS)
LDFLAGS+=$(DBGFLAGS)

#------------------------------------------------------------------------------

SRCS_ENGINE:=\
	src/engine/app.cpp\
	src/engine/main.cpp\
	src/engine/stats.cpp\
	src/audio/audio.cpp\
	src/audio/sound_ogg.cpp\
	src/misc/base64.cpp\
	src/misc/decompress.cpp\
	src/misc/file.cpp\
	src/misc/json.cpp\
	src/misc/math.cpp\
	src/misc/string.cpp\
	src/misc/time.cpp\
	src/render/matrix3.cpp\
	src/render/model.cpp\
	src/render/picture.cpp\
	src/render/png.cpp\
	src/render/renderer.cpp\

SRCS_ENGINE+=\
	src/platform/audio_sdl.cpp\
	src/platform/input_sdl.cpp\
	src/platform/display_ogl.cpp\
	src/platform/glad.cpp\

#------------------------------------------------------------------------------

SRCS_GAME:=\
	src/gameplay/game.cpp\

#------------------------------------------------------------------------------

SRCS:=\
	$(SRCS_GAME)\
	$(SRCS_ENGINE)\

$(BIN)/rel/game$(EXT): $(SRCS:%=$(BIN)/%.o)
	@mkdir -p $(dir $@)
	$(CXX) $^ -o '$@' $(LDFLAGS)

TARGETS+=$(BIN)/rel/game$(EXT)

#------------------------------------------------------------------------------
include assets/project.mk

#------------------------------------------------------------------------------

SRCS_TESTS:=\
	$(SRCS_GAME)\
	$(filter-out src/engine/main.cpp, $(SRCS_ENGINE))\
	src/tests/tests.cpp\
	src/tests/tests_main.cpp\
	src/tests/audio.cpp\
	src/tests/base64.cpp\
	src/tests/decompress.cpp\
	src/tests/delegate.cpp\
	src/tests/json.cpp\
	src/tests/util.cpp\
	src/tests/png.cpp\

$(BIN)/tests$(EXT): $(SRCS_TESTS:%=$(BIN)/%.o)
	@mkdir -p $(dir $@)
	$(CXX) $^ -o '$@' $(LDFLAGS)

TARGETS+=$(BIN)/tests$(EXT)

include build/common.mak
