bin_PROGRAMS = minori

# Localization

minori_locale_ts = \
	rc/locale/en_GB.ts \
	rc/locale/es.ts

minori_locale_qm = $(minori_locale_ts:.ts=.qm)

rc/locale/translations.qrc: $(minori_locale_qm)
	$(MKDIR_P) $$(dirname $@); \
	printf "<!DOCTYPE rcc><RCC version=\"1.0\">\n\t<qresource prefix=\"locale/\">\n" > $@; \
	for q in $(minori_locale_qm); do \
		printf "\t\t<file>%s</file>\n" "$$(basename $$q)" >> $@; \
	done;
	printf "\t</qresource>\n</RCC>\n" >> $@;

# Qt resources

minori_qtrc = \
	$(top_srcdir)/rc/icons/icons.qrc	\
	$(top_srcdir)/rc/animone.qrc

# various things we want to distribute

minori_icons_png = \
	$(top_srcdir)/rc/icons/16x16/arrow-circle-315.png \
	$(top_srcdir)/rc/icons/16x16/calendar.png \
	$(top_srcdir)/rc/icons/16x16/calendar-previous.png	\
	$(top_srcdir)/rc/icons/16x16/calendar-next.png	\
	$(top_srcdir)/rc/icons/16x16/category.png \
	$(top_srcdir)/rc/icons/16x16/chart.png \
	$(top_srcdir)/rc/icons/16x16/clock-history-frame.png \
	$(top_srcdir)/rc/icons/16x16/cross-button.png \
	$(top_srcdir)/rc/icons/16x16/document-list.png \
	$(top_srcdir)/rc/icons/16x16/feed.png \
	$(top_srcdir)/rc/icons/16x16/film.png \
	$(top_srcdir)/rc/icons/16x16/gear.png \
	$(top_srcdir)/rc/icons/16x16/magnifier.png \
	$(top_srcdir)/rc/icons/16x16/navigation-270-button.png \
	$(top_srcdir)/rc/icons/16x16/plus-button.png \
	$(top_srcdir)/rc/icons/16x16/sort-quantity-descending.png \
	$(top_srcdir)/rc/icons/16x16/ui-scroll-pane-detail.png \
	$(top_srcdir)/rc/icons/24x24/application-export.png \
	$(top_srcdir)/rc/icons/24x24/application-sidebar-list.png \
	$(top_srcdir)/rc/icons/24x24/arrow-circle-double-135.png \
	$(top_srcdir)/rc/icons/24x24/feed.png \
	$(top_srcdir)/rc/icons/24x24/folder-open.png \
	$(top_srcdir)/rc/icons/24x24/gear.png \
	$(top_srcdir)/rc/icons/24x24/globe.png \
	$(top_srcdir)/rc/icons/24x24/inbox-film.png \
	$(top_srcdir)/rc/icons/24x24/megaphone.png \
	$(top_srcdir)/rc/icons/24x24/question.png \
	$(top_srcdir)/rc/icons/favicon.png

minori_linux_rc = \
	$(top_srcdir)/rc/sys/linux/Minori.desktop \
	$(top_srcdir)/rc/sys/linux/Minori.png

minori_osx_rc = \
	$(top_srcdir)/rc/sys/osx/Minori.app/Contents/Resources/Minori.icns \
	$(top_srcdir)/rc/sys/osx/Minori.app/Contents/Info.plist \
	$(top_srcdir)/rc/sys/osx/Minori.app/Contents/PkgInfo

minori_win32_rc = \
	$(top_srcdir)/rc/sys/win32/dark/dark.qrc \
	$(top_srcdir)/rc/sys/win32/dark/dark.qss \
	$(top_srcdir)/rc/sys/win32/favicon.ico \
	$(top_srcdir)/rc/sys/win32/resource.rc \
	$(top_srcdir)/rc/sys/win32/version.rc

minori_scripts = \
	$(top_srcdir)/scripts/osx/deploy_build.sh \
	$(top_srcdir)/scripts/win32/deploy_build.sh

EXTRA_DIST = \
	$(minori_icons_png) \
	$(top_srcdir)/rc/icons/README.md \
	$(minori_linux_rc) \
	$(minori_osx_rc) \
	$(minori_win32_rc) \
	$(minori_scripts)

# OS-specific

if BUILD_GLIB

files_glib = src/sys/glib/dark_theme.cc
cflags_glib = $(GLIB_CFLAGS)
libs_glib = $(GLIB_LIBS)

endif

if BUILD_WIN

files_win = src/sys/win32/dark_theme.cc
libs_win = -lole32 -luuid
ldflags_win = -mwindows

# Add dark stylesheet to resources
minori_qtrc_win = $(top_srcdir)/rc/sys/win32/dark/dark.qrc

if BUILD_WINDRES

wrcflags_version = -DWRC_VERSION=0,`echo $(PACKAGE_VERSION) | @SED@ 's/\([0-9]\{1,\}\)\.\([0-9]\{1,\}\)\.\([0-9]\{1,\}\).*/\1,\2,\3/'`

WRCFLAGS = --use-temp-file -I. -I$(srcdir) $(wrcflags_version) $(CPPFLAGS)
.rc.$(OBJEXT):
	$(WINDRES) $(WRCFLAGS) -i $< -o $@
files_windres=rc/sys/win32/version.rc rc/sys/win32/resource.rc

endif # BUILD_WINDRES

endif # BUILD_WIN

if BUILD_OSX

files_osx = src/sys/osx/dark_theme.cc src/sys/osx/permissions.cc
cflags_osx = -mmacosx-version-min=10.15
libs_osx = -lobjc
ldflags_osx = -framework Foundation -framework AppKit

endif

minori_qtheaders = \
	include/core/http.h			\
	include/gui/dialog/about.h		\
	include/gui/dialog/information.h		\
	include/gui/dialog/settings.h			\
	include/gui/pages/anime_list.h			\
	include/gui/pages/history.h			\
	include/gui/pages/now_playing.h		\
	include/gui/pages/search.h			\
	include/gui/pages/seasons.h		\
	include/gui/pages/statistics.h		\
	include/gui/pages/torrents.h		\
	include/gui/translate/anilist.h		\
	include/gui/translate/anime.h			\
	include/gui/translate/config.h		\
	include/gui/widgets/anime_button.h	\
	include/gui/widgets/anime_info.h		\
	include/gui/widgets/clickable_label.h		\
	include/gui/widgets/graph.h			\
	include/gui/widgets/optional_date.h		\
	include/gui/widgets/poster.h			\
	include/gui/widgets/sidebar.h			\
	include/gui/widgets/text.h		\
	include/gui/widgets/elided_label.h	\
	include/gui/locale.h	\
	include/gui/theme.h			\
	include/gui/window.h

noinst_HEADERS = \
	include/core/anime_db.h		\
	include/core/anime.h		\
	include/core/anime_season_db.h \
	include/core/config.h		\
	include/core/date.h		\
	include/core/filesystem.h			\
	include/core/ini.h		\
	include/core/json.h			\
	include/core/session.h			\
	include/core/strings.h			\
	include/core/time.h			\
	include/core/torrent.h		\
	include/library/library.h		\
	include/services/anilist.h		\
	include/services/services.h		\
	include/sys/glib/dark_theme.h	\
	include/sys/osx/dark_theme.h	\
	include/sys/osx/permissions.h   \
	include/sys/win32/dark_theme.h	\
	include/track/media.h			\
	dep/json/json.hpp	\
	dep/json/json_fwd.hpp	\
	dep/mini/ini.h	\
	dep/semver/semver.hpp	\
	$(minori_qtheaders)

minori_utf8proc_sources = \
	dep/utf8proc/utf8proc.c

