qml_module(ZShell
	URI ZShell
	INCLUDE_PREFIX core
	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
		alignaudit.hpp alignaudit.cpp
		alignauditor.hpp alignauditor.cpp
	LIBRARIES
		Qt6::Gui
		Qt6::Quick
		Qt6::QuickPrivate
		Qt6::QuickLayouts
		Qt6::QuickLayoutsPrivate
		Qt6::QmlPrivate
		Qt6::CorePrivate
		Qt6::Concurrent
		Qt6::Sql
		Qt6::DBus
		PkgConfig::Qalculate
		zshell-util
)

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

target_compile_definitions(ZShell PRIVATE ALIGN_AUDIT_USE_QML_PRIVATE)


# 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(Wallpaper)
add_subdirectory(Services)
add_subdirectory(Components)
add_subdirectory(Blobs)
add_subdirectory(Config)
add_subdirectory(Llm)

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()
