view Makefile.am @ 337:a7d4e5107531

dep/animone: REFACTOR ALL THE THINGS 1: animone now has its own syntax divergent from anisthesia, making different platforms actually have their own sections 2: process names in animone are now called `comm' (this will probably break things). this is what its called in bsd/linux so I'm just going to use it everywhere 3: the X11 code now checks for the existence of a UTF-8 window title and passes it if available 4: ANYTHING THATS NOT LINUX IS 100% UNTESTED AND CAN AND WILL BREAK! I still actually need to test the bsd code. to be honest I'm probably going to move all of the bsds into separate files because they're all essentially different operating systems at this point
author Paper <paper@paper.us.eu.org>
date Wed, 19 Jun 2024 12:51:15 -0400
parents 4aeffed717ef
children eac06513db86
line wrap: on
line source

bin_PROGRAMS = minori

# Localization

minori_locale_ts = \
	rc/locale/en_GB.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

dep_json_include = \
	dep/json/json.hpp \
	dep/json/json_fwd.hpp

dep_toml_include = \
	dep/toml11/toml.hpp \
	dep/toml11/toml/color.hpp \
	dep/toml11/toml/combinator.hpp \
	dep/toml11/toml/comments.hpp \
	dep/toml11/toml/datetime.hpp \
	dep/toml11/toml/exception.hpp \
	dep/toml11/toml/from.hpp \
	dep/toml11/toml/get.hpp \
	dep/toml11/toml/into.hpp \
	dep/toml11/toml/lexer.hpp \
	dep/toml11/toml/literal.hpp \
	dep/toml11/toml/macros.hpp \
	dep/toml11/toml/parser.hpp \
	dep/toml11/toml/region.hpp \
	dep/toml11/toml/result.hpp \
	dep/toml11/toml/serializer.hpp \
	dep/toml11/toml/source_location.hpp \
	dep/toml11/toml/storage.hpp \
	dep/toml11/toml/string.hpp \
	dep/toml11/toml/traits.hpp \
	dep/toml11/toml/types.hpp \
	dep/toml11/toml/utility.hpp \
	dep/toml11/toml/value.hpp \
	dep/toml11/toml/version.hpp

dep_semver_include = \
	dep/semver/semver.hpp

dep_fmt_include = \
	dep/fmt/include/fmt/ostream.h \
	dep/fmt/include/fmt/format-inl.h \
	dep/fmt/include/fmt/ranges.h \
	dep/fmt/include/fmt/xchar.h \
	dep/fmt/include/fmt/core.h \
	dep/fmt/include/fmt/chrono.h \
	dep/fmt/include/fmt/os.h \
	dep/fmt/include/fmt/color.h \
	dep/fmt/include/fmt/args.h \
	dep/fmt/include/fmt/printf.h \
	dep/fmt/include/fmt/compile.h \
	dep/fmt/include/fmt/format.h \
	dep/fmt/include/fmt/std.h

dep_fmt_source = \
	dep/fmt/src/format.cc \
	dep/fmt/src/os.cc

minori_qtrc = \
	$(top_srcdir)/rc/icons/icons.qrc	\
	$(top_srcdir)/rc/animone.qrc	\
	rc/locale/translations.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

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

minori_osx_rc = \
	$(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/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
minori_qtrc_win_dep = $(top_srcdir)/rc/sys/win32/dark/dark.qss

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

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/core/session.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/drop_list_widget.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.h	\
	include/core/config.h		\
	include/core/date.h		\
	include/core/filesystem.h			\
	include/core/json.h			\
	include/core/strings.h			\
	include/core/time.h			\
	include/core/torrent.h		\
	include/library/library.h		\
	include/services/anilist.h		\
	include/services/kitsu.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_include) \
	$(dep_toml_include) \
	$(dep_semver_include) \
	$(dep_fmt_include) \
	$(minori_qtheaders)

minori_utf8proc_sources = \
	dep/utf8proc/utf8proc.c

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

minori_SOURCES = \
	src/core/anime_db.cc		\
	src/core/anime.cc		\
	src/core/anime_season.cc	\
	src/core/config.cc		\
	src/core/date.cc		\
	src/core/filesystem.cc		\
	src/core/http.cc		\
	src/core/json.cc		\
	src/core/session.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/drop_list_widget.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/kitsu.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)	\
	$(dep_fmt_source) \
	rc/final_qrc.cc

minori_includes = \
	-I$(top_srcdir)/include \
	-I$(top_srcdir)/dep/fmt/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 = $(LIBCURL_CPPFLAGS) $(minori_includes)
minori_CXXFLAGS = $(QT_CFLAGS) $(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) $(minori_icons_png) $(minori_qtrc_win_dep)
	$(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