kumquat-buildroot/package/qt6/qt6base/Config.in

167 lines
4.0 KiB
Plaintext
Raw Normal View History

package/qt6/qt6base: new package This commit proposes a very minimal package for qt6base. It only supports building QtCore, so it *really* is minimal. But that's a starting point, which we can progressively build on top. It is based on initial work from Peter Seiderer. This minimal QtCore build is however sufficient to build and run simple non-graphical Qt applications. A number of comments: - Even though there's only qt6base for now, many other qt6 modules will come later on, which is why we're using the same structure as for qt5, with a subdir for package/qt6/ - Qt6 is mutually exclusive with Qt5. Even though the library names on the target and the location of the header files are distinct, the host tools (qmake, moc and al.) have the same name, so at least for now, we make them mutually exclusive. - We've chosen to use non-bundled libraries for zlib, bb2, double-conversion and pcre2, for both the target and the host qt6base packages. - Contrary to qt5 where the target package was building the host tools, now we have a host qt6base package building the host tools, and which is needed as a dependency for the target qt6base package. - qt6base is using CMake. However, it strongly recommends to use Ninja as a backend instead of make, a recommendation that we follow in this commit. Since we don't have support for Ninja in the cmake-package infrastructure (yet), we do this manually in qt6base.mk itself, by passing -Gninja to CMake at configure time, and then by using cmake --build at build time and cmake --install at install time, using explicitly provided build and install commands. Hopefully these can go away once we have support for Ninja directly in cmake-package. - We disable a number of features or external libraries using FEATURE options. However, because there are over 400 FEATURE options in qt6base, we didn't go all the way to explicitly disabling *all* of them (which would be needed for both the host and target packages). We expect that this list of explicit FEATURE options disabling will need to grow based on the feedback of users and issues encountered. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-07-25 17:25:20 +02:00
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
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_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.
endif
config BR2_PACKAGE_QT6BASE_NETWORK
bool "network module"
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_XML
bool "XML module"
help
This options enables the Qt6Xml library.
endif