summaryrefslogtreecommitdiffstats
path: root/src/gui/configure.cmake
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* CMake: Fixup outdated configure.cmake filesAlexandru Croitor2020-11-101-8/+1
| | | | | | | | Some outdated changes don't get removed when using special case preservation, so remove them manually. Change-Id: Iba1481ab9a924c3031bd5ce394d5183a5393f146 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: enable egl_viv pluginsSamuli Piippo2020-10-051-0/+2
| | | | | | | | | Add needed define for egl_viv compile test and generate CMakeLists for the egl_viv plugins. Task-number: QTBUG-77809 Change-Id: I3b354faee36cbb85adcee895430eb5e8998108e1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake Build: Add direct2d CMake buildCristian Adam2020-09-301-1/+2
| | | | | | | | | Also fixed Direct 2D feature detection test for MinGW. Task-number: QTBUG-83932 Change-Id: I8c89aaa953d34de40fdf7b51e0859c791aeb38ef Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* xcb: add xcb-util dependency for xcb-imageLiang Qi2020-09-211-1/+7
| | | | | | | | | xcb-image includes xcb_aux.h, which is part of xcb-util. Fixes: QTBUG-86287 Pick-to: 5.15 Change-Id: I253308008c5baeb1d061ef19f516ae6ab6dff52c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Revert "Revert "CMake: Make the Vulkan dependency of QtGui optional""Joerg Bornemann2020-09-141-1/+1
| | | | | | | | | | This reverts commit f0873a1c62cb880b2586ebda0f40e69c930c1cec. The build failure caused by 58c1c6ee5c986d502b56eb1cc57f1d9444d42031 has been fixed. Change-Id: I5cec78b353089ca024e905795bc99cad423c2d4e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Revert "CMake: Make the Vulkan dependency of QtGui optional"Lars Knoll2020-09-131-1/+1
| | | | | | | | | | | | | The last 4 cmake changes broke configuring qtbase on at least Volkers and my machine (Ubuntu 20.04) Revert the changes, to unblock development of qtbase and other modules. This reverts commit 16aa8c8f4d83f2e2aaa04e6dd0e7c6dc7f854d9d. Change-Id: Id562bdac1915dba429ae4a0af6054d3e5e5e5d12 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* CMake: Make the Vulkan dependency of QtGui optionalJoerg Bornemann2020-09-121-1/+1
| | | | | | | | | | | | | | | Vulkan cannot be a required public dependency of QtGui, because a vulkan-enabled build of Qt will fail on a machine where the vulkan headers are not installed. We cannot make the vulkan dependency private, because we have public Qt headers that include vulkan headers. The vulkan dependency is now marked as optional, meaning consuming projects will try to find it, but there will be no error on failure. Task-number: QTBUG-86421 Change-Id: I30edfd3eaa603048f4274e77036c54d90789d3c9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Re-generate configure.cmake filesJoerg Bornemann2020-09-101-0/+7
| | | | | Change-Id: I9c325db8031e14cf2a2cfb49e5080e3043a0811a Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* xcb: drop Xinerama supportLiang Qi2020-09-041-6/+0
| | | | | | | | | | [ChangeLog][Important Behavior Changes][X11] Xinerama is no longer supported. Fixes: QTBUG-86082 Change-Id: Ieb57d9035e1659fc22bf8333247fc3573fb62992 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* Move QFileSystemModel into QtGuiVolker Hilsheimer2020-08-251-0/+7
| | | | | | | | | | | | | | This requires a QAbstractFileIconProvider in QtGui, as the standard QFileIconProvider depends on QStyle, and cannot be moved out of QtWidgets. QAbstractFileIconProvider returns strings for file types, but returns no icons yet. Support for a default icon set might be added in a follow-up commit. Change-Id: Ib9d095cd612fdcf04db62f2e40709fcffe3dc2b7 Fixes: QTBUG-66177 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Remove the deprecated -qpa-platform-guard argumentJoerg Bornemann2020-08-231-5/+0
| | | | | Change-Id: I0bde5552c8801660e2be57531d64b6d2b499bb32 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: pro2cmake: Specify library versions for 3rd party libs part 2Alexandru Croitor2020-08-101-9/+9
| | | | | | | | | | Embed package versions into the qt_find_package calls for various Linux specific packages. Task-number: QTBUG-82917 Change-Id: I5d1cb623f81932dfae4658b8a3a89eedb71ea3af Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: pro2cmake: Specify library versions for 3rd party librariesAlexandru Croitor2020-08-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | If certain 3rd party libraries have a version that's not suitable for Qt, the configure summary should say so, rather than use them and fail at build time. With the current situation, we have to duplicate the version information from the configure.json files in helper.py, by assigning the version number as an extra find_package variable. Rerunning configurejson2cmake then embeds this version info into the qt_find_package calls in configure.cmake. Some of the Find modules are rewritten to take the specified version into account when looking for the libraries. This involves moving around the code for creating a target, after calling find_package_handle_standard_args() so we know if a good enough version was found. Task-number: QTBUG-82917 Change-Id: I139748d8090e0630cda413362760034dc3483e11 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Create a Find module wrapper for OpenGLAlexandru Croitor2020-06-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Our .prl files embedded an absolute path to the OpenGL.tbd file. This obviously breaks their usage when used on another machine when no SDK exists. To fix that we need to use a "-framework OpenGL" linker flag instead of linking against the absolute path library. To convince CMake to do that, we have to create a wrapping OpenGL target which sets an appropriate INTERFACE_LINK_LIBRARIES property. So create a FindWrapOpenGL find module to do that on darwin platforms. Adjust helper.py and our build system to use it. This tangentially amends 38cd18384f6198c5bc3ea1da9ffc0158e960a778 because it recreates the FindWrapOpenGL module, but for a different purpose. Task-number: QTBUG-85240 Task-number: QTBUG-84781 Change-Id: I3498c19157ae31db5099e6edfb9d71490187f1d3 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Prospective fix for trying to build FontConfig on WindowsFriedemann Kleint2020-06-221-1/+1
| | | | | | | | | | Strawberry Perl has been found to ship a libfontconfig. Change the exclusion to win32. Fixes: QTBUG-85184 Change-Id: Ic953ba3226c275a204720ff83161fba138eae0cb Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Windows font databases: Enable DirectWrite for cmakeFriedemann Kleint2020-06-151-15/+68
| | | | | | | | | | | | | | | | - Remove the DirectWrite1,2 features. Windows 10 should have them, only MinGW is missing directwrite3. The feature directwrite now implies DirectWrite2. - Remove the custom defines. - Port over the configure tests from configure.json and add missing ones for DirectWrite(2), DirectWrite3 and Direct2D and Direct2D 1.1, fix the conditions and report them in the summary. Task-number: QTBUG-83255 Fixes: QTBUG-83931 Change-Id: I1fc68997adc715bd5c6d7ec457f58c46e1f81c6a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Make it possible to avoid loading comments from JPEG and PNG filesElvis Lee2020-06-111-0/+4
| | | | | | | | | | | | Skip reading JPEG and PNG comments information from the header to save the memory. This can now be configured through the feature system. Change-Id: I3744312f69aa3201d5188776cbd99fe690b75d32 Task-number: QTBUG-83123 Pick-to: 5.15 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Remove winrtOliver Wolff2020-06-061-3/+3
| | | | | | | | | Macros and the await helper function from qfunctions_winrt(_p).h are needed in other Qt modules which use UWP APIs on desktop windows. Task-number: QTBUG-84434 Change-Id: Ice09c11436ad151c17bdccd2c7defadd08c13925 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* CMake: Update src\gui\configure.json and the conversion scriptLaszlo Agocs2020-05-291-20/+13
| | | | | | | | | The ANGLE removal's manual configure.cmake changes are now replaced by updating the conversion script's special cases instead. Change-Id: I06317fe0202b25bd9f9524da14e1bb0ccbb30cc1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove ANGLELaszlo Agocs2020-05-261-86/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This marks the end of EGL and OpenGL ES support on Windows. The concepts of -opengl dynamic, -opengl desktop, QT_OPENGL=software, etc. remain unchanged, with the exception of the disapperance of everything ANGLE related. CMake builds now work identically to qmake on Windows: they default to 'dynamic' OpenGL on Windows, unless -DINPUT_opengl=desktop is specified. On Windows, Qt 6 is expected to default to the "dynamic" OpenGL model by default, just like Qt 5.15. This can be changed by switching to "desktop" OpenGL, which will link to opengl32 (publicly, so other libs and applications will do so as well) and disallows using another OpenGL DLL. The "dynamic" mode is essential still because the fallback to a software rasterizer, such as the opengl32sw.dll we ship with the Qt packages, has to to work exactly like in Qt 5, the removal of ANGLE does not change this concept in any way (except of course that the middle option of using ANGLE is now gone) When it comes to the windows plugin's OpenGL blacklist feature, it works like before and accepts the ANGLE/D3D related keywords. They will then be ignored. Similarly, requesting QT_OPENGL=angle is ignored (but will show a warning). The D3D11 and DXGI configure time tests are removed: Qt 5.14 already depends on D3D 11.1 and DXGI 1.3 headers being available unconditionally on Win32 (in QRhi's D3D11 backend). No need to test for these. [ChangeLog][Windows] ANGLE is no longer included with Qt. Dynamic OpenGL builds work like before but ANGLE is no longer an option. OpenGL proper or an alternative opengl32 implementation are the two remaining options now. Attempting to set QT_OPENGL=angle or Qt::AA_UseOpenGLES will have no effect on Windows. Fixes: QTBUG-79103 Change-Id: Ia404e0d07f3fe191b27434d863c81180112ecb3b Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* CMake: Generate information about 3rdparty libs in module .pri filesJoerg Bornemann2020-05-191-38/+61
| | | | | | | | | | | | | For modules that are not yet ported to CMake and that use QMAKE_USE += libfoo we need to provide the information about libfoo in the qt_lib_XXX.pri files. Also, we now generate qt_ext_XXX.pri files for bundled 3rdparty libs. Task-number: QTBUG-75666 Change-Id: I9e4b057a197554ecb37c294c0bf09e2a2b3aa053 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Get rid of QT_OPENGL_ES*Eskil Abrahamsen Blomfeldt2020-04-171-6/+0
| | | | | | | | | | | The QT_OPENGL_ES* macros are leftovers from an earlier, ad hoc configuration system, which has since been replaced by QT_CONFIG. To clean things up in Qt 6, we use the new way instead. Task-number: QTBUG-83467 Change-Id: I578dc7695bff9d5ee303b22e44f60fee22fe0c28 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* CMake: Regenerate configure.cmake filesAlexandru Croitor2020-04-021-11/+11
| | | | | | | | | Fixes syntax warning for c++ filesystem check. Amends 907652e1ed3c95e3fdb1620cec4d5a1034153398 Change-Id: Ieafee3610b3eea0e6c13df4d78f21ab333f3d3c0 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Move undo framework out of Qt WidgetsMitch Curtis2020-03-301-0/+20
| | | | | | | | | | | | | | | - Moves QUndo* classes (except QUndoView) from src/widgets/utils to src/gui/utils - Moves related auto tests from widgets to gui - Replaces QUndoAction with lambdas that do text prefixing [ChangeLog][Undo Framework] QUndo* classes (except QUndoView) were moved from Qt Widgets to Qt GUI. Done-with: volker.hilsheimer@qt.io Fixes: QTBUG-40040 Change-Id: I3bd8d4d32c64f8dee548f62159a1df2126da89d8 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* CMake: Fix configuration of FEATURE_JPEGLeander Beernaert2020-03-251-1/+1
| | | | | | | | Without this patch JPEG support is always disabled, even though we can build it from 3rdparty sources. Change-Id: I9e619f0ca8ec3ca3e7c58981bb6af9b33426a029 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Re-generate various CMake projects and configure after mergeSimon Hausmann2020-03-161-1/+1
| | | | | Change-Id: I02f5926c6664aab518c5c81e0c33dca0818a1871 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>