CXX ?= c++
PKG_CONFIG ?= pkg-config
MOC ?= $(shell $(PKG_CONFIG) --variable=libexecdir Qt6Core)/moc
PREFIX ?= /usr
LIBDIR ?= $(PREFIX)/lib
DATADIR ?= $(PREFIX)/share
CPPFLAGS += $(shell $(PKG_CONFIG) --cflags Qt6Widgets lxqt)
CXXFLAGS += -std=c++17 -O2 -Wall -Wextra -fPIC
LDLIBS += $(shell $(PKG_CONFIG) --libs Qt6Widgets lxqt)
.PHONY: all check install
all: libmierzwasystemmonitor.so
mierzwasystemmonitor.moc: mierzwasystemmonitor.cpp metrics.h
	$(MOC) $(CPPFLAGS) $< -o $@
libmierzwasystemmonitor.so: mierzwasystemmonitor.cpp mierzwasystemmonitor.moc metrics.h
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -shared mierzwasystemmonitor.cpp -o $@ $(LDFLAGS) $(LDLIBS)
metrics-test: metrics-test.cpp metrics.h
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) metrics-test.cpp -o $@ $(LDFLAGS) $(LDLIBS)
plugin-check: plugin-check.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) plugin-check.cpp -o $@ $(LDFLAGS) $(LDLIBS)
check: all metrics-test plugin-check
	./metrics-test
	QT_QPA_PLATFORM=offscreen ./plugin-check
install: all
	install -Dm755 libmierzwasystemmonitor.so $(DESTDIR)$(LIBDIR)/lxqt-panel/libmierzwasystemmonitor.so
	install -Dm644 mierzwasystemmonitor.desktop $(DESTDIR)$(DATADIR)/lxqt/lxqt-panel/mierzwasystemmonitor.desktop
