cmake_minimum_required (VERSION 3.16)
set(QT_MIN_VERSION "6.7.0")
set(KF6_MIN_VERSION "6.2.0")

project(dikt)

find_package (ECM ${KF6_MIN_VERSION} REQUIRED NO_MODULE)
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})

include(FeatureSummary)
include(KDEInstallDirs)
include(KDECMakeSettings)
include(KDECompilerSettings NO_POLICY_SCOPE)

find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Core Network Widgets PrintSupport)
find_package(KF6 ${KF6_MIN_VERSION} REQUIRED COMPONENTS Config I18n KIO XmlGui GuiAddons IconThemes DBusAddons)

set(dikt_SRCS
	src/browser.cpp
	src/conf.cpp
	src/formatter.cpp
	src/group.cpp
	src/hiliter.cpp
	src/host.cpp
	src/main.cpp
	src/page.cpp
	src/selection.cpp
	src/settings.cpp
	src/style.cpp
	src/tracker.cpp
	src/window.cpp
	src/gui/history.cpp
	src/gui/list.cpp
	src/gui/menu.cpp
	src/gui/search.cpp
	src/gui/select.cpp
	src/gui/status.cpp
	src/gui/widgets.cpp
	src/net/dict.cpp
)

qt6_wrap_ui(dikt_SRCS
	ui/browserconf.ui
	ui/groupedit.ui
	ui/searchbar.ui
	ui/searchconf.ui
	ui/styleconf.ui
	ui/selections.ui
)

qt6_add_resources(dikt_SRCS res/dikt.qrc)
add_executable(dikt ${dikt_SRCS})

target_link_libraries(dikt
	Qt6::Network
	Qt6::PrintSupport
	KF6::GuiAddons
	KF6::XmlGui
	KF6::I18n
	KF6::KIOFileWidgets
	KF6::DBusAddons
	KF6::IconThemes
	KF6::WidgetsAddons
	KF6::Codecs
)

install(TARGETS dikt DESTINATION ${KDE_INSTALL_BINDIR})
install(PROGRAMS dist/dikt.desktop DESTINATION ${KDE_INSTALL_APPDIR})
install(FILES dist/diktui.rc DESTINATION ${KDE_INSTALL_KXMLGUIDIR}/dikt)
#install(FILES dist/dict.protocol DESTINATION ${KDE_INSTALL_KSERVICESDIR})

install(FILES res/format.conf res/dikt.css DESTINATION ${KDE_INSTALL_DATADIR}/dikt)
install(FILES icon/dikt.png DESTINATION ${KDE_INSTALL_ICONDIR}/hicolor/128x128/apps)

feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
