config BR2_PACKAGE_QT6BASE
	bool "qt6base"
	select BR2_PACKAGE_DOUBLE_CONVERSION
	select BR2_PACKAGE_LIBB2
	select BR2_PACKAGE_PCRE2
	select BR2_PACKAGE_PCRE2_16
	select BR2_PACKAGE_ZLIB
	help
	  Qt is a cross-platform application and UI framework for
	  developers using C++.

	  This package corresponds to the qt6base module, which
	  contains the base Qt libraries: QtCore, QtNetwork, QtGui,
	  QtWidgets, etc.

	  http://qt.io

if BR2_PACKAGE_QT6BASE

config BR2_PACKAGE_QT6BASE_CONCURRENT
	bool "concurrent module"
	help
	  This options enables the Qt6Concurrent library.

config BR2_PACKAGE_QT6BASE_DBUS
	bool "DBus module"
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_USE_MMU
	select BR2_PACKAGE_DBUS
	help
	  This option enables the D-Bus module.

config BR2_PACKAGE_QT6BASE_GUI
	bool "gui module"
	select BR2_PACKAGE_FREETYPE
	# At least one graphic backend must be enabled, so enable
	# linuxfb if nothing is enabled.
	select BR2_PACKAGE_QT6BASE_LINUXFB if \
	       !BR2_PACKAGE_QT6BASE_XCB && \
	       !BR2_PACKAGE_QT6BASE_EGLFS
	help
	  This option enables the Qt6Gui library.

if BR2_PACKAGE_QT6BASE_GUI

config BR2_PACKAGE_QT6BASE_LINUXFB
	bool "linuxfb support"

config BR2_PACKAGE_QT6BASE_XCB
	bool "X.org XCB support"
	depends on BR2_PACKAGE_XORG7
	select BR2_PACKAGE_XLIB_LIBX11
	select BR2_PACKAGE_LIBXCB
	select BR2_PACKAGE_XCB_UTIL_IMAGE
	select BR2_PACKAGE_XCB_UTIL_KEYSYMS
	select BR2_PACKAGE_XCB_UTIL_RENDERUTIL
	select BR2_PACKAGE_XCB_UTIL_WM
	select BR2_PACKAGE_LIBXKBCOMMON

comment "X.org XCB backend available if X.org is enabled"
	depends on !BR2_PACKAGE_XORG7

config BR2_PACKAGE_QT6BASE_EGLFS
	bool "eglfs support"
	depends on BR2_PACKAGE_HAS_LIBEGL
	depends on BR2_PACKAGE_HAS_LIBGBM
	depends on BR2_PACKAGE_QT6_GL_SUPPORTS
	select BR2_PACKAGE_QT6BASE_OPENGL

config BR2_PACKAGE_QT6BASE_DEFAULT_QPA
	string "Default graphical platform"
	help
	  Choose the default platform abstraction to use for graphical
	  applications (e.g xcb, linuxfb, eglfs, ...). If this is
	  empty, the default for your architecture will be used
	  (usually this is eglfs).

	  You can get a list of supported platforms by running a Qt
	  application with the option "-platform help" on your
	  target. You can choose a different platform at runtime with
	  the -platform option.

config BR2_PACKAGE_QT6BASE_OPENGL
	bool "OpenGL support"
	depends on BR2_PACKAGE_QT6_GL_SUPPORTS
	help
	  This option enables OpenGL support.

comment "OpenGL support needs an OpenGL-capable backend"
	depends on !BR2_PACKAGE_QT6_GL_SUPPORTS

if BR2_PACKAGE_QT6BASE_OPENGL

choice
	prompt "OpenGL API"
	help
	  Select OpenGL API.

config BR2_PACKAGE_QT6BASE_OPENGL_DESKTOP
	bool "Desktop OpenGL"
	depends on BR2_PACKAGE_HAS_LIBGL
	help
	  Use desktop OpenGL.

config BR2_PACKAGE_QT6BASE_OPENGL_ES2
	bool "OpenGL ES 2.0+"
	depends on BR2_PACKAGE_HAS_LIBGLES
	help
	  Use OpenGL ES 2.0 and later versions.

endchoice

endif

config BR2_PACKAGE_QT6BASE_FONTCONFIG
	bool "fontconfig support"
	select BR2_PACKAGE_FONTCONFIG
	help
	  This option enables Fontconfig support using the system
	  fontconfig library.

config BR2_PACKAGE_QT6BASE_HARFBUZZ
	bool "harfbuzz support"
	select BR2_PACKAGE_HARFBUZZ if \
		BR2_TOOLCHAIN_HAS_SYNC_4 && \
		BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
	help
	  This option enables HarfBuzz support (either system harfbuzz
	  if the toolchain supports __sync for 4 bytes, or the qt
	  provided one which avoids this dependency by using QAtomic).

config BR2_PACKAGE_QT6BASE_GIF
	bool "GIF support"
	help
	  This compiles and installs the plugin for GIF reading support.

config BR2_PACKAGE_QT6BASE_JPEG
	bool "JPEG support"
	select BR2_PACKAGE_JPEG
	help
	  This option enables JPEG support using the system libjpeg
	  library.

config BR2_PACKAGE_QT6BASE_PNG
	bool "PNG support"
	select BR2_PACKAGE_LIBPNG
	help
	  This option enables PNG support using the system libpng
	  library.

config BR2_PACKAGE_QT6BASE_WIDGETS
	bool "widgets module"
	help
	  This option enables the Qt6Widgets library.

config BR2_PACKAGE_QT6BASE_PRINTSUPPORT
	bool "printing support"
	# yes, print support needs widgets
	depends on BR2_PACKAGE_QT6BASE_WIDGETS
	help
	  This option enables printing support, optionally using CUPS
	  if available.

endif

config BR2_PACKAGE_QT6BASE_NETWORK
	bool "network module"
	select BR2_PACKAGE_LIBOPENSSL_ENABLE_PSK if BR2_PACKAGE_LIBOPENSSL
	help
	  This options enables the Qt6Network library.

config BR2_PACKAGE_QT6BASE_SQL
	bool "sql module"
	help
	  This options enables the Qt6Sql library.

if BR2_PACKAGE_QT6BASE_SQL
config BR2_PACKAGE_QT6BASE_MYSQL
	bool "MySQL Plugin"
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_USE_MMU
	depends on BR2_TOOLCHAIN_HAS_THREADS
	select BR2_PACKAGE_MYSQL
	help
	  Build MySQL plugin

comment "MySQL plugin needs a toolchain w/ C++, threads"
	depends on BR2_USE_MMU
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS

config BR2_PACKAGE_QT6BASE_PSQL
	bool "PostgreSQL Plugin"
	depends on BR2_USE_MMU
	depends on !BR2_STATIC_LIBS
	depends on BR2_USE_WCHAR
	depends on !BR2_OPTIMIZE_FAST
	select BR2_PACKAGE_POSTGRESQL
	help
	  Build PostgreSQL plugin

comment "PostgreSQL plugin needs a toolchain w/ wchar, dynamic library"
	depends on BR2_USE_MMU
	depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR

comment "PostgreSQL plugin can't be built with optimize for fast"
	depends on BR2_USE_MMU
	depends on BR2_OPTIMIZE_FAST

config BR2_PACKAGE_QT6BASE_SQLITE
	bool "SQLite plugin"
	select BR2_PACKAGE_SQLITE
	select BR2_PACKAGE_SQLITE_ENABLE_COLUMN_METADATA
	help
	  Build SQLite plugin

endif

config BR2_PACKAGE_QT6BASE_SYSLOG
	bool "syslog support"
	help
	  Logs to the standard UNIX logging mechanism.

config BR2_PACKAGE_QT6BASE_TEST
	bool "test module"
	help
	  This options enables the Qt6Test library.

config BR2_PACKAGE_QT6BASE_TSLIB
	bool "Enable Tslib support"
	select BR2_PACKAGE_TSLIB
	help
	  This options enables the Tslib plugin

config BR2_PACKAGE_QT6BASE_XML
	bool "XML module"
	help
	  This options enables the Qt6Xml library.

endif
