summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add Qt Quick Compiler supportLeander Beernaert2019-07-312-14/+122
| | | | | | | | | | | | This patch adds support for the qtquick compiler feature, which will embed the compiled qml files as resources along with the respective qml_loader. This patch also changes the add_qml_module call to require either EMBED_QML_FILES and/or INSTALL_QML_FILES to be specified. Change-Id: I32d29c9b554b8286ed3b980027a56dd4abe11c92 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix add_qml_module() with non-static buildsSimon Hausmann2019-07-301-1/+1
| | | | | | | | | Make sure that the .qml/.js/.mjs files are copied or installed into their target destination. Change-Id: Ib1649e5168c9fe3a570800af92d82293e5b295d6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CMake Build Bot
* Fix creation of generated plugin cpp files in static buildsAlexandru Croitor2019-07-301-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | When building qtdeclarative against a static iOS qtbase build, QtNetwork is find_package'd twice, once in the top level CMakeLists.txt file, and once by the qtuiotouchplugin which has Network as a dependency. This meant that the static plugins that Network exposes had auto import cpp files generated twice, which failed the configuration of qtdeclarative. To fix this, don't generate the same file more than once. To do that, protect the inclusion of the FooPlugins.cmake file, to only be included once in every directory scope. That can be achieved by setting a variable to TRUE when the target does not exist yet. If the target exists in the same scope, that means that find_package() was called a second time in the same scope, so there is no need to include the Plugins file. Change-Id: I9d7c3e7b7c22c2b4526cf1d717b9d15919f213f3 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Protect against extending imported host targetsAlexandru Croitor2019-07-301-2/+24
| | | | | | | | | | | | | When cross-compiling qtdeclarative, add_qt_tools makes sure to import the host tool and not build it. But there are also some extend_target and add_qt_resource calls which try to extend the host tool. Make sure to protect those functions not to do anything if they are called on an imported target. Change-Id: Ifd8bcab8e56ad389a8c145382b23bd2c1bda5e81 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Ugly fix for handling QT_SOURCE_TREEAlexandru Croitor2019-07-2912-28/+184
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QT_SOURCE_TREE is a variable that is set in qtbase/.qmake.conf. In qtbase, it's used throughout various projects to find cpp sources when building standalone tests (among other things). Everything works fine with qmake, because even if qmake is invoked on the tests subfolder, qmake searches up the source directory tree until it finds a .qmake.conf file, and uses that. When building qttools with qmake, the qdoc project expects to have a QT_SOURCE_TREE value, but it's not actually set in the qttools/.qmake.conf file, so the generated include paths that use that value are incorrect. Curiously the build still succeeds. Now in CMake land we replaced QT_SOURCE_TREE with CMAKE_SOURCE_DIR, but that does not work properly when doing a standalone tests build, because the project in that case is the tests one, and not the qtbase one, so configuration fails in a developer build when trying to configure some private tests. So far I've found that only qtbase actively uses this value. A temporary fix is to save the qtbase source directory into a QT_SOURCE_TREE variable inside the generated BuildInternalsExtra.cmake file. The pro2cmake script is changed to handle presence of QT_SOURCE_TREE in a qrc file path. This is handled by finding the location of a .qmake.conf file starting from the project file absolute path. This is needed to stop the script from crashing when handling the mimedatabase test projects for example. The change also regenerates the relevant failing test projects, and thus standalone tests (when doing developer builds aka private_tests enabled) now configure and build successfully. Change-Id: I15adc6f4ab6e3056c43ed850196204e2229c4d98 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Permit the use of qml cache file generation even inside qtdeclarativeSimon Hausmann2019-07-291-7/+0
| | | | | | | | | After re-arranging subdirs, the cmake target level dependencies can handle building qmlcachegen before running the custom command for generating cache files. Change-Id: I8a35b2b5bfd2fdf4b49462ff9c27e5f3075254fc Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: Enable network testLiang Qi2019-07-2974-5/+1565
| | | | | | | Task-number: QTBUG-74146 Change-Id: Ib29d1531f89676afb2b4df5032529b731ace029d Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix testdata handlingAlexandru Croitor2019-07-292-6/+22
| | | | | | | | | | | | | | Make sure to handle glob expressions in the entire path given, not just the end of the path. This handles tests like qsslkey and qnetworkreply. Also copy/install the testdata in the final test directory path under a "testdata" subdir. Previously INSTALL_TESTDIR was used, which was never set to anything. Change-Id: I2408e12f586cadeb524ffa249e851a4179324b23 Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
* Add support for qmlcachegenLeander Beernaert2019-07-291-1/+86
| | | | | | | | This patch adds support for qmake's qmlcache feature. It's enabled when option EMBED_QML_FILES is not present in add_qml_module. Change-Id: I9b35f0bda7dfaf777f55c14eaf3d763f9b550fa4 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Add EMBED_QML_FILES option to add_qml_moduleLeander Beernaert2019-07-252-11/+25
| | | | | | | | Some projects in QtQuickControls force the qml files to embedded into the binary. This change exposes an option to mimic that bevhavior. Change-Id: I4cbf0c21c05ca03b8dd1189eb7d81e43279c7157 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix QML_FILES conversionLeander Beernaert2019-07-251-1/+1
| | | | | | | | | | Use a the more appropriate scope.get_files() to retrieve the qml file list from the qmake project. This makes it more consitent with the rest of the conversion script and fixes some issues with incorrect aliases in qrc files. Change-Id: I8907516be9457ba0d60d14af53d241197637aa9f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Extend add_qt_test to support qmltestcaseLeander Beernaert2019-07-242-16/+67
| | | | | | | | | | | | | | | Extend add_qt_test for qmltest by setting the option QMLTEST when we detect the config qmltestcase. We also forwards the GUI option to the tests when detected. This is a requirement for some QtQuickControls2 tests. Finally when doing a prefix build, we add the install directory to the QT_PLUGIN_PATH environment variable. Change-Id: I3b2ecb494955976e98abbcf3d03925c314336122 Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add missing QT_INSTALL_DIR paths to qml files and test dataLeander Beernaert2019-07-241-5/+22
| | | | | | | | | | | | | Make sure that paths passed to qt_copy_or_install are prefixed with QT_INSTALL_DIR so that they behave correctly with prefix and non-prefix builds. Make sure that plugin.qmltypes and qmldir are also copied to binary dir when doing prefix builds to match qmake's behavior. Change-Id: I6f87ed478e797c9f66dbf85264904ad29a60ad95 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CMake Build Bot
* Regenerate qtextedit testAlexandru Croitor2019-07-241-4/+28
| | | | | | | | | It was not built previously on macOS due to private_tests feature misbehaving, and thus it now fails due to incorrect framework linkage. Regenerate it. Change-Id: I2f4338e3ef3bf160ae4f13083e8da5f8db47b9c0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix exporting of Core toolsAlexandru Croitor2019-07-242-3/+3
| | | | | | | | | | | | | | | It should happen after qmake is built, to make sure that the target is made global, otherwise when cross-building qtbase in another build tree, the configuration phase will fail due to not finding qmake. qmake was accidentally exported before if you configured qtbase twice, because the tool was kept around in a cache variable, the second configuration actually recreated the CoreToolsConfig.cmake file to contain qmake as well. Change-Id: I6941e83f7d6bd03c56de120fba1d18e50c4af0e4 Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix define value for QtQuiLeander Beernaert2019-07-231-1/+1
| | | | | | | A define was placed in the wrong section. Change-Id: Ibaf16fc45d51d99f7581bc98d6df334972b04278 Reviewed-by: Liang Qi <liang.qi@qt.io>
* Fix mapping of Apple platforms in pro2cmake.pyAlexandru Croitor2019-07-237-52/+102
| | | | | | | | | | | | "mac" scope in qmake actually means all mac platforms, just like "darwin", aka macOS, iOS, watchOS, etc. Regenerate corelib, gui and testlib after this modification. This is a requirement for the iOS port. Change-Id: I029c7e907d13f6ec31816a08602a5930f9ac16a7 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Qt CMake Build Bot
* Add some missing CLASS_NAME values to pluginsAlexandru Croitor2019-07-227-4/+16
| | | | | | | | | | | | This substantially decreases the number of warnings when doing a Qt static build with examples. This is a quickfix modifying the relevant files directly. A proper fix will follow that regenerates the whole files. Change-Id: I2a3cc2c4ea02b3412beb96f7b4be9d43365a460d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Qt CMake Build Bot
* Fix building examples when doing a Qt static buildAlexandru Croitor2019-07-221-1/+11
| | | | | | | | | | | | | | | | | | The build failed due to two different reasons. We tried to assign properties on an aliased target, which does not work. Make sure to set properties on the original unaliased target. We tried to query for the value of the QT_DEFAULT_PLUGINS property when automatically linking to plugins, but the generator expression failed in the AND section, because querying for an unexisting value does not return an integer, and the AND expression expects an integer. The fix is to wrap the relevant expression in a BOOL generator expression. Change-Id: Ia065bc1de939cee49e5de0b2aef70e356cc5419a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Qt CMake Build Bot
* Fix warnings regarding QML pluginsAlexandru Croitor2019-07-221-3/+5
| | | | | | | | | | Some author warnings don't make sense when dealing with QML plugins, like the messages regarding CLASS_NAME or not belonging to a certain module. Take care not to print those warnings in those cases. Change-Id: I017bd63cca650dc262337949242e813b7b6a56cc Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix non-prefix builds for non qtbase reposAlexandru Croitor2019-07-222-9/+21
| | | | | | | | | | | | | | | | QT_WILL_INSTALL was previously always set to ON when doing a qtdeclarative build, because CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT evaluated to false due to always having to set CMAKE_INSTALL_PREFIX to point to the qtbase build directory. Instead of recomputing the value of QT_WILL_INSTALL, compute it once while configuring qtbase, and add it to the generated QtBuildInternalsExtra.cmake file, so it propagates to all other repos that will be built. Change-Id: If8bf63e7501b5758fe7aa0f799cb0746704f4811 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Simplify add_qml_module codeLeander Beernaert2019-07-222-73/+165
| | | | | | | | | | | | | | | | Reduce the amount of code required to add a qml plugin to cmake by making add_qml_module wrap the add_qt_plugin code where required. add_qml_module will also create a dummy target so that qml files will appear as source files in an IDE when no cpp files are present. CXX_MODULE qmake parameter has been dropped in favor of an explicit IMPORT_VERSION parameter, since it was only used to determine the version when the IMPORT_VERSION was not specified. Change-Id: I4a4b626566720d04c62d246ca521db8c4a95b10f Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Minor cleanupSimon Hausmann2019-07-221-1/+1
| | | | | | | | | Remove unnecessary condition. We're already inside a FEATURE_vulkan block. Change-Id: I3a4d2db9ad830b6a0a0b2c5895ab8b2060713370 Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Process private libraries set in QT_PRIVATELeander Beernaert2019-07-221-1/+1
| | | | | | | | The pro2cmake conversion was not processing private libraries specified with the QT_PRIVATE variable. Change-Id: I0c44595bb8e1ed9a748af51a2a859bee62e7d264 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix mapping of features to private featuresSimon Hausmann2019-07-223-6/+12
| | | | | | | | | | | | | | | | | | | | 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>
* Add special case handling for corelib mimetypes resourcesLeander Beernaert2019-07-189-13/+282
| | | | | | | | | | | | | We have to treat the resources from mimetypes in corelibs specially as they are reused for two test cases. Since we no longer use the qrc files, we have wrapped the relevant code in a function that can be called for every target that depends on it. This change also corrects formatting for the generate CMake code regarding resource commands. Change-Id: I50a05c81151d75aefc9ca165f5ffeb9f5cd77162 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Enable recursive expansion of simple qmake variablesLeander Beernaert2019-07-182-12/+24
| | | | | | | | | | | | | | | | | | | | | Allow _expand_value to expand variables that may have more than one level of expansion when the regular expression covers all of the input. E.g.: A = Foo B = $$A/Bar scope.expand('$$B') While the original code was able to expand the string '$$B/source.cpp' to 'Foo/Bar/source.cpp', it could not expand the string '$$B' completely. The latter would always return '$$A/Bar' instead of the expected 'Foo/Bar' string. A test case has been added which coveres the above example. Change-Id: Ie3b5739c24ecbeb67d408dd204b0f54bab1d0f3f Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix build with private_tests enabledSimon Hausmann2019-07-171-1/+2
| | | | | | | Avoid recursing into a sub-directory that has not been converted yet. Change-Id: I1abb345bc29aff84d6c596b61b469b6119513f12 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix qdbusmarshall testLeander Beernaert2019-07-171-3/+12
| | | | | | | | Fix target name for qdbushmarshall and fix missing include paths and unresolved symbols. Change-Id: I770e190e33d1de9b9d95ee92e63d868e2337c322 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Handle TESTDATA for Qt TestsLeander Beernaert2019-07-162-3/+71
| | | | | | | | | | | | | | | | These changes enable the support to handle test data and install or package them as resources when appropriate. This change does not handle the GENERATED_TESTDATA or TEST_HELPER_INSTALLS since there are very few occurrences of these and we can handle those as special cases. Finally, in add_qt_test, only append CMAKE_CURRENT_SOURCE_DIR if the path is not absolute. Change-Id: Ic20b9749d10e2a09916f2797606116471c64850b Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Add support for QML pluginsLeander Beernaert2019-07-153-5/+195
| | | | | | | | | | | | | | | | | | Add the necessary code to both the QtBuild and pro2cmake to be able to handle qml plugins in qt declarative. Add condition replacement for QTDIR_build to QT_BUILDING_QT so that certain qml examples work correctly when being built in the build directory. Fix add_qt_resources not being updated during build after changes were made. Files list used as dependencies were not populated. Add missing module mappings for qtdeclarative. Change-Id: I0f71d0a3a0e7e97ba96807950d11cffaee04d9b2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Qt CMake Build Bot
* Add missing expansion for $$_PRO_FILE_PWD_Leander Beernaert2019-07-151-1/+1
| | | | | | | | | | | Tests in qtdeclarative were failing because the above variable was expanded to an empty string. This causes the tests to be unable to locate their test data when executed. Change-Id: Ibc3c094123f25d688a73c11886ac1673b6930c54 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io> Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/wip/qt6' into wip/cmakeAlexandru Croitor2019-07-111121-12912/+80901
|\ | | | | | | Change-Id: I715b1d743d5f11560e7b3fbeb8fd64a5e5ddb277
| * Merge "Merge remote-tracking branch 'origin/dev' into wip/qt6"Alexandru Croitor2019-07-08434-2560/+4427
| |\
| | * Merge remote-tracking branch 'origin/dev' into wip/qt6Alexandru Croitor2019-07-08434-2560/+4427
| |/| | | | | | | | | | Change-Id: I02cbc4f77a82100b96cdb90c160ce0207f180d7f
| | * Fix build without features.textmarkdownwriterTasuku Suzuki2019-07-081-1/+1
| | | | | | | | | | | | | | | Change-Id: I30b39bb6ac4c24281c7fc87573936f62512ce015 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * QTextBrowser: assume Markdown is UTF-8Shawn Rutledge2019-07-083-4/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | That's how CommonMark specifies it. The HTML codec-guessing algorithm was making it fall back to Latin1 in practice, which was screwing up any Unicode characters found in the markdown source. Change-Id: I4021adc4a68591ecfd56ef24971af53ce3e9c96d Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
| | * QDBusConnectionInterface: Add activatableServiceNamesKai Uwe Broulik2019-07-072-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | This allows to query all names that can be activated on the bus. Change-Id: I8f894bf858eb18b67a074ca666ad3200ed99c373 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Q_ARRAY_LITERAL: protect the check for literal typesGiuseppe D'Angelo2019-07-062-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some compilers (hello, MSVC) do not produce literal types in Qt because their constexpr support has been blacklisted. Therefore, amend the check for literal types in Q_ARRAY_LITERAL: only do the check if the compiler supports constexpr. Change-Id: I7cffe00dde447d975aa6a7d02248df9c351508ff Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| | * Fontconfig font database: Short-circuit matching by filenameAndreas Hartmetz2019-07-061-22/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the filename matches, no other matching is necessary. Fontconfig doesn't have a fast path for that, so implement one here. Fontconfig is unlikely to add that fast path, see here: https://gitlab.freedesktop.org/fontconfig/fontconfig/issues/103 With -O1 builds of Qt and KDE stack, 358 fonts installed according to KDE systemsetting, on a Ryzen 1800X, startup time of kwrite decreases as following according to perf stat: msec task-clock: ~480 ms to ~455 ms cycles: ~1.73e9 to ~1.65e9 Change-Id: I630a80e4bed2647d5bbd95247005aab7d0cb0363 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | * QtNetwork: port remaining uses of QMutex::Recursive to QRecursiveMutexMarc Mutz2019-07-065-11/+8
| | | | | | | | | | | | | | | | | | | | | In one case, added NSDMI to avoid churning the ctor-init-list. Change-Id: I5587d5cb7e393f60ad29cb5186127304d27d1d46 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * QtGui: port from QMutex::Recursive to QRecursiveMutexMarc Mutz2019-07-065-11/+9
| | | | | | | | | | | | | | | Change-Id: I1ce4fcfa1bfb9a89fe3ebe61d049b9b3100fd700 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * QtNetwork: bearer: port from QMutex::Recursive to QRecursiveMutexMarc Mutz2019-07-066-8/+7
| | | | | | | | | | | | | | | | | | Change-Id: I691ecbaf9ea0796decbb48fd62b25d0a2941d979 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | * Port some trivial cases from QMutex to QRecursiveMutexMarc Mutz2019-07-068-20/+11
| | | | | | | | | | | | | | | | | | | | | In all of these cases, the effect of the change is local to one file. Change-Id: I3bda3aadee3b42e7797183c2330183390b92d1f2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Short live QRecursiveMutex!Marc Mutz2019-07-063-16/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the recursive mutex use case out of QMutex into a separate class, unsurprisingly called QRecursiveMutex. As an immediate benefit, 90% of the QMutex users now enjoy a constexpr QMutex ctor. This change prepares for a real split in Qt 6, so that both use-cases are no longer bundled up in one class. [ChangeLog][QtCore][QMutex] Added QRecursiveMutex as a replacement of QMutex(QMutex::Recursive). Change-Id: I79b8724e8a8ee65e4bd0f06acd76103fe4197b8c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| | * Fix build without features.itemmodelTasuku Suzuki2019-07-063-1/+13
| | | | | | | | | | | | | | | | | | Change-Id: I1235bed395a47438bc18571e2331a3432e274dec Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * Fix build without features.mimetypeTasuku Suzuki2019-07-061-1/+0
| | | | | | | | | | | | | | | Change-Id: I8c5521c5cfbc6c13c78d2bc8805fa5a021675b6c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * Merge "Merge remote-tracking branch 'origin/5.13' into dev"Liang Qi2019-07-0518-41/+133
| | |\
| | | * Merge remote-tracking branch 'origin/5.13' into devLiang Qi2019-07-0518-41/+133
| | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf qmake/generators/makefile.cpp Change-Id: Ifb2633a69d0bf8cdf12d799c6259beefc279c49e
| | | | * CMake: Fix handling of static dependencies that have spaces in pathAlexandru Croitor2019-07-052-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The absolute paths of certain static dependencies can have spaces in them. The _qt5_$${CMAKE_MODULE_NAME}_process_prl_file fails to handle this, and simply replaces all spaces with semicolons, which obviously breaks the list of dependencies, and a consuming application fails to link with a message like: LINK : fatal error LNK1181: cannot open input file 'C:\Program.obj' This change partially restores the functionality that was added in 102e1822ffcdc9954d3c698f863734a8083e349c specifically the part that changes qmake to export an additional variable QMAKE_PRL_LIBS_FOR_CMAKE. This variable has the same content as QMAKE_PRL_LIBS except it uses a semicolon as a separator, so that CMake can correctly parse the separate lib entries. This is much cleaner than trying to parse the original QMAKE_PRL_LIBS variable with a complicated regular expression. Amends eda28621f6c1a68774719f382be53ec109123b18. Task-number: QTBUG-38913 Change-Id: I1d18fb779606505bc92320d8ce13232c7022e212 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>