summaryrefslogtreecommitdiffstats
path: root/src/gui/configure.cmake
Commit message (Collapse)AuthorAgeFilesLines
* Fix test compilation issues with QtLite configurationJari Helaakoski5 days1-1/+1
| | | | | | | | | | Now developer build tests compile, but some are not working. Functional fix will come later via separate tasks. Task-number: QTBUG-122999 Change-Id: I70487b46c1b32ba4279cb02a4978e4f55ac0d310 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add preliminary support for Qt for visionOSTor Arne Vestbø2024-04-181-2/+3
| | | | | | | | | | | | | | | | | | | | | | Qt already runs on Vision Pro as "Designed for iPad", using Qt for iOS. This change enables building Qt for visionOS directly, which opens the door to visionOS specific APIs and use-cases such as volumes and immersive spaces. The platform removes some APIs we depend on, notably UIScreen, so some code paths have been disabled or mocked to get something up and running. As our current window management approach on UIKit platforms depends on UIWindow and UIScreen there is currently no way to bring up QWindows. This will improve once we refactor our window management to use window scenes. To configure for visionOS, pass -platform macx-visionos-clang, and optionally add -sdk xrsimulator to build for the simulator. Change-Id: I4eda55fc3fd06e12d30a188928487cf68940ee07 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* Add configure feature for MetalTor Arne Vestbø2024-03-191-0/+5
| | | | | | | Simplifies maintenance of code paths that rely on Metal. Change-Id: I1d1f705fffc14dbafde346eeb555b43be6d5be54 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QTextMarkdownWriter: escape special characters (line or word prefix)Shawn Rutledge2024-03-041-0/+1
| | | | | | | | | | | | | | | | | | Try to avoid writing anything that the parser would misinterpret. Escape pre-existing backslashes, but not those that are already escaped. Optimize maybeEscapeFirstChar() slightly and apply it to every line of output (except in code blocks), not only to new lines created by word-wrapping. Since it would be hard to do this without using regular expressions, the markdown writer feature now depends on the regex feature. Fixes: QTBUG-96051 Fixes: QTBUG-122083 Pick-to: 6.7 Change-Id: I8d95366501fd31441829081c668f11a3a3a23fe2 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Implement missing features in DirectWrite font backendEskil Abrahamsen Blomfeldt2024-02-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The DirectWrite font backend is an optional backend which is planned to take over as the default on Windows. In order to do this, though, a few gaps need to be filled in order for it to pass all autotests. The following things are covered by this: 1. Bitmap fonts are unsupported in DirectWrite. We enumerate these using GDI and fall back to the GDI font engine when loading them. As part of this, we introduce a new handle type for fonts on Windows which can represent both the DirectWrite and GDI engines. 2. "Legacy font names" where sub-family is embedded in the family name is now enumerated together with the typographic font name. 3. The DirectWrite font engine was not loading kerning pairs from the font, like the other engines (omission which was detected by the test) 4. Turning off antialiasing does not work with DirectWrite, so we fall back to GDI for this. 5. Loading supported writing systems from application fonts was not supported. Task-number: QTBUG-119420 Change-Id: Icf6c351afb0d7487b2f4634199088d701a324aae Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Clarify that the textmarkdownwriter feature includes GitHub featuresShawn Rutledge2024-01-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Markdown support in Qt has always been symmetrically including all the features to the best of our ability: we can write all the same features as we can read (including github extensions like tables and checkboxes), except that we standardize the output (so it's not always identical to what was read: headings always have hashes, not setext-style; code fences and thematic breaks are regenerated, so we don't keep the same style as the original; and so on), and we probably still have a few bugs. And in fact QTextMarkdownWriter does not (yet) have logic to restrict itself to CommonMark, even if it's requested by means of the QTextDocument::MarkdownFeatures ctor argument. (Of course if QTextMarkdownImporter reads a document with CommonMark-only restriction applied, and then you rewrite the document with QTextMarkdownWriter, presumably you would not have any GitHub features in the output.) So the existing output from configure -list-features was misleading: texthtmlparser ........... Kernel: Provides a parser for HTML. textmarkdownreader ....... Kernel: Provides a Markdown (CommonMark and GitHub) reader textmarkdownwriter ....... Kernel: Provides a Markdown (CommonMark) writer textodfwriter ............ Kernel: Provides an ODF writer. Amends e4079eca49adce16e31dac2a18d49d7a55817891 Pick-to: 6.7 Change-Id: Ic2d9664388bbf17cef41ca0eaad600485a1bb7ec Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Disable raster_fp for VxWorksMarcin Zdunek2024-01-231-0/+1
| | | | | | | | | raster_fp is turned off, as it produces a crash. Is may be a miscompilation issue, but we are not 100% sure of the origin. Task-number: QTBUG-115777 Change-Id: Icf2b31b73afba3505a1d4c8c5194bfa2b85325ed Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Show frame capture in configure summaryLaszlo Agocs2024-01-221-1/+2
| | | | | | | | | | | Have to watch the RenderDoc test otherwise in the CMake output (e.g. on Windows), making it quite hard to spot if QGraphicsFrameCapture is going to be available or not. Change-Id: I147378a7d1e5725239472ef83814eebb1358878a Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Introduce a configure feature for WaylandDavid Redondo2023-12-071-1/+7
| | | | | | | | Using the presence of the wayland-client lib as a condition. Fixes: QTBUG-117386 Change-Id: If4336965ea06e3f4b06e9af661efdec38ba46136 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* eglfs: extend configure test for egldeviceSamuli Piippo2023-10-171-0/+1
| | | | | | | | | | Amend 1aba24a2ed4b75551a900772320d5a0dc1960043 and add check for the EGL_DRM_MASTER_FD_EXT now used as older egl headers might not have it. Pick-to: 6.6 6.5 Change-Id: I98b860d05396c24b8eb0e73172ac395c89da8628 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Alex Bu <alex.bu@qt.io>
* cmake: remove xcb dependency for accessibility-atspi-bridge featureLiang Qi2023-10-061-1/+1
| | | | | | | | | | | Qt a11y(ATSPI) support only depends on DBus and ATSPI, it should also work fine on Wayland when xcb was disabled. Task-number: QTBUG-117535 Pick-to: 6.6 6.5 Change-Id: Ibd7ebb32b94de1888920f0fe2b85ae3bd4d2c77a Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Static build fix for RenderDoc dependencyHatem ElKharashy2023-07-131-1/+1
| | | | | | | | Modify configure.cmake to avoid breaking static builds while using RenderDoc with QGraphicsFrameCapture. Change-Id: Id0f39304b20ab3a98bfb0206cf5b52031d38f0ab Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add a private API to capture a graphics frameHatem ElKharashy2023-07-111-0/+21
| | | | | | | | | | | | | This commit provides a minimal API for capturing a graphics frame, save it and replay it later for debugging. The intention here is to provide the basic need for future work to allow capturing through tooling or programmatically from code. This API is intended to be cross-platform by using Metal Capture Manager on Apple devices and RenderDoc C++ API everywhere else. Task-number: QTBUG-114067 Change-Id: If72d92bdef5e5985a0ec2e85e97fd1182da3c53c Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
* Rid of 'special case' markersAlexey Edelev2023-04-131-15/+11
| | | | | | | | | | | It's unlikely we will ever use pro2cmake at this project stage, so it doesn't make any sense to keep the 'special case' markers in the CMake scripts. Remove them and replace with TODO where needed. Change-Id: I84290c20679dabbfdec3c5937ce0428fecb3e5a7 Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix build with -no-feature-eglTasuku Suzuki2023-02-201-1/+1
| | | | | | | | | | qtbase/src/plugins/platforms/xcb/gl_integrations/xcb_egl/qxcbeglinclude.h:12:10: fatal error: QtGui/private/qt_egl_p.h: No such file or directory 12 | #include <QtGui/private/qt_egl_p.h> Pick-to: 6.5 Change-Id: Ie243fc05e165524afebb10ec979b5f72de8681ce Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Remove the Unnecessary Warning Regarding AAT and System HarfBuzzAmir Masoud Abdol2022-10-311-5/+0
| | | | | | | | | | I think we can remove the WARNING regarding AAT which was probably there to avoid using older version. As far as I can tell, AAT is supported from 2.0, and quite stable by now. Task-number: QTBUG-107044 Change-Id: I8e6ba3f51b85e2859dd46435eee1220da46831d2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* fix fontconfig detectionEric Lemanissier2022-10-061-1/+1
| | | | | | | | | the "official" variable name is Fontconfig_FOUND cf https://cmake.org/cmake/help/latest/module/FindFontconfig.html Pick-to: 6.4 6.3 6.2 Change-Id: I40ec178a18baabe47d8d66845ff03add9efc0e51 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* xcb: use libxcb-cursor to replace Xlib/libXcursorLiang Qi2022-09-061-0/+5
| | | | | | | | | [ChangeLog][Linux/XCB] Used libxcb-cursor to replace Xlib/libXcursor Fixes: QTBUG-67373 Change-Id: I04a30e401467e48b431a5cc63984f7b70a09faf0 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Liang Qi <liang.qi@qt.io>
* CMake: don't use full paths for X11 SM and ICE libsSamuli Piippo2022-08-241-1/+1
| | | | | | | | | Full paths were recorded into INTERFACE_LINK_LIBRARIES which could point to temporary build directories. Pick-to: 6.4 6.3 6.2 Change-Id: I883fd8f652e4d9ecd7d8e0076d62f5c7f4e14ec9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Change the license of all CMakeLists.txt and *.cmake files to BSDLucie Gérard2022-08-231-1/+1
| | | | | | | Task-number: QTBUG-105718 Change-Id: I5d3ef70a31235868b9be6cb479b7621bf2a8ba39 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Add license headers to cmake filesLucie Gérard2022-08-031-0/+3
| | | | | | | | | | | | CMakeLists.txt and .cmake files of significant size (more than 2 lines according to our check in tst_license.pl) now have the copyright and license header. Existing copyright statements remain intact Task-number: QTBUG-88621 Change-Id: I3b98cdc55ead806ec81ce09af9271f9b95af97fa Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Make EGL use Qt X connection without xcb_xlib with EGL_EXT_platform_xcbIlya Fedin2022-07-051-1/+1
| | | | | | | | This allows to create EGL context without involving Xlib. This extension was created a year ago and is present in Mesa since 21.0 Change-Id: I7cb0aece1e67b4db59d453cbcfbd317bb5d9c777 Reviewed-by: Liang Qi <liang.qi@qt.io>
* CMake: Don't require system freetypeAlexandru Croitor2022-05-101-1/+0
| | | | | | | | | | | | | | | | We provide a bundled version. We didn't before when the commit was initially introduced, because we thought we'd depend on a 3rd party package manager, but we didn't follow through on that. Amends 5668522413c831d6f1c607e1c87a0b1e1ee3cbc5 Pick-to: 6.2 6.3 Fixes: QTBUG-103245 Change-Id: Ia4cb1340bbf3f4ffb3849d658d72e7cb6c7e2fb0 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* CMake: Fix error message for failing OpenGL testsJoerg Bornemann2022-04-131-1/+1
| | | | | | | | | We still mentioned the QMAKE_* variables. Replace them with the OpenGL_DIR CMake variable. Pick-to: 6.2 6.3 Change-Id: If53c2bff030cf03cb43d10f738949f59ac8dd730 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* Reorganize work with graphical libraries on INTEGRITYTatiana Borisova2022-04-051-4/+20
| | | | | | | | | | | | - Currently we manually unpack all platform libraries, that are required for GUI apps, and pack it into single eglmegapack.a library. It could be better do not execute such additional step, but have possibility to add required graphical libs to cmake interface lib via toolchain file list variable. Pick-to: 6.2 6.3 Change-Id: Ic4122600f02e6828d528ee4f00075f8c27f42e38 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake uses Desktop tslib for INTEGRITY configuration by mistakeTatiana Borisova2022-03-311-1/+1
| | | | | | | | | IGY doesn't provide tslib backend. QT_FEATURE_tslib should be OFF. Task-number: QTBUG-102121 Pick-to: 6.2 6.3 Change-Id: Id6417b92864312f6437c773a472aff8517b6e5dc Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* eglfs: QNX uses own QPA plugin and not eglfsPasi Petäjäjärvi2022-03-071-1/+1
| | | | | | | | | | | | | | | | Remove compilation workarounds to get rid of warnings as those QPA plugins are not supported by QNX. warning: cast from 'void*' to 'EGLNativeDisplayType' {aka 'int'} loses precision [-fpermissive] warning: invalid conversion from 'EGLNativeDisplayType' {aka 'int'} to 'void*' [-fpermissive] Pick-to: 6.2 6.3 Task-number: QTBUG-101382 Change-Id: I515708a8869498eb91df4fcba85a7b751d13a25c Reviewed-by: Rafael Roquetto <rafael.roquetto@qt.io> Reviewed-by: James McDonnell <jmcdonnell@blackberry.com>
* Install 3rdparty headers for static buildsMichal Klocek2022-02-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | For static builds we need 3rdparty headers to be installed. Leaf modules like qtwebengine needs 3rdparty libs and header for zlib, freetype, harfbuzz, png, jpeg. Without those the Chromium bundled versions are used, however it might end up badly if qt has already bundled one. Introduce new header only modules with additional arguments for qt_internal_add_module: * EXTERNAL_HEADERS to pick exactly which headers are public * EXTERNAL_HEADERS_DIR to include whole directory preserving the files directory structure Fix qtsync so it keep directory structure for all non-qt modules when syncing headers and do not generate warnings for headers files. Task-number: QTBUG-87154 Task-number: QTBUG-88614 Change-Id: If1c27bf8608791cd4e0a21839d6316a445a96e9f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Core: Remove 'properties' featureKai Köhne2022-02-141-1/+0
| | | | | | | | | | | | | Even QtCore alone cannot be built without the properties feature since Qt 5.5. While fixing this is easy, other modules like dbus, networking are also using QObject::property() and friends liberally. All in all I doubt that anybody will miss the feature (otherwise it would have been fixed in the last decade). Change-Id: Iaf3cc20bda54ee2ff3b809fac8fa82b94ecc88c0 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* CMake: add support for GNU/HurdPino Toscano2022-01-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Add a "HURD" CMake platform specification, so it can be properly checked in the build system. Set QT_DEFAULT_MKSPEC to the existing hurd-g++ mkspec. Hurd supports $ORIGIN in RPATH, so enable it. Hurd uses X11, so add it to the X11_SUPPORTED list. Enable few more feature checks that apply to Hurd as well: either because they are provided by GNU libc itself, or because they are implemented on Hurd. Check and set the ELF interpreter, as it is a common functionality of the GNU toolchain. Change-Id: Id347033560bbc5a2a4e2c3abb493c948c002b40e Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Enable -bundled-xcb-xinput by defaultPovilas Kanapickas2021-11-181-0/+1
| | | | | | | | | | | | | | | | | | | | This is done by disabling system-xcb-xinput feature by default. It will require user to pass -no-bundled-xcb-xinput to the configure script to override this. The reason for the change is that touchpad gesture implementation requires new code from libxcb, yet this new code is not even released yet. Even if it was released today, at least several years will pass until the new version is common enough. [ChangeLog][Third-Party Code][X11] The xcb plugin is now compiled with the bundled xcb-xinput library by default, in order to enable support for touchpad gestures. Change-Id: Iebb27ecee7facf070ef23f37a55aab0578698f16 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* gui: Fix typo in CMake featureJonas Kvinge2021-10-121-1/+1
| | | | | | Pick-to: 6.2 Change-Id: Icf81eac4d12fb61bcec2ca92d118ce88f970522e Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Remove hack fix from vulkan qnx buildingDan Ackers2021-09-291-1/+0
| | | | | | | Pick-to: 6.2 Task-number: QTQAINFRA-4502 Change-Id: I3ca6cb79f60e18f64323d30e44ea1660efdc54bb Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Cater for upstream changes in eglplatform.hLaszlo Agocs2021-09-211-0/+1
| | | | | | | | | | | | | EGL_NO_X11 has been replaced with USE_X11, thus breaking all existing code out there, including Qt: https://github.com/KhronosGroup/EGL-Registry/pull/130 Fix this by defining USE_X11 whenever we do not define EGL_NO_X11. Fixes: QTBUG-96392 Pick-to: 6.2 Change-Id: If8b68caa8c9022477d87169ca2e2a0121a9313e0 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* High resolution wheel-event support from libinputAllan Sandfeld Jensen2021-09-181-0/+22
| | | | | | | | | | | | Is necessary because the support was added using a new event and a new getter. [ChangeLog][QtGui][libinput] Can now use the hires scrolling API from libinput 1.19, adding this feature to QPAs using libinput directly Task-number: QTBUG-96227 Change-Id: Ie30281de2f6391389e9e6049bc4117d3a8f63ad1 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Add native interface for X11 application, exposing display and connectionTor Arne Vestbø2021-08-061-1/+1
| | | | | | | | | | | | | | | | | | | | | The major use-case of the now private QX11Info from Qt X11 Extras was getting hold of the Xlib display and XCB connection, for example in KDE: https://lxr.kde.org/search?%21v=kf5-qt5&_filestring=&_string=QX11Info A new native interface for QGuiApplication has now been added that exposes these two properties, e.g.: if (auto *x11App = app.nativeInterface<QX11Application>()) qDebug() << x11App->display() << x11App->connection(); To avoid type clashes one of the enum values of QXcbNativeInterface's ResourceType had to be renamed. Pick-to: 6.2 Task-number: QTBUG-93633 Change-Id: I2e366a2bb88bd3965ac6172ad000ae32209f43e7 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* configure: Add summary for xcb-sm (X11 Session Management)Friedemann Kleint2021-07-061-0/+1
| | | | | | | Pick-to: 6.2 6.1 Task-number: QTBUG-95004 Change-Id: Idf1d47558427b35a7a325379884672553c99edc6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Fix Vulkan to be found when targeting AndroidAlexandru Croitor2021-07-011-2/+3
| | | | | | | | | | | | | | | | | | | | | | | Introduce two new packages WrapVulkanHeaders and WrapVulkan similar to the OpenSSL wrapper packages. WrapVulkanHeaders uses FindVulkan and is marked as found if Vulkan headers are found (that's the only part the Qt build requires). The WrapVulkan package is currently not used, but is there for symmetry. The Vulkan feature is now disabled by default on QNX, because the QNX toolchain file in the CI does not set CMAKE_FIND_ROOT_PATH_MODE-like variables and CMake ends up finding host Vulkan headers causing the build to break. Pick-to: 6.2 Fixes: QTBUG-92157 Change-Id: I05309821f866456cd42e7f85bf8b76ba099df656 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix support for using system supplied md4c libraryNiclas Rosenvik2021-06-031-1/+2
| | | | | | | | | | | | | | | | | | | Add FindWrapSystemMd4c.cmake so that the old md4c target can be used as well as the new one and set WrapSystemMd4c_FOUND. Link to the imported target WrapSystemMd4c::WrapSystemMd4c if the system library is used. Add qt_find_package line to find the package in configure.cmake. Fix the condition for enabling system-textmarkdownreader, it includes testing for textmarkdownreader because even if the code would compile correctly without it, it looks strange when the output says "textmarkdownreader no" and under "using system libmd4c yes" even if libmd4c is not used. Use system include when system-markdownreader is enabled. Add library mapping for libmd4c. Change-Id: Id5d5b13d6691a8c1cdf627238887977c847c1e67 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Introduce float QImage formats and renderingAllan Sandfeld Jensen2021-05-261-0/+5
| | | | | | | | | Useful for some HDR representations and HDR rendering. Change-Id: If6e8a661faa3d2afdf17b6ed4d8ff5c5b2aeb30e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix build without features.libraryTasuku Suzuki2021-05-191-1/+1
| | | | | | Change-Id: I53eaaea149324d2495e794ba8bd58544e648e48e Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add Solaris support in cmake buildNiclas Rosenvik2021-04-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add SOLARIS cmake platform definition. Add settings for QT_DEFAULT_MKSPEC so that qplatformdefs.h can be found. Solaris has its gssapi symbols in libgss. Solaris supports @ORIGIN. Solaris ld does not support --dynamic-list needed for reduce relocations. Make solaris fail the reduce relocation test. getauxval is specific to GNU libc and some other libc implementations on Linux but sys/auxv.h is not. The bootstrap uses sys/aux.h as the only indication for getauxval. This breaks builds on Solaris, so only make sys/auxv.h an indicator for getauxval on linux or glibc based systems. Solaris uses X11 so add it to the X11_SUPPORTED list. Solaris network libraries for sockets etc are in socket and nsl. ifreq does not have a member ifr_ifindex on Solaris, it uses ifr_index. Add test to check if ifr_index is a member of ifreq. The first struct in the in_addr union on solaris is defined as four uint8_t, therefore four arguments are needed for its initializer list. Change-Id: Ieed4c1bbac8559a7ae1db9c4e1e91f609f150270 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove xcb-native-painting setting from the configure summaryEirik Aavitsland2021-04-201-1/+0
| | | | | | | | No need to spam the summary with this unsupported feature. Pick-to: 6.1 Change-Id: Ie644a7077762d818fd62a22a8b6d3db025f92c81 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix GLX on non-linux X11 systemsNiclas Rosenvik2021-04-111-1/+1
| | | | | | | | | | | | | Some parts of the GLX code is only enabled for Linux. This makes builds on other X11 supported platforms break when GLX is found. To fix this enable these parts of the code when Qt feature xcb-glx-plugin is enabled. xcb-glx-plugin has to be made public in order for QT_CONFIG(xcb_glx_plugin) to work correctly in these parts of the code. Change-Id: I6bf78b6a64787ed88c8e2fae40675244c9198c37 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Liang Qi <liang.qi@qt.io>
* wasm: add cmake build supportLorn Potter2021-04-011-0/+9
| | | | | | | | | | | | | | | | A few configure defines get changed: QMAKE_WASM_PTHREAD_POOL_SIZE is now QT_WASM_PTHREAD_POOL_SIZE QMAKE_WASM_TOTAL_MEMORY is now QT_WASM_INITIAL_MEMORY QMAKE_WASM_SOURCE_MAP_BASE is now QT_WASM_SOURCE_MAP_BASE device-option EMSCRIPTEN_ASYNCIFY=1 is QT_EMSCRIPTEN_ASYNCIFY=1 To create source maps for debugging. use device-option QT_WASM_SOURCE_MAP=1 Task-number: QTBUG-78647 Change-Id: If9f30cd7fb408c386d6d69b5f7b1beecf1ab44b5 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Enable X11 on other platforms than just LinuxNiclas Rosenvik2021-03-161-21/+21
| | | | | | | | | | | Set CMake variable X11_SUPPORTED for all systems that have X11. Adjust _adjust_library_map() in util/cmake/helper.py to apply X11_SUPPORTED condition around X11 related packages instead of just LINUX. Adjust configure.cmake in src/gui based on this change. Why, because X11 is not just Linux. Change-Id: Ic3c04eaa55301d1237c7e74281eccd4f8e27e9ce Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Use newlines more consistently in generate compile-test codeEdward Welbourne2021-02-151-24/+14
| | | | | | | | | | | The generated code contained many repeated blank lines. Most main()s were preceded by one, but not all. Only include blank lines for actual empty entries in lists, where configure.json specified them, plus one before main if anything else precedes it. Change-Id: I6e6c34940e08712a1aa848a3c9ad1b0fb5806d77 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Simplify test-snippets in configure.cmakeEdward Welbourne2021-02-151-32/+16
| | | | | | | | | The main(void) signature obviates the need for unused parameters and has existed since (at least) C89; so use that instead of the old-fashioned argc/argv arguments we don't use in any of these tests. Change-Id: Ibfe850a1fce378673c9781011475ea623fd75ad4 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Long live VK_KHR_display platform plugin!Laszlo Agocs2021-02-081-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Experiment with this once again, this time in a more forward looking manner: move the code previously placed into eglfs's eglfs_viv backend into its own plugin. Move our attention to devices like the Raspberry Pi 4, where VK_KHR_display has recently been introduced to the Mesa v3dv backend. This is not in Mesa 20.3.3, the latest release at the time of writing, but is available and functional when building master. This serves as the reference system for testing the plugin, because it looks like a fairly robust implementation. The sole thing the plugin enables at the moment is creating a QVulkanInstance and a QWindow with surfaceType VulkanSurface. This is sufficient to run plain QWindow+QRhi (with QRhi::Vulkan), Qt Quick, and Qt Quick 3D (with QSG_RHI_BACKEND=vulkan) applications. One display and mode is chosen, by default the first in the enumeration lists reported by the Vulkan extension. This can be overridden with QT_VK_DISPLAY_INDEX and QT_VK_MODE_INDEX (modeled after QT_VK_PHYSICAL_DEVICE_INDEX). The indices can be determined based on the logs printed to the debug output. Changing the mode seems to be working nicely with v3dv. Multiple screen setups, where there would be more than one VkDisplayKHR enumerated, have not been tested yet. Regardless, multiple screens (reporting more than one QScreen, with a different QWindow on each, eglfs style) are not currently supported. This may be improved later (while keeping in mind that VK_KHR_display does not have a fully-featured output management API). Multiple (non-fullscreen) windows and especially raster windows (QWidget) are not and will not be supported. Our single QWindow is always forced to fullscreen. When it comes to input, the level of support should match linuxfb and eglfs. Note that while mouse input is fully functional, there is no mouse cursor. (and this is unlikely to be implemented) [ChangeLog][Platform Specific Changes][Embedded Linux] Introduced a vkkhrdisplay platform plugin to run Vulkan-based applications in fullscreen, without a windowing system, on systems where VK_KHR_display and VK_KHR_display_swapchain are supported by the Vulkan implementation. Change-Id: I6388416f7fb2bfdc4b412a0a4971f25cc05d4668 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Revert "xcb: add xcb-util dependency for xcb-image"Liang Qi2020-11-301-7/+1
| | | | | | | | | | | | | | | This reverts commit 39b1dea2ec5cde9523df61c78dec5d4b195f66d2. 39b1dea2 is wrong, the bug is for static build of qt with static xcb. It adds the explicit dependency of xcb-util 0.3.9, which is not available on Debian yet. Task-number: QTBUG-86287 Fixes: QTBUG-88688 Pick-to: 5.15 6.0 Change-Id: Iffc821f49bdfcad3f2556951d3677c35a7682266 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>