set (CMAKE_AUTOMOC ON)
set (CMAKE_INCLUDE_CURRENT_DIR ON)
set (DISCOUNT_FIND_QUIETLY ON)

if (APPLE)
	list (APPEND CMAKE_PREFIX_PATH
		     "/usr/local/opt/qt5"
		     "/usr/local/opt/qt@5.5") # Provide list of default paths for Homebrew’s Qt
endif (APPLE)

set (QCOMPONENTS Core Quick Gui Qml Widgets Test)
find_package (Qt5 COMPONENTS ${QCOMPONENTS})
find_package (Qt5 OPTIONAL_COMPONENTS Svg QUIET)
find_package (Qt5 OPTIONAL_COMPONENTS DBus QUIET)
find_package (Discount)

if (NOT Qt5_FOUND)
	remove_tool (qt-gui "qt5 (Components: ${QCOMPONENTS}) not found")
elseif (NOT DISCOUNT_FOUND)
	remove_tool (qt-gui "discount or libmarkdown-dev not found")
else ()

	if (NOT Qt5Svg_FOUND)
		message (WARNING "No Qt5 svg module found. Svg icons themes will not be supported. (please install libqt5svg5-dev)")
	endif ()

	if (NOT Qt5DBus_FOUND)
		message (WARNING "No Qt5 DBus module found. Listening to DBus will not be supported.")
		add_definitions (-DHAVE_DBUS=0)
	else ()
		add_definitions (-DHAVE_DBUS=1)
	endif ()

	include_directories (${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})

	include_directories (SYSTEM
			     ${Qt5Quick_INCLUDE_DIRS}
			     ${Qt5Gui_INCLUDE_DIRS}
			     ${Qt5Core_INCLUDE_DIRS}
			     ${Qt5Qml_INCLUDE_DIRS}
			     ${Qt5Widgets_INCLUDE_DIRS}
			     ${Qt5Test_INCLUDE_DIRS}
			     ${Qt5Svg_INCLUDE_DIRS}
			     src/markdownconverter)

	file (GLOB qt-gui_HDRS
		   "src/markdownconverter/*.h"
		   "src/markdownconverter/template/*.h")

	add_headers (qt-gui_HDRS)
	add_cppheaders (qt-gui_HDRS)
	add_toolheaders (qt-gui_HDRS)

	file (GLOB qt-gui_SRCS
		   "src/*.cpp"
		   "src/markdownconverter/*.cpp"
		   "src/markdownconverter/template/*.cpp")

	set (qt-gui_RSCS resources.qrc)
	set_property (SOURCE qrc_resources.cpp
		      PROPERTY SKIP_AUTOMOC
			       ON)

	qt5_add_resources (RSCS ${qt-gui_RSCS})

	add_executable (qt-gui ${qt-gui_SRCS} ${qt-gui_HDRS} ${UIS} ${RSCS} ${TRS})
	add_dependencies (qt-gui kdberrors_generated elektra_error_codes_generated)

	target_link_libraries (qt-gui Qt5::Quick Qt5::Gui Qt5::Core Qt5::Qml Qt5::Widgets)

	include_directories (${DISCOUNT_INCLUDES})
	target_link_libraries (qt-gui ${DISCOUNT_LIBRARIES})

	target_link_libraries (qt-gui
			       ${Qt5Quick_LIBRARIES}
			       ${Qt5Gui_LIBRARIES}
			       ${Qt5Core_LIBRARIES}
			       ${Qt5Qml_LIBRARIES}
			       ${Qt5Widgets_LIBRARIES}
			       ${Qt5Svg_LIBRARIES}
			       ${Qt5Test_LIBRARIES}
			       ${Qt5DBus_LIBRARIES})
	tool_link_elektratools (qt-gui elektra-ease)

	install (TARGETS qt-gui DESTINATION ${TARGET_TOOL_EXEC_FOLDER})
	configure_file ("${CMAKE_CURRENT_SOURCE_DIR}/elektra-qt-editor.in" "${CMAKE_CURRENT_BINARY_DIR}/elektra-qt-editor")
	install (PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/elektra-qt-editor" DESTINATION bin)
	install (FILES org.libelektra.elektra-qt-editor.desktop DESTINATION share/applications)
	install (FILES org.libelektra.elektra-qt-editor.appdata.xml DESTINATION share/appdata)
	install (FILES ../../../doc/images/logo/logo_color.svg DESTINATION share/icons/hicolor/scalable/apps RENAME elektra.svg)
	install (FILES ../../../doc/images/logo/logo_gray.svg DESTINATION share/icons/hicolor/scalable/apps RENAME elektra-symbolic.svg)

	generate_manpage (kdb-qt-gui FILENAME ${CMAKE_CURRENT_SOURCE_DIR}/README.md)

endif ()
