summaryrefslogtreecommitdiffstats
path: root/cmake
Commit message (Collapse)AuthorAgeFilesLines
...
* Build and use double-conversion library shipped by Qt when neededAlexandru Croitor2019-05-221-5/+15
| | | | | | | | | | | | | | | | Some Linux distros might not have a double-conversion library. Because it is such an essential library for QtCore, compile and use the the copy of the library bundled with Qt. Also change library name to be a proper target with double colons, so that in case the library is not found for some reason, the CMake configure step would fail, instead of failing at link time. Task-number: QTBUG-74133 Change-Id: I9f3b4298ae6e952891a7a89541d46878176bf1ce Fixes: QTBUG-75891 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Avoid accidental clash with .qrc files that are checked inSimon Hausmann2019-05-211-1/+1
| | | | | | | | Add a prefix for generated .qrc files so for in-source builds we don't end up overwriting htem. Change-Id: I8eef582479eb45d67585f6aab87b288393bbadb5 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Simplify top-level CMakeLists.txt for modulesSimon Hausmann2019-05-211-0/+20
| | | | | | | | | | Implement some aspects of qt_parts.prf to simplify the top-level CMakeLists.txt for repositories that follow the common qt structure (src, tools, tests, examples). Change-Id: Ia35f4e9207e92c1cf0406353561b0cc52dcb0e59 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Automatically install repo specific cmake find modulesAlexandru Croitor2019-05-201-0/+15
| | | | | | | | | | | | | | Some qt modules need to find 3rd party packages for which there are no Config files. We need to write custom CMake Find modules to find those packages. These find modules need to be installed so that they are used when a user consumes the Qt packages. Automatically include and install these find modules if they exist, as part of qt_build_repo_end(). Change-Id: I14aad35ed2999cac8bdda65ca4aeaf74d04fdb71 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: Liang Qi <liang.qi@qt.io>
* Propagate QT_CMAKE_EXPORT_NAMESPACE via QtCore packageAlexandru Croitor2019-05-172-0/+14
| | | | | | | | | | | | | | | | QT_CMAKE_EXPORT_NAMESPACE is used by the Qt packages to make features available to the consuming CMake project. The value was moved to the BuildInternals Config file, but that's wrong because consuming applications not including the BuildInternals component would fail to use any other Qt package. Move QT_CMAKE_EXPORT_NAMESPACE to be propagated with QtCore package again. Amends 9542e78525b422159406d8fa63e30dcd0f926411. Change-Id: I9841ac8c2828b00c0111d59e8976c889554e0ce1 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Copy feature properties from GlobalConfig to Core targetAlexandru Croitor2019-05-171-0/+25
| | | | | | | | | | | | | | | Current lates CMake has a limitation that it does not allow exporting custom properties from INTERFACE libraries. GlobalConfig is such a library, which means that so far all the global features were not actually exported. Copy the feature property values from GlobalConfig to Core. Because Core is an actual shared library, it keeps the custom properties when exported, and thus Core feature properties will contain the sum of Core and GlobalConfig feature values. Change-Id: Idde305cbaf9ab85ecfbe29522dcbac1c44022b17 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Stop trying to create config forwarding headers for NO_MODULE targetsAlexandru Croitor2019-05-162-10/+14
| | | | | | | | | | | | | | | | | | | The GlobalConfig target is not an actual module, so there's no point in trying to create forwarding headers for GlobalConfig's qconfig.h within qt_feature_module_end. qconfig.h's forwarding header will be created implicitly while processing QtCore target's SYNCQT.INJECTIONS value, which is read from the headers.pri file generated by syncqt. This also fixes trying to create forwarding headers when processing the sqldrivers project. Amends 02a015375a639a4d27d19bbf435f20b725696768. Change-Id: Ifd70d8c3ebf881ffdcf90db8d5d3b23309bc8fed Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Save and set the CMAKE_INSTALL_PREFIX in BuildInternal's Config fileAlexandru Croitor2019-05-152-2/+8
| | | | | | | | | | | | | | Once qtbase is built and installed, save the CMAKE_INSTALL_PREFIX that was used during the build, and set it when a consumer calls find_package(Qt5BuildInternals). This fixes a bug where syncqt can not be found when building qtsvg, while the developer specifies CMAKE_PREFIX_PATH to find the Qt packages, but does not set the CMAKE_INSTALL_PREFIX. Task-number: QTBUG-75544 Change-Id: I03fd23ba418af5115105610f3f9ed92664562945 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Use the qt_build_repo() macros for building qtbase as wellAlexandru Croitor2019-05-155-23/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | To implement this, create a new Qt5BuildInternals package. All child Qt modules like qtsvg should use find_package(Qt5BuildInternals) or find_package(Qt5 COMPONENTS BuildInternals) in the their top level CMakeLists.txt. This will make the qt_build_repo() macros available. For qtbase we slightly cheat, and specify a CMAKE_PREFIX_PATH pointing to the source folder that contains the BuildInternals package. For the other modules we actually use a configured and installed package Config file. This change moves variables that used to be written into the QtCore Config file into the BuildInternals package. This way things that are relevant only for building additional Qt modules does not pollute the QtCore package. Task-number: QTBUG-75580 Change-Id: I5479adff2f7903c9c2862d28c05c7f485ce3e4eb Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Encapsulate commands for building other repos into two macrosAlexandru Croitor2019-05-152-5/+13
| | | | | | | | | | | | | | | | | | | Currently to build qtsvg we have some copy-pasted code to set up the paths for QtSetup and QtPostProcess to be found. To make it cleaner, introduce two new macros called qt_build_repo_begin and qt_build_repo_end(). The first one should be called in a child repo like qtsvg, right after a find_package(Qt5) call, and the second one at the end of the repo top-level CMakeLists.txt file. In order for the macros to work, extract some of the variables which were set in Qt5Config into Qt5CoreConfig instead. This makes sure that it works also for find_package(Qt5Core) calls. Task-number: QTBUG-75580 Change-Id: I85267c6bd86f9291ec2e170fddab1006ab684b5c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Implement developer / non-prefix buildsAlexandru Croitor2019-05-156-159/+442
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A non-prefix build is a build where you don't have to run make install. To do a non-prefix build, pass -DFEATURE_developer_build=ON when invoking CMake on qtbase. Note that this of course also enables developer build features (private tests, etc). When doing a non-prefix build, the CMAKE_INSTALL_PREFIX cache variable will point to the qtbase build directory. Tests can be run without installing Qt (QPA plugins are picked up from the build dir). This patch stops installation of any files by forcing the make "install" target be a no-op. When invoking cmake on the qtsvg module (or any other module), the CMAKE_INSTALL_PREFIX variable should be set to the qtbase build directory. The developer-build feature is propagated via the QtCore Config file, so that when building other modules, you don't have to specify it on the command line again. As a result of the change, all libraries, plugins, tools, include dirs, CMake Config files, CMake Targets files, Macro files, etc, will be placed in the qtbase build directory, mimicking the file layout of an installed Qt file layout. Only examples and tests are kept in the separate module build directories, which is equivalent to how qmake does it. The following global variables contain paths for the appropriate prefix or non prefix builds: QT_BUILD_DIR, QT_INSTALL_DIR, QT_CONFIG_BUILD_DIR, QT_CONFIG_INSTALL_DIR. These should be used by developers when deciding where files should be placed. All usages of install() are replaced by qt_install(), which has some additional logic on how to handle associationg of CMake targets to export names. When installing files, some consideration should be taken if qt_copy_or_install() needs to be used instead of qt_install(), which takes care of copying files from the source dir to the build dir when doing non-prefix builds. Tested with qtbase and qtsvg, developer builds, non-developer builds and static developer builds on Windows, Linux and macOS. Task-number: QTBUG-75581 Change-Id: I0ed27fb6467662dd24fb23aee6b95dd2c9c4061f Reviewed-by: Kevin Funk <kevin.funk@kdab.com> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* cmake: Correct way to save/restore env varsAlbert Astals Cid2019-05-101-6/+27
| | | | | | | for pkgconfig it is different if they are not defined vs an empty string Change-Id: Ifb05db5dab32a699aafa32d91f9719eab78dee44 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Wrap DBus1 find_package call to fix xproto not being picked upTobias Hunger2019-05-101-0/+10
| | | | | | | | | | | | | | DBus1 (1.12) configuration file breaks PKG_CONFIG environment variables and will thus prevent other libraries to be picked up by pkgconfig. Main sympthom is that xproto is not getting picked up anymore, which results in hundreds of lines of warnings about this being printed. Work around that by wrapping the call to find_package(DBus1) and restoring the environment. Change-Id: Ia69f10b014dddc32045b40972500a843e5d29b38 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: pro2cmake.py: Separate library extraction logic from writing out dataTobias Hunger2019-05-091-3/+6
| | | | | | | | | | | | | | Separate the logic to find all used libraries from the code that writes out the link_library information into the CMakeLists(.gen)?.txt files. This patch will remove some "PUBLIC_LIBRARIES Qt::Core" from generated files. This is due to us handling some Qt libraries in special ways in some of our add_qt_* helpers. These special libraries were added to the LIBRARIES section, but actually they should be added to the PUBLIC_LIBRARIES section instead. Do so now, so that the newly generated files do not break things again. Change-Id: I588781087a8aecc4d879e949735671d8085f0698 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix freetype target not being found when using vcpkgAlexandru Croitor2019-05-081-0/+26
| | | | | | | | | | 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>
* Add support for MinGWCristian Adam2019-05-041-4/+26
| | | | | | | | | Tested with MinGW 7.3.0 64 from Qt 5.12 installation. The CMake 3rd party libraries I used from hunter project (with some package, and target names changes) Change-Id: Ie89555a6cd8bdb7182f9b2dd2c3c39784c523ead Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Handle generating find_dependency() calls for nolink targetsAlexandru Croitor2019-05-032-4/+24
| | | | | | | | | | | | | | | | Previously we just recorded that Gui has to link against Vulkan::Vulkan_nolink, but if an application consumed Gui, it wouldn't find that target. We need to record that if a module links against Vulkan_nolink, and then generate a find_dependency(Vulkan) call in the module config file. We also have to assign the _nolink interface library to an export (the Qt5 one), so that it gets installed as a target. Change-Id: Icbc29ff4161ab18fdd162196ae128e29c1ee8c80 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: Generate config files with Qt:: prefixKevin Funk2019-05-034-1/+33
| | | | | | | | Generate CMake config files which export Qt targets with a Qt:: prefix (i.e. without a major version suffix in the namespace) Change-Id: Ia07f98be6d0e24c196e3880b7469f1f0c6232c06 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: Install required CMake templatesKevin Funk2019-05-031-0/+3
| | | | | Change-Id: I4a56440bee1aa7143971dd8f0b8af6dc042703f3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* CMake: Improve mapping of librariesTobias Hunger2019-05-031-0/+5
| | | | | | | | | | | | | 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: Make add_qt_executable workKevin Funk2019-05-031-0/+1
| | | | | | | | Also needs the include/ from the top-level binary dir added to the include path. Change-Id: I7e0d82a2ee24d9bf9ffe9da5fd02b3b223fd48e7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: move dependencies accumulation in QtPostProcess.cmakeJean-Michaël Celerier2019-05-034-29/+71
| | | | | | | | | This is needed because dependencies added after add_qt_module with extend_target are currently not taken into account. Task-number: QTBUG-75538 Change-Id: I2c72207fb88b2480e41a2c8550978fb194275617 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix finding host tools when cross-compilingSimon Hausmann2019-05-031-1/+11
| | | | | | | | | | | | | | | | | | | * When using a sysroot, just setting CMAKE_PREFIX_PATH to the QT_HOST_PATH is not sufficient in finding for example Qt5CoreTools because the QT_HOST_PATH would be prefixed by the sysroot. So this patch switches the mode to also enable looking outside of the sysroot. (done by Alexandru) * Once the Qt5CoreToolsConfigVersion.cmake was found, the built-in check for 32 vs. 64 bit compatibility by looking at the provided CMAKE_SIZEOF_VOID_P (4 when target is armv7 for example) and comparing it against the void* size used when building the tools would fail. Explicitly unsetting CMAKE_SIZEOF_VOID_P disables this check, and that's fine as we're not interested in any exported library targets -- where this could cause problems -- but merely programs to run. Change-Id: If2931dad023e39a3dbdaa17ac095131ad2c0ca60 Reviewed-by: Alexandru Croitor <alexandru.croitor@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 typo, variable was renamed earlierKevin Funk2019-05-031-1/+1
| | | | | Change-Id: I8fe9da37572efe85b2dff0b223edb1d93e904f34 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Update readme to mention how to set feature flagsAlexandru Croitor2019-05-021-0/+6
| | | | | Change-Id: If63d37af4711c4332129d65b934269c33f041ea4 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* cmake: export locally-built dependencies in static buildJean-Michaël Celerier2019-05-023-1/+108
| | | | | Change-Id: Ifbcedd32cef3b9c8b4b8c9ca0d229850f696f406 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Make module package depend on its own tool packageAlexandru Croitor2019-05-024-2/+76
| | | | | | | | | | | | | | | | | | | | Also make the tool package depend on all tool packages that correspond to the qt module dependencies. So find_package(Qt5Widgets) implicitly calls find_package(Qt5WidgetTools). And find_package(Qt5WidgetsTools) will call find_package for Qt5GuiTools, and Qt5CoreTools. This enhances the user experience, so that in modules like qtsvg, you don't have to specify both find_package(Qt5Widgets) and find_package(Qt5WidgetsTools), but only the former. Or when cross building, you only need to specify Qt5WidgetTools, to get both Core and Gui tools. Change-Id: Ib1c5173a5b97584a52e144c22e38e90a712f727a Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Write find_dependency() calls in Qt Module config filesAlexandru Croitor2019-05-0212-6/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Export tool config and target files for each relevant moduleAlexandru Croitor2019-05-028-47/+233
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CMake will now generate config and target files for each module that provides tools. As a result, namespaced global targets such as Qt5::moc or Qt5::rcc can be made available. Third party projects that require just these tools, and not the Qt modules themselves, should specify CMAKE_PREFIX_PATH pointing to the installed Qt location, and call find_package(Qt5CoreTools), find_package(Qt5GuiTools), etc. It is also possible to call find_package(Qt5Tools REQUIRED Core Widgets) where the last option is a list of modules whose tools should be imported. Note that all the tools are in the Qt5:: namespace and not in the Qt5CoreTools:: or Qt5WidgetsTools:: namespace. This commit also changes the behavior regarding when to build tools while building Qt itself. When cross compiling Qt (checked via CMAKE_CROSSCOMPILING) or when -DQT_FORCE_FIND_TOOLS=TRUE is passed, tools added by add_qt_tool will always be searched for and not built. In this case the user has to specify the CMake variable QT_HOST_PATH pointing to an installed host Qt location. When not cross compiling, tools added by add_qt_tool are built from source. When building leaf modules (like qtsvg) that require some tool that was built in qtbase (like moc), the module project should contain a find_package(Qt5ToolsCore) call and specify an appropriate CMAKE_PREFIX_PATH so that the tool package is found. Note that because HOST_QT_TOOLS_DIRECTORY was replaced by QT_HOST_PATH, the ensure syncqt code was changed to make it work properly with both qtbase and qtsvg. Here's a list of tools and their module associations: qmake, moc, rcc, tracegen, qfloat16-tables, qlalr -> CoreTools qvkgen -> GuiTools uic -> WidgetTools dbus related tools -> DBusTools Task-number: QTBUG-74134 Change-Id: Ie67d1e2f8de46102b48eca008f0b50caf4fbe3ed Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Update readme with some useful infoAlexandru Croitor2019-05-011-14/+39
| | | | | | | | | | | Update required dependencies. Add section on how to build vcpkg on macOS. Fix some typos. Lower required CMake version. Inform how to bypass annoying ninja reconfiguration issue. Change-Id: Ia35bd4329c2cbb9857157cdc33b098f5adb04a35 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix add_qt_tool to properly propagate NO_QT optionAlexandru Croitor2019-04-291-2/+8
| | | | | | | | | | Otherwise add_qt_executable will still link against Core, and thus building qmake in a static build will fail. Amends a1752276e0f71f29df12317eaa81798ccbe2fa91 Change-Id: Iebbdf9d0a2808a9eaeffdf8fbdb44ff5e2920f3b Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* CMake: Do not link qmake against Qt (not even the bootstrap one)Tobias Hunger2019-04-291-5/+13
| | | | | | | | | | | | | Qmake should not rebuild all the code in QtCore, but currently it does. When linking against QtCore, all the symbols get duplicated. A clever linker will "deduplicate" the symbols again, so this actually works with shared Qt builds, but it fails for static builds. Do not rely on the linker being clever and just do not link Qt at all for qmake. Change-Id: I0f79ed9176a19ee884dd425e5f23c26cf69dc422 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Append syncqt header include dir when building pluginsAlexandru Croitor2019-04-261-0/+2
| | | | | Change-Id: I899d4562155fbc82cfd13979b424d751095a381b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix dbusxml2cpp custom command invocationAlexandru Croitor2019-04-161-5/+11
| | | | | | | | | | | | | Use absolute paths for source files, and relative paths plus a correct working directory for output files. This is required to work around a limitation of the dbusxml2cpp tool where it splits a command line option on a colon ":". Windows paths contain colons, and that breaks the internal logic of the tool when passing absolute paths. Change-Id: Ic653f1317ae4f68bb2f488c117fe48c34310c76e Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* Work around issue of missing Windows qtmain static libraryAlexandru Croitor2019-04-161-0/+6
| | | | | | | | | | | | | | Applications that have the WIN32_EXECUTABLE property set, must have a WinMain function. In qmake's case, this function is provided by the qtmain static library. Until that is implemented in CMake land, disable the property on Windows for all qt executables. This fixes the linker issues while building examples. Task-number: QTBUG-75195 Change-Id: I323d4dd899f716cd6b9b7f4b5ecb76b22f462fc4 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* CMake: Use imported target to create _nolink targetsTobias Hunger2019-04-111-14/+12
| | | | | | | | | | Use an imported target to create _nolink targets. This gets rid of the need to have an helper target that gets aliases to get work around the problem of the original target might having a "::" in its name. Change-Id: I4618980cf2c673ebf5caca593bccf122b3c81480 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Update src/corelibTobias Hunger2019-04-111-1/+1
| | | | | Change-Id: I0321883f762460b146666bfbad0d8b27c3fdeadd Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Support /nolink librariesTobias Hunger2019-04-101-0/+38
| | | | | | | | | | | | | Add a helper function to QtBuild that generates Foo_nolink versions of Foo library targets. Map 'Foo/nolink' libs found in qmake to Foo_nolink. Automatically run helper function to create _nolink targets as part of extend_target. Change-Id: I4c23ea68b3037d23c9a31d4ac272a6bd0565f7c0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Turn off linker version script support on macOSAlexandru Croitor2019-04-091-0/+7
| | | | | | | | The test erroneously succeeds on macOS with an XCode generator. Explicitly set the test result to be turned off. Change-Id: Id6fcb96f420f611517e81cc3697f1c88b508bd7c Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* CMake: FindATSPI2: Ignore repeated attempts to find ATSPI2Tobias Hunger2019-04-091-1/+3
| | | | | Change-Id: I4d6f59d144910d2f194f73e3b9bc8a5cc6726bcd Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Stop installing test helpersAlexandru Croitor2019-04-081-1/+1
| | | | | | | | Tests and their helpers should only be used in the build directory. Change-Id: I5aa9fcf734b6b3667f91df7c84d083f944c452c9 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* cmake: Run tests from their build dirAlbert Astals Cid2019-04-051-1/+1
| | | | | | | It's what the qmake build does Change-Id: I99663735859941b56c2211898908d61bc6c4b48f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: Put the test helpers binaries in their parent folderAlbert Astals Cid2019-04-041-1/+1
| | | | | | | | | | | | | | | Makes qtextcodec test succeed Like qmake does qt_test_helper.prf says " If an auto test needs a helper application, this helper should be put into the same directory as the test itself. " Change-Id: I02cb36d2237cdb72912c943250b843c33ffcd64a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Stop installing unnecessary thingsAlexandru Croitor2019-04-031-8/+17
| | | | | | | | | | This includes: - tests - tools that are only used duing the Qt build (tracegen and qfloat16-tables) Change-Id: I3a5f678682b5b9318012568a9e4dcdda0967f89b Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* CMake: Add FindCups.cmake from upstream cmakeTobias Hunger2019-04-031-0/+98
| | | | | | | | | This FindCups defines a target, which the FindCups.cmake in the currently required CMake version does not:-/ Change-Id: I76c5bb72ece80415db1971e4f2079682126fde36 Todo: Remove again once we depend on CMake 3.15. Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add a debug suffix to libraries and plugins on macOS and WindowsAlexandru Croitor2019-04-021-0/+8
| | | | | | | | | This is especially important on macOS when doing a debug build, because QPluginLoader is looking for the cocoa QPA plugin suffixed with "_debug" when executing a test or example. Change-Id: Ief23b3a82c567c16ab9dd30d04d1729031262d7d Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* CMake: Remove 3rdparty/kwin/FindFontconfig.cmakeTobias Hunger2019-03-291-50/+0
| | | | | | | The one shipped with cmake is more modern:-) Change-Id: I024769825467734ff1527e91df4cf5dfc38cbe68 Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
* Install test executables into $prefix/tests instead of $prefix/binAlexandru Croitor2019-03-271-0/+2
| | | | | | | | | The install path takes into account the path structure of the source directory, so that not all tests are bunched up into /tests, but rather /tests/auto/foo/bar. Change-Id: I5e32d2e41ae8f095f4eac6654973508efd598df0 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* CMake: Set QT_STATICPLUGIN for static pluginsTobias Hunger2019-03-271-4/+6
| | | | | Change-Id: I5439935b5db2babd47cdc85647e464fe845279cf Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>