summaryrefslogtreecommitdiffstats
path: root/src/gui/configure.cmake
Commit message (Collapse)AuthorAgeFilesLines
* Regenerate all configure.json filesLeander Beernaert2019-10-211-24/+69
| | | | | Change-Id: Iabd2430adc4877859dc73f4092927a69decf0311 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Regenerate qtbase after wip/qt6 -> wip/cmake mergeAlexandru Croitor2019-10-141-18/+18
| | | | | | | | | | | | | | | Note that android builds will be broken after this merge and regeneration, because we don't currently handle the minimum required changes that were brought in with the Android multi ABI support that comes from 5.14. This will have to be addressed in a separate change. For now the build on Android will fail while compiling due to incorrect generation of LIB_SUFFIX with QT_ARCH. Change-Id: Ia4a871f4b7ddd0da11caf5f34e10a599a97bb55d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Qt CMake Build Bot
* Add CMake support for directfb plug-inJean-Michaël Celerier2019-09-301-1/+2
| | | | | | Change-Id: I126545e1da54018ce081b42a29e62ca30ee04d64 Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix Harfbuzz detectionSimon Hausmann2019-08-301-1/+1
| | | | | | | | | | | | We use qt_find_package(harfbuzz PROVIDED_TARGETS harfbuzz::harfbuzz) which would set harfbuzz_FOUND. Since variable names are case-sensitive, this is also the name we must check for in the qt feature condition. Change-Id: I43420489c3310bc9c3e5cc798a005c8d5b0ab646 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Merge branch 'wip/qt6' into wip/cmakeAlexandru Croitor2019-08-151-0/+1
| | | | Change-Id: I50ac36b8803c296998149e98cc61e38687cdd14b
* Fix mapping of features to private featuresSimon Hausmann2019-07-221-2/+1
| | | | | | | | | | | | | | | | | | | | When a feature generates a private feature, we should not just repeat the condition but also make it depend on the original feature. In qmake features had different outputs, while we have a 1:1 mapping. For example the developer_build feature had "private_tests" as an output feature. There's no condition attached to the feature and auto-detect is off, so we'd generate qt_feature("developer_build" AUTODETECT OFF) qt_feature("private_tests" AUTODETECT OFF) and that's wrong, because when the user enables the visible feature (developer_build) we want it to propagate to the private_tests feature. Change-Id: Id8408864802fa1e1ed9e67a5f47d1d2fde38d321 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Merge remote-tracking branch 'origin/wip/qt6' into wip/cmakeAlexandru Croitor2019-07-111-1/+5
| | | | Change-Id: I715b1d743d5f11560e7b3fbeb8fd64a5e5ddb277
* Fix XCB feature detectionSimon Hausmann2019-06-261-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The xcb feature controls whether to build the xcb platform plugin. The feature depends among other things on qt_find_package(XCB 1.9 PROVIDED_TARGETS XCB::XCB) to succeed. This means at the moment setting XCB_FOUND to true, that's what the condition checks. Later on, in configure.cmake, we also check for other components in the XCB package, for example: qt_find_package(XCB COMPONENTS XINPUT PROVIDED_TARGETS XCB::XINPUT) If this component is not available, the xcb platform plugin has perhaps reduce functionality, but it should be built and the feature should be abled. However it isn't, because when that find_package call fails, XCB_FOUND will be set to false. And that in turn will disable the feature as the condition fails. Therefore this patch changes the condition to check for the presence of the XCB::XCB target instead. Change-Id: I534087d8c3b7ff5edf81a5ffcf16cc0bb78b9fb7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix static usage requirements for XcbQpaJean-Michaël Celerier2019-06-051-1/+0
| | | | | | | | | | | | | In particular, Qt targets extended with other qt targets (eg. Qt::VulkanSupport or Qt::LinuxAccessibilitySupport) after the first add_qt_module were not taken into account when generating Depends files. Note that this patch updates the minimum required version to CMake 3.15 Change-Id: I747deedd4d59e385876bc1a834ef9bdb6078911b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: Fix xcb buildAlbert Astals Cid2019-06-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Need qt_find_package(X11_XCB) in src/gui/configure.cmake since we're using it in the file qt_feature("xcb_xlib" PRIVATE LABEL "XCB Xlib" CONDITION QT_FEATURE_xlib AND X11_XCB_FOUND ) Need qt_find_package(XRender PROVIDED_TARGETS PkgConfig::xrender) in src/plugins/platforms/xcb/CMakeLists.tx since we're using it in the file extend_target(XcbQpa CONDITION QT_FEATURE_xcb_native_painting AND QT_FEATURE_xrender PUBLIC_LIBRARIES PkgConfig::xrender ) Use capital XRender in pkgconfig to be more consistent on how XRender is called everywhere else Change-Id: I403ead2cc123b08f741c5142f20db88987657ba8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/dev' into wip/cmakeAlexandru Croitor2019-06-031-3/+26
| | | | | | Take 5. Change-Id: Ifb2d20e95ba824e45e667fba6c2ba45389991cc3
* Improve configure2cmake to find_package only in certain conditionsAlexandru Croitor2019-05-201-20/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | It doesn't make much sense to look for X11 related packages on macOS and Windows by default. Usually they would not be there, and as a result the configuration step would show a long list of scary not found packages, and also eat precious configure time. Change the conversion script to allow putting conditions around generated find_package calls. These conditions can be manually set in the conversion script library mapping, using the emit_if argument, which we do for the X11 and Wayland related packages. They are also computed by checking which features use a given library, and if the feature is protected by a simple emitIf condition like config.linux, the relevant library find_package call will be protected by the same condition. If a developer still wishes to look for all packages, they can define the CACHE variable QT_FIND_ALL_PACKAGES_ALWAYS to ON. The relevant configure.cmake files are regenerated in this patch. Change-Id: I6f918a94f50257ec41d6216305dae9774933389a Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* CMake: Fix up after WrapFreetype introductionTobias Hunger2019-05-081-1/+1
| | | | | Change-Id: I05ca6f8b055f470101ff0dcd1720a349a87e4ba9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix freetype target not being found when using vcpkgAlexandru Croitor2019-05-081-2/+2
| | | | | | | | | | vcpkg and upstream CMake find module define different target names for the same package. To circumvent this, create our own Wrap find module, and link against it. Inside the find module, try both target names. Change-Id: Iba488bce0fb410ddb83f6414244f86ad367de72b Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* CMake: Scripts: Fix double entries in 3rd party library mappingTobias Hunger2019-05-061-2/+2
| | | | | Change-Id: I35f29876874d6083d19382800d194e417d57bca1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Improve mapping of librariesTobias Hunger2019-05-031-10/+25
| | | | | | | | | | | | | Merge all data related to mapping libraries into one data structure in helper.py. Use that data for everything related to library mapping. This change enables way more features now like e.g. adding find_package calls into generated files. Change-Id: Ibbd2a1063cbeb65277582d434a6a672d62fc170b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* CMake: configurejson2cmake: Do not generate useless OPTIONALsTobias Hunger2019-05-031-21/+2
| | | | | | | | | | Do not set properties of packages to type OPTIONAL. That is the default anyway. Update generator script and generated files. Change-Id: I7a4d043b69c93ce8c2929a2e27ac6a07e4e6d8cc Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* cmake: make the qt_find_package PROVIDED_TARGETS optionalJean-Michaël Celerier2019-05-031-1/+1
| | | | | | | | | | This is because some FindPackage may produce some targets only on some platforms - e.g. qt_find_package(OpenGL) needs to define the provided target OpenGL::GLX which will only exist on linux but is required by various CMakeLists.txt files. Change-Id: I74515470f5d56c246f489df74901ad4223a92a70 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: Fix Vulkan qt_find_package callJean-Michaël Celerier2019-05-021-1/+1
| | | | | Change-Id: I4494d6d7dc2cd0b5afed5bb9d591b62627cbc49d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Write find_dependency() calls in Qt Module config filesAlexandru Croitor2019-05-021-20/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change introduces a new function called qt_find_package() which can take an extra option called PROVIDED_TARGETS, which associates targets with the package that defines those targets. This is done by setting the INTERFACE_QT_PACKAGE_NAME and INTERFACE_QT_PACKAGE_VERSION properties on the imported targets. This information allows us to generate appropriate find_dependency() calls in a module's Config file for third party libraries. For example when an application links against QtCore, it should also link against zlib and atomic libraries. In order to do that, the library locations first have to be found by CMake. This is achieved by embedding find_dependency(ZLIB) and find_dependency(Atomic) in Qt5CoreDependencies.cmake which is included by Qt5CoreConfig.cmake. The latter is picked up when an application project contains find_package(Qt5Core), and thus all linking dependencies are resolved. The information 'which package provides which targets' is contained in the python json2cmake conversion script. The generated output of the script contains qt_find_package() calls that represent that information. The Qt5CoreDependencies.cmake file and which which dependencies it contains is generated at the QtPostProcess stop. Note that for non-static Qt builds, we only need to propagate public 3rd party libraries. For static builds, we need all third party libraries. In order for the INTERFACE_QT_PACKAGE_NAME property to be read in any scope, the targets on which the property is set, have to be GLOBAL. Also for applications and other modules to find all required third party libraries, we have to install all our custom Find modules, and make sure they define INTERFACE IMPORTED libraries, and not just IMPORTED libraries. Change-Id: I694d6e32d05b96d5e241df0156fc79d0029426aa Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Make freetype a required packageAlexandru Croitor2019-05-011-1/+1
| | | | | | | | | With qmake if we don't find a system package, we use the bundled one. With CMake we don't provide a bundle freetype, hence it's required to find a system one (or custom provided one). Change-Id: I00a5e2ac55459957dae0729f89bafa792a102152 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge commit 'dev' into 'wip/cmake-merge'Tobias Hunger2019-04-161-63/+121
| | | | Change-Id: I176c40d031be26a1dd1cf08843e448a660598783
* CMake: Set define for default QPA platformTobias Hunger2019-04-021-2/+0
| | | | | | | | | | This is used to set the default QPA platform and without it all Gui applications trigger an assert in QString:-/ This is way simpler than going through configure.json. Change-Id: I2c053e95c0f7e99e97a0b2918d8e4ac13d3494fd Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Temporarily disable the opengles2 feature on WIN32Alexandru Croitor2019-03-211-1/+1
| | | | | | | | | | | | | | | | | | The feature used to be implicitly enabled because qt source ships with ANGLE sources, and thus ANGLE could always be built. Yet because the CMake port of ANGLE is not done yet, and because the feature is implicitly enabled, the build failed when trying to find GLES headers. To provide a nicer out-of-the-box configuring of the Windows build, disable the opengles2 feature on Windows, to default to a desktop GL build. It can be re-enabled once (if) ANGLE porting is done. After this change, you shouldn't need to pass any additional custom FEATURE_foo options to cmake to build qtbase on Windows. Change-Id: I94c96d8ef70cf671d2ce0198311f70b55fa642b1 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Regenerate cmake files from configure.json filesAlexandru Croitor2019-03-181-4/+10
| | | | | | | | | The new files represent the json features more closely. This helps with various build issues as well, like dynamicgl feature not being present before. Change-Id: I433592f48e0550700226a635492a3ce15af743c1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* cmake: Cleanup harfbuzz featuresМихаил Светкин2019-03-011-11/+1
| | | | | | | Remove system-harfbuzz feature and use harfbuzz feature as system Change-Id: I441345a667450f1c2d19380b0709911011c7ceb7 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* cmake: Give the egl_x11 test the necessary libs to compileAlbert Astals Cid2019-02-271-2/+6
| | | | | | | | | | | And add the eglfs_x11 plugin We need to actually try to compile the test as the comment it it says that having x11 and egl is not enough since sometimes they are actually incompatible Change-Id: If6bdc08c21b91fa9c41663f2fa653fd59e5ddd2e Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Fix Desktop GL/EGL/GLESv2 linkageSimon Hausmann2019-02-121-4/+8
| | | | | | | | | | | | | | | | This change fixes a few things in one go: * cmake's FindOpenGL cannot be used reliably to detect EGL. So use a custom module for that. * Added a custom module for GLESv2 detection, as cmake's FindOpenGL does not support that. * Map CONFIG += opengl to a WrapOpenGL target, which links against either GLESv2 or libGL - just like mkspecs/features/*/opengl.prf * cmake's FindOpenGL remains in use solely to detect the availability of desktop gl. Change-Id: I9315e5ad1fd88e1b7dc7e920053e98fb51fea7fc Reviewed-by: Volker Krause <volker.krause@kdab.com>
* Find mtdev and use itAlbert Astals Cid2019-02-121-1/+3
| | | | | Change-Id: I90db48efaa6a23add770fcf69b46c4f4c84866c1 Reviewed-by: Liang Qi <liang.qi@qt.io>
* CMake: Fix build of system jpeg is not availableKai Koehne2019-02-121-1/+1
| | | | | | Change-Id: Ie7462db556d0615e74755fa4fc3b51f625aade2f Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io> Reviewed-by: Liang Qi <liang.qi@qt.io>
* cmake: also write FIXME on the configure.cmake for 'use'Albert Astals Cid2019-02-121-17/+23
| | | | | | | Since most of the times it means we need to link with some other stuff Change-Id: I06262d4403225bca7a5e68d47145fefcf6702e5a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* cmake: blacklist xlib test, we can just use X11_FOUNDAlbert Astals Cid2019-02-121-19/+1
| | | | | Change-Id: Ic733c42e11b00fa8bf107f460a0596aeb10ac37b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* cmake: Blacklist the libinput_axis_api testAlbert Astals Cid2019-02-121-19/+1
| | | | | | | We already have a cmake find module for libinput so we know it is there Change-Id: I153544c5c13cb57b1ce258243ede17f4be9507fd Reviewed-by: Liang Qi <liang.qi@qt.io>
* cmake: Find tslib and build the tslib plugin if foundAlbert Astals Cid2019-02-111-3/+3
| | | | | Change-Id: I7119ddf473a3ede29bbfef23cffb08a4fcbd5681 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* cmake: don't die when running on macOSAlbert Astals Cid2019-02-111-2/+2
| | | | | | | still same result for me on Linux Change-Id: Icb74ffc5989c0b96f069f6ec33c2a707e012414b Reviewed-by: Liang Qi <liang.qi@qt.io>
* cmake: Fix linking of the opengles testsAlbert Astals Cid2019-02-111-0/+4
| | | | | | | | The FindOpenGL.cmake file in cmake has a comment that is not very reassuring this should work, but it actually works for me Change-Id: I05b0ac6ec551252f8c58ab7abf4254d2d09a069c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* cmake: Fix linking of the libinput_axis_api testAlbert Astals Cid2019-02-111-0/+2
| | | | | Change-Id: I7b70643e013b01d48f347bd5b3db9506793e46a4 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* cmake: Fix linking of the egl_x11 testAlbert Astals Cid2019-02-111-0/+2
| | | | | Change-Id: Id350e1cf85de67d1f27f6bfc94316bed115b377f Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Fix xlib compile testAlbert Astals Cid2019-02-111-1/+3
| | | | | Change-Id: Ib7d58484ef2bd0f38d3954940e7e527b4f848c4b Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* Add ATSPI2 library supportTobias Hunger2018-11-011-1/+3
| | | | | Change-Id: I304ba2b9df65008340b698eb3a74dc3b4abfb826 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Begin port of qtbase to CMakeSimon Hausmann2018-11-011-0/+946
Done-by: Alexandru Croitor <alexandru.croitor@qt.io> Done-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Done-by: Kevin Funk <kevin.funk@kdab.com> Done-by: Mikhail Svetkin <mikhail.svetkin@qt.io> Done-by: Simon Hausmann <simon.hausmann@qt.io> Done-by: Tobias Hunger <tobias.hunger@qt.io> Done-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Done-by: Volker Krause <volker.krause@kdab.com> Change-Id: Ida4f8bd190f9a4849a1af7b5b7981337a5df5310 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>