qml_module(ZShell
	URI ZShell
	SOURCES
		writefile.hpp writefile.cpp
		appdb.hpp appdb.cpp
		imageanalyser.hpp imageanalyser.cpp
		requests.hpp requests.cpp
		toaster.hpp toaster.cpp
		qalculator.hpp qalculator.cpp
		zutils.hpp zutils.cpp
	LIBRARIES
		Qt::Gui
		Qt::Quick
		Qt::Concurrent
		Qt::Sql
		Qt::DBus
		PkgConfig::Qalculate
		zshell-util
)

target_compile_definitions(ZShell PRIVATE ZSHELL_VERSION="${VERSION}")

# Node macros expand to Q_OBJECT, automoc can't see it otherwise
list(APPEND CMAKE_AUTOMOC_MACRO_NAMES
	CONFIG_NODE
	CONFIG_NODE_NO_CTOR
	CONFIG_LIST_TYPE
	SETTINGS_NODE
	SETTINGS_NODE_NO_CTOR
	SETTINGS_LIST_TYPE
)

add_subdirectory(Settings)
add_subdirectory(Models)
add_subdirectory(Internal)
add_subdirectory(Services)
add_subdirectory(Components)
add_subdirectory(Blobs)
add_subdirectory(Config)

pkg_check_modules(HYPRLAND_PROBE hyprland)
if(HYPRLAND_PROBE_FOUND)
	add_subdirectory(HyprPlugins)
else()
	message(STATUS
		"hyprland development headers not found; skipping zshell-nightlight plugin")
endif()