minori_SOURCES = \
	src/core/anime_db.cc		\
	src/core/anime.cc		\
	src/core/anime_season_db.cc \
	src/core/config.cc		\
	src/core/date.cc		\
	src/core/filesystem.cc		\
	src/core/http.cc		\
	src/core/ini.cc			\
	src/core/json.cc		\
	src/core/strings.cc		\
	src/core/time.cc		\
	src/gui/dialog/settings/application.cc		\
	src/gui/dialog/settings/library.cc		\
	src/gui/dialog/settings/recognition.cc		\
	src/gui/dialog/settings/services.cc		\
	src/gui/dialog/settings/torrents.cc		\
	src/gui/dialog/about.cc		\
	src/gui/dialog/information.cc		\
	src/gui/dialog/settings.cc		\
	src/gui/pages/anime_list.cc		\
	src/gui/pages/history.cc		\
	src/gui/pages/now_playing.cc		\
	src/gui/pages/search.cc		\
	src/gui/pages/seasons.cc		\
	src/gui/pages/statistics.cc		\
	src/gui/pages/torrents.cc		\
	src/gui/translate/anilist.cc		\
	src/gui/translate/anime.cc		\
	src/gui/translate/config.cc		\
	src/gui/widgets/anime_button.cc	\
	src/gui/widgets/anime_info.cc		\
	src/gui/widgets/clickable_label.cc		\
	src/gui/widgets/elided_label.cc			\
	src/gui/widgets/optional_date.cc		\
	src/gui/widgets/poster.cc		\
	src/gui/widgets/sidebar.cc		\
	src/gui/widgets/text.cc		\
	src/gui/locale.cc		\
	src/gui/theme.cc		\
	src/gui/window.cc		\
	src/library/library.cc		\
	src/services/anilist.cc		\
	src/services/services.cc		\
	src/track/media.cc		\
	src/main.cc		\
	$(files_osx)			\
	$(files_glib)			\
	$(files_win)			\
	$(files_windres)	\
	$(minori_locale_ts)	\
	$(minori_qtrc)	\
	$(minori_qtrc_win)	\
	$(minori_locale_qm)	\
	$(minori_moc_sources)	\
	$(minori_utf8proc_sources)	\
	rc/locale/translations.qrc	\
	rc/final_qrc.cc

minori_moc_sources = $(minori_qtheaders:.h=_moc.cc)

minori_includes = \
	-I$(top_srcdir)/include \
	-I$(top_srcdir)/dep/animone/include \
	-I$(top_srcdir)/dep/pugixml/src \
	-I$(top_srcdir)/dep/anitomy \
	-I$(top_srcdir)/dep/utf8proc \
	-I$(top_srcdir)/dep

minori_CPPFLAGS = $(QT_CPPFLAGS) $(LIBCURL_CPPFLAGS) $(minori_includes)
minori_CXXFLAGS = $(QT_CXXFLAGS) $(cflags_osx) $(cflags_glib) $(cflags_win)
minori_LDFLAGS = $(QT_LDFLAGS) $(ldflags_osx) $(ldflags_win)

minori_DEPENDENCIES = dep/pugixml/libpugixml.la dep/animone/libanimone.la dep/anitomy/libanitomy.la
minori_LDADD = $(minori_DEPENDENCIES) $(libs_glib) $(LIBCURL) $(QT_LIBS) $(libs_osx) $(libs_win)

# Build only one qrc, otherwise we get a ton of
# weird linking errors
rc/final_qrc.cc: $(minori_qtrc) $(minori_qtrc_win)
	$(QT_RCC) -o $@ $(minori_qtrc) $(minori_qtrc_win)

.h_moc.cc:
	$(MKDIR_P) -- $$(dirname $@)
	$(QT_MOC) -o $@ $(minori_includes) $<

.ts.qm:
	$(MKDIR_P) $$(dirname $@); \
	$(QT_LRELEASE) $< -qm $@

SUFFIXES = .h _moc.cc .ts .qm
SUBDIRS = $(subdirs)
ACLOCAL_AMFLAGS = -I m4
