From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Jesse Van Gavere <jesseevg@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>, buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH 1/1] package/qt6/qt6base: extend qt6 configuration
Date: Thu, 25 Aug 2022 10:41:40 +0200 [thread overview]
Message-ID: <20220825084140.GC25468@scaer> (raw)
In-Reply-To: <20220825073951.3920874-1-jesseevg@gmail.com>
Jesse, All,
On 2022-08-25 09:39 +0200, Jesse Van Gavere spake thusly:
> This will bring the qt6base functionality mostly on par with the qt5base
> package, building the package has been tested to the best of my ability
> and went without error as far as I can test.
> One bug to be noted is that for the GUI with fontconfig without harfbuzz
> support, this will produce incorrectly rendered text for version 6.3.1,
> see https://bugreports.qt.io/browse/QTBUG-101430
> I have however already verified that 6.3.2 and 6.4.0 will fix this issue
> so I've decided not to add harfbuzz as a fontconfig dependency as a
> version bump (which should be soon) will fix it.
> Also add the version hashes for qt6base.
>
> Signed-off-by: Jesse Van Gavere <jesseevg@gmail.com>
Thank you for this patch, it's nice seeing the work being picked up!
However, this is a big patch. It would be nice if you could split it up
into smaller parts. For example, here's a suggestion shortlog:
package/qt6base: add support for building examples
package/qt6base: add support for network module
package/qt6base: add support for concurrent module
package/qt6base: add support for sql module w/ MySQL
package/qt6base: add support for sql module w/ Postgre
...
package/qt6base: add support for a custom config file
This is maybe a bit of work, but it will make it easier to review.
Regards,
Yann E. MORIN.
> ---
> package/qt6/qt6base/Config.in | 280 ++++++++++++++++++++++++++
> package/qt6/qt6base/qt6base.hash | 9 +
> package/qt6/qt6base/qt6base.mk | 329 ++++++++++++++++++++++++++++++-
> 3 files changed, 616 insertions(+), 2 deletions(-)
> create mode 100644 package/qt6/qt6base/qt6base.hash
>
> diff --git a/package/qt6/qt6base/Config.in b/package/qt6/qt6base/Config.in
> index a489ce39fc..244e7d6760 100644
> --- a/package/qt6/qt6base/Config.in
> +++ b/package/qt6/qt6base/Config.in
> @@ -14,3 +14,283 @@ config BR2_PACKAGE_QT6BASE
> QtWidgets, etc.
>
> http://qt.io
> +
> +if BR2_PACKAGE_QT6BASE
> +
> +config BR2_PACKAGE_QT6BASE_CUSTOM_CONF_OPTS
> + string "Custom configuration options"
> + help
> + Define custom qt6 configuration options which can be used to
> + enable or disable options not managed by buildroot. These
> + options are appended to the ones generated by buildroot and
> + passed to qt6base during configuration.
> +
> + Use cmake style '-Doption_name=ON' or -Doption_name=OFF'.
> +
> +config BR2_PACKAGE_QT6BASE_EXAMPLES
> + bool "Compile and install examples (with code)"
> + select BR2_PACKAGE_QT6BASE_NETWORK
> + select BR2_PACKAGE_QT6BASE_XML
> + help
> + If unsure, say N.
> +
> +config BR2_PACKAGE_QT6BASE_NETWORK
> + bool "network module"
> + help
> + This options enables the Qt6Network library.
> +
> +config BR2_PACKAGE_QT6BASE_CONCURRENT
> + bool "concurrent module"
> + help
> + This options enables the Qt6Concurrent 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_USE_MMU # mysql
> + select BR2_PACKAGE_MYSQL
> + select BR2_PACKAGE_NCURSES
> + select BR2_PACKAGE_READLINE
> + help
> + Build MySQL plugin
> + If unsure, say n.
> +
> +config BR2_PACKAGE_QT6BASE_PSQL
> + bool "PostgreSQL Plugin"
> + depends on BR2_USE_MMU # postgresql
> + depends on !BR2_STATIC_LIBS
> + depends on BR2_USE_WCHAR # postgresql
> + select BR2_PACKAGE_POSTGRESQL
> + help
> + Build PostgreSQL plugin
> + If unsure, say n.
> +
> +comment "PostgreSQL plugin needs a toolchain w/ wchar, dynamic library"
> + depends on BR2_USE_MMU
> + depends on BR2_STATIC_LIBS || !BR2_USE_WCHAR
> +
> +choice
> + prompt "SQLite 3 support"
> + default BR2_PACKAGE_QT6BASE_SQLITE_NONE
> + help
> + Select SQLite support.
> +
> +config BR2_PACKAGE_QT6BASE_SQLITE_NONE
> + bool "No sqlite support"
> + help
> + Do not compile any kind of SQLite support.
> +
> +config BR2_PACKAGE_QT6BASE_SQLITE_QT
> + bool "Qt SQLite"
> + help
> + Use Qt bundled SQLite support.
> +
> +config BR2_PACKAGE_QT6BASE_SQLITE_SYSTEM
> + bool "System SQLite"
> + select BR2_PACKAGE_SQLITE
> + select BR2_PACKAGE_SQLITE_ENABLE_COLUMN_METADATA
> + help
> + Use system SQLite.
> +
> +endchoice
> +
> +endif
> +
> +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.
> +
> +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_DIRECTFB && \
> + !BR2_PACKAGE_QT6BASE_XCB && \
> + !BR2_PACKAGE_QT6BASE_EGLFS
> + help
> + This option enables the Qt6Gui library.
> +
> +if BR2_PACKAGE_QT6BASE_GUI
> +
> +config BR2_PACKAGE_QT6BASE_WIDGETS
> + bool "widgets module"
> + select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_QT6BASE_XCB
> + help
> + This option enables the Qt6Widgets library.
> +
> +comment "OpenGL support needs an OpenGL-capable backend"
> + depends on !BR2_PACKAGE_QT6_GL_AVAILABLE
> +
> +config BR2_PACKAGE_QT6BASE_OPENGL
> + bool "OpenGL support"
> + depends on BR2_PACKAGE_QT6_GL_AVAILABLE
> + help
> + This option enables OpenGL support.
> +
> +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
> +
> +config BR2_PACKAGE_QT6BASE_OPENGL_LIB
> + bool "opengl module"
> + select BR2_PACKAGE_QT6BASE_WIDGETS
> + help
> + This option enables the Qt6OpenGL library. This library
> + includes OpenGL support classes provided to ease porting
> + from Qt 4.x.
> +
> +endif
> +
> +config BR2_PACKAGE_QT6BASE_LINUXFB
> + bool "linuxfb support"
> +
> +config BR2_PACKAGE_QT6BASE_DIRECTFB
> + bool "directfb support"
> + depends on BR2_PACKAGE_DIRECTFB
> +
> +comment "directfb backend available if directfb is enabled"
> + depends on !BR2_PACKAGE_DIRECTFB
> +
> +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_QT6_GL_AVAILABLE
> + select BR2_PACKAGE_QT6BASE_OPENGL
> +
> +comment "eglfs backend available if OpenGL and EGL are enabled"
> + depends on !BR2_PACKAGE_HAS_LIBEGL || !BR2_PACKAGE_QT6_GL_AVAILABLE
> +
> +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_PRINTSUPPORT
> + depends on BR2_PACKAGE_QT6BASE_WIDGETS
> + def_bool y
> +
> +config BR2_PACKAGE_QT6BASE_FONTCONFIG
> + bool "fontconfig support"
> + select BR2_PACKAGE_FONTCONFIG
> + help
> + This option enables Fontconfig and Freetype support using
> + the system fontconfig and freetype2 libraries.
> +
> +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_SYSLOG
> + bool "syslog support"
> + help
> + Logs to the standard UNIX logging mechanism.
> +
> +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_ICU
> + bool "Enable ICU support"
> + depends on !BR2_BINFMT_FLAT # icu
> + depends on BR2_HOST_GCC_AT_LEAST_4_9 # icu
> + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # icu
> + select BR2_PACKAGE_ICU
> + help
> + This option enables ICU support in Qt6. This is for example
> + needed for Qt6Webkit.
> +
> +comment "icu support needs a toolchain w/ gcc >= 4.9, host gcc >= 4.9"
> + depends on !BR2_BINFMT_FLAT
> + depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
> + !BR2_HOST_GCC_AT_LEAST_4_9
> +
> +config BR2_PACKAGE_QT6BASE_TSLIB
> + bool "Enable Tslib support"
> + select BR2_PACKAGE_TSLIB
> + help
> + This options enables the Tslib plugin
> +
> +endif
> diff --git a/package/qt6/qt6base/qt6base.hash b/package/qt6/qt6base/qt6base.hash
> new file mode 100644
> index 0000000000..0f845ce38b
> --- /dev/null
> +++ b/package/qt6/qt6base/qt6base.hash
> @@ -0,0 +1,9 @@
> +# Hash from: https://download.qt.io/official_releases/qt/6.3/6.3.1/submodules/qtbase-everywhere-src-6.3.1.tar.xz.sha256
> +sha256 0a64421d9c2469c2c48490a032ab91d547017c9cc171f3f8070bc31888f24e03 qtbase-everywhere-src-6.3.1.tar.xz
> +# Hashes for license files:
> +sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSE.GPL2
> +sha256 8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903 LICENSE.GPL3
> +sha256 0dbe024961f6ab5c52689cbd036c977975d0d0f6a67ff97762d96cb819dd5652 LICENSE.GPL3-EXCEPT
> +sha256 88ec689407cf2df9b2eb5c45952564d51ce73c129a3bdffb15c0d2d161ad7558 LICENSE.LGPLv3
> +sha256 ed8742a95cb9db653a09b050e27ccff5e67ba69c14aa2c3137f2a4e1892f6c0d LICENSE.FDL
> +sha256 2a886915de4f296cdae5ed67064f86dba01d0c55286d86e8487f2a5caaf40216 src/3rdparty/harfbuzz-ng/COPYING
> diff --git a/package/qt6/qt6base/qt6base.mk b/package/qt6/qt6base/qt6base.mk
> index c67d94e193..439c644c30 100644
> --- a/package/qt6/qt6base/qt6base.mk
> +++ b/package/qt6/qt6base/qt6base.mk
> @@ -31,7 +31,27 @@ QT6BASE_CONF_OPTS = \
> -DFEATURE_system_doubleconversion=ON \
> -DFEATURE_system_pcre2=ON \
> -DFEATURE_system_zlib=ON \
> - -DFEATURE_system_libb2=ON
> + -DFEATURE_system_libb2=ON \
> + -DQT_BUILD_TESTS=OFF
> +
> +QT6BASE_CONF_OPTS += -DFEATURE_sse2=$(if $(BR2_X86_CPU_HAS_SSE2),ON,OFF)
> +QT6BASE_CONF_OPTS += -DFEATURE_sse3=$(if $(BR2_X86_CPU_HAS_SSE3),ON,OFF)
> +QT6BASE_CONF_OPTS += -DFEATURE_sse4_1=$(if $(BR2_X86_CPU_HAS_SSE4),ON,OFF)
> +QT6BASE_CONF_OPTS += -DFEATURE_sse4_2=$(if $(BR2_X86_CPU_HAS_SSE42),ON,OFF)
> +QT6BASE_CONF_OPTS += -DFEATURE_ssse3=$(if $(BR2_X86_CPU_HAS_SSSE3),ON,OFF)
> +QT6BASE_CONF_OPTS += -DFEATURE_avx=$(if $(BR2_X86_CPU_HAS_AVX),ON,OFF)
> +QT6BASE_CONF_OPTS += -DFEATURE_avx2=$(if $(BR2_X86_CPU_HAS_AVX2),ON,OFF)
> +# no buildroot BR2_X86_CPU_HAS_AVX512 option yet
> +QT6BASE_CONF_OPTS += \
> + -DFEATURE_avx512bw=OFF \
> + -DFEATURE_avx512cd=OFF \
> + -DFEATURE_avx512dq=OFF \
> + -DFEATURE_avx512er=OFF \
> + -DFEATURE_avx512f=OFF \
> + -DFEATURE_avx512ifma=OFF \
> + -DFEATURE_avx512pf=OFF \
> + -DFEATURE_avx512vbmi=OFF \
> + -DFEATURE_avx512vl=OFF
>
> define QT6BASE_BUILD_CMDS
> $(TARGET_MAKE_ENV) $(BR2_CMAKE) --build $(QT6BASE_BUILDDIR)
> @@ -65,7 +85,8 @@ HOST_QT6BASE_CONF_OPTS = \
> -DFEATURE_system_doubleconversion=ON \
> -DFEATURE_system_libb2=ON \
> -DFEATURE_system_pcre2=ON \
> - -DFEATURE_system_zlib=ON
> + -DFEATURE_system_zlib=ON \
> + -DQT_BUILD_TESTS=OFF
>
> define HOST_QT6BASE_BUILD_CMDS
> $(HOST_MAKE_ENV) $(BR2_CMAKE) --build $(HOST_QT6BASE_BUILDDIR)
> @@ -75,5 +96,309 @@ define HOST_QT6BASE_INSTALL_CMDS
> $(HOST_MAKE_ENV) $(BR2_CMAKE) --install $(HOST_QT6BASE_BUILDDIR)
> endef
>
> +ifeq ($(BR2_ENABLE_DEBUG),y)
> +QT6BASE_CONF_OPTS += -DCMAKE_BUILD_TYPE=Debug
> +else
> +QT6BASE_CONF_OPTS += -DCMAKE_BUILD_TYPE=Release
> +endif
> +
> +ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_libudev=ON
> +QT6BASE_DEPENDENCIES += udev
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_libudev=OFF
> +endif
> +
> +# Qt6 SQL Plugins
> +ifeq ($(BR2_PACKAGE_QT6BASE_SQL),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_sql=ON
> +QT6BASE_CONF_OPTS += -DFEATURE_sql_db2=OFF -DFEATURE_sql_ibase=OFF -DFEATURE_sql_oci=OFF -DFEATURE_sql_odbc=OFF
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_MYSQL),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_sql_mysql=ON
> +QT6BASE_DEPENDENCIES += mysql
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_sql_mysql=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_PSQL),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_sql_psql=ON
> +QT6BASE_DEPENDENCIES += postgresql
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_sql_psql=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_SQLITE_SYSTEM),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_sql_sqlite=ON -DFEATURE_system_sqlite=ON
> +QT6BASE_DEPENDENCIES += sqlite
> +else ifeq ($(BR2_PACKAGE_QT6BASE_SQLITE_QT),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_sql_sqlite=ON -DFEATURE_system_sqlite=OFF
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_sql_sqlite=OFF
> +endif
> +
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_sql=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_GUI),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_gui=ON -DFEATURE_freetype=ON
> +#QT6BASE_CONF_OPTS += -DFEATURE_opengles2=OFF -DFEATURE_opengles3=OFF -DFEATURE_opengles31=OFF -DFEATURE_opengles32=OFF -DFEATURE_gbm=OFF -DFEATURE_vnc=OFF -DFEATURE_sessionmanager=OFF
> +QT6BASE_DEPENDENCIES += freetype
> +QT6BASE_CONF_OPTS += -DFEATURE_vulkan=OFF
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_HARFBUZZ),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_harfbuzz=ON
> +ifeq ($(BR2_TOOLCHAIN_HAS_SYNC_4),y)
> +# system harfbuzz in case __sync for 4 bytes is supported
> +QT6BASE_CONF_OPTS += -DQT_USE_BUNDLED_BundledHarfbuzz=OFF
> +QT6BASE_DEPENDENCIES += harfbuzz
> +else #BR2_TOOLCHAIN_HAS_SYNC_4
> +# qt harfbuzz otherwise (using QAtomic instead)
> +QT6BASE_CONF_OPTS += -DQT_USE_BUNDLED_BundledHarfbuzz=ON
> +QT6BASE_LICENSE += , MIT (harfbuzz)
> +QT6BASE_LICENSE_FILES += src/3rdparty/harfbuzz-ng/COPYING
> +endif
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_harfbuzz=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_PNG),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_png=ON -DFEATURE_system_png=ON
> +QT6BASE_DEPENDENCIES += libpng
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_png=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_GIF),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_gif=ON
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_gif=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_JPEG),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_jpeg=ON
> +QT6BASE_DEPENDENCIES += jpeg
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_jpeg=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_CUPS), y)
> +QT6BASE_CONF_OPTS += -DFEATURE_cups=ON
> +QT6BASE_DEPENDENCIES += cups
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_cups=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBDRM),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_kms=ON
> +QT6BASE_DEPENDENCIES += libdrm
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_kms=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_FONTCONFIG),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_fontconfig=ON
> +QT6BASE_DEPENDENCIES += fontconfig
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_fontconfig=OFF
> +endif
> +
> +# Uses libgbm from mesa3d
> +ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_gbm=ON
> +QT6BASE_DEPENDENCIES += mesa3d
> +else ifeq ($(BR2_PACKAGE_GCNANO_BINARIES),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_gbm=ON
> +QT6BASE_DEPENDENCIES += gcnano-binaries
> +else ifeq ($(BR2_PACKAGE_TI_SGX_LIBGBM),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_gbm=ON
> +QT6BASE_DEPENDENCIES += ti-sgx-libgbm
> +else ifeq ($(BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_WL),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_gbm=ON
> +QT6BASE_DEPENDENCIES += imx-gpu-viv
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_gbm=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_EGLFS),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_eglfs=ON
> +QT6BASE_DEPENDENCIES += libegl
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_eglfs=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBINPUT),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_libinput=ON
> +QT6BASE_DEPENDENCIES += libinput
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_libinput=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_TSLIB),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_tslib=ON
> +QT6BASE_DEPENDENCIES += tslib
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_tslib=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_OPENGL_DESKTOP),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_opengl=ON -DFEATURE_opengl_desktop=ON
> +QT6BASE_DEPENDENCIES += libgl
> +else ifeq ($(BR2_PACKAGE_QT6BASE_OPENGL_ES2),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_opengl=ON -DFEATURE_opengles2=ON
> +QT6BASE_DEPENDENCIES += libgles
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_opengl=OFF -DINPUT_opengl=no
> +endif
> +
> +# only enable gtk support if libgtk3 X11 backend is enabled
> +ifeq ($(BR2_PACKAGE_LIBGTK3)$(BR2_PACKAGE_LIBGTK3_X11),yy)
> +QT6BASE_CONF_OPTS += -DFEATURE_gtk3=ON
> +QT6BASE_DEPENDENCIES += libgtk3
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_gtk3=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_WIDGETS),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_widgets=ON
> +ifeq ($(BR2_PACKAGE_QT6BASE_LINUXFB),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_linuxfb=ON
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_linuxfb=OFF
> +endif
> +ifeq ($(BR2_PACKAGE_QT6BASE_DIRECTFB),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_directfb=ON
> +QT6BASE_DEPENDENCIES += directfb
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_directfb=OFF
> +endif
> +ifeq ($(BR2_PACKAGE_QT6BASE_XCB),y)
> +QT6BASE_CONF_OPTS += \
> + -DFEATURE_xcb=ON \
> + -DFEATURE_xcb_xlib=ON \
> + -DFEATURE_xkbcommon=ON \
> + -DFEATURE_xkbcommon_x11=ON
> +QT6BASE_DEPENDENCIES += \
> + libxcb \
> + xcb-util-wm \
> + xcb-util-image \
> + xcb-util-keysyms \
> + xcb-util-renderutil \
> + xlib_libX11 \
> + libxkbcommon
> +QT6BASE_DEPENDENCIES += xlib_libXext
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_xcb=OFF
> +endif
> +else #BR2_PACKAGE_QT6BASE_WIDGETS
> +QT6BASE_CONF_OPTS += -DFEATURE_widgets=OFF
> +endif
> +
> +else #BR2_PACKAGE_QT6BASE_GUI
> +QT6BASE_CONF_OPTS += -DFEATURE_gui=OFF
> +endif
> +
> +QT6BASE_DEFAULT_QPA = $(call qstrip,$(BR2_PACKAGE_QT6BASE_DEFAULT_QPA))
> +QT6BASE_CONF_OPTS += $(if $(QT6BASE_DEFAULT_QPA),-DQT_QPA_DEFAULT_PLATFORM=$(QT6BASE_DEFAULT_QPA))
> +
> +ifeq ($(BR2_PACKAGE_OPENSSL),y)
> +QT6BASE_CONF_OPTS += -DINPUT_openssl=yes
> +QT6BASE_DEPENDENCIES += openssl
> +else
> +QT6BASE_CONF_OPTS += -DINPUT_openssl=no
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_DBUS),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_dbus=ON
> +QT6BASE_CONF_OPTS += -DINPUT_dbus=linked
> +QT6BASE_DEPENDENCIES += dbus
> +HOST_QT6BASE_CONF_OPTS += -DFEATURE_dbus=ON
> +HOST_QT6BASE_DEPENDENCIES += host-dbus
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_dbus=OFF
> +HOST_QT6BASE_CONF_OPTS += -DFEATURE_dbus=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_glib=ON
> +QT6BASE_DEPENDENCIES += libglib2
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_glib=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_ICU),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_icu=ON
> +QT6BASE_DEPENDENCIES += icu
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_icu=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_EXAMPLES),y)
> +QT6BASE_CONF_OPTS += -DQT_BUILD_EXAMPLES=ON
> +else
> +QT6BASE_CONF_OPTS += -DQT_BUILD_EXAMPLES=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_NETWORK),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_network=ON
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_network=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_CONCURRENT),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_concurrent=ON
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_concurrent=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_TEST),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_testlib=ON
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_testlib=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_XML),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_xml=ON
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_xml=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_SYSTEMD),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_journald=ON
> +QT6BASE_DEPENDENCIES += systemd
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_journald=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_ZSTD),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_zstd=ON
> +QT6BASE_DEPENDENCIES += zstd
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_zstd=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_QT6BASE_SYSLOG),y)
> +QT6BASE_CONF_OPTS += -DFEATURE_syslog=ON
> +else
> +QT6BASE_CONF_OPTS += -DFEATURE_syslog=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_IMX_GPU_VIV),y)
> +# use vivante backend
> +QT6BASE_EGLFS_DEVICE = EGLFS_DEVICE_INTEGRATION = eglfs_viv
> +else ifeq ($(BR2_PACKAGE_SUNXI_MALI_MAINLINE),y)
> +# use mali backend
> +QT6BASE_EGLFS_DEVICE = EGLFS_DEVICE_INTEGRATION = eglfs_mali
> +endif
> +
> +ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
> +# Qt 5.8 needs atomics, which on various architectures are in -latomic
> +QT6BASE_CONF_OPTS += -DCMAKE_SHARED_LINKER_FLAGS="-latomic"
> +endif
> +
> +# Must be last so can override all options set by Buildroot
> +QT6BASE_CONF_OPTS += $(call qstrip,$(BR2_PACKAGE_QT6BASE_CUSTOM_CONF_OPTS))
> +
> $(eval $(cmake-package))
> $(eval $(host-cmake-package))
> --
> 2.34.1
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2022-08-25 8:41 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-25 7:39 [Buildroot] [PATCH 1/1] package/qt6/qt6base: extend qt6 configuration Jesse Van Gavere
2022-08-25 8:41 ` Yann E. MORIN [this message]
2022-08-25 8:43 ` Thomas Petazzoni via buildroot
2022-08-25 8:52 ` Jesse Van Gavere
2022-08-25 12:15 ` Giulio Benetti
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220825084140.GC25468@scaer \
--to=yann.morin.1998@free.fr \
--cc=buildroot@buildroot.org \
--cc=jesseevg@gmail.com \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox