summaryrefslogtreecommitdiffstats
path: root/src/macdeployqt
Commit message (Collapse)AuthorAgeFilesLines
* Eradicate the last Java-style iterators and mark the module free of themMarc Mutz2019-07-121-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... and of QLinkedList. The change in QDesignerAbstractPropertySheetFactory is straight-forward. The rest are little buggers: - In macdeployqt, the code iterates inside an if. Weird, but portable. - In CppCodeParser, it's still somewhat harmless: just a call to std::remove_if to avoid running into quadratic complexity, even though the original loop had a good idea of iterating backwards, saving at least some copies in the process. Need to take care there that we continue to find the _first_ main.cpp, not the last, so add a check for mainCpp.isEmpty(). - In QtGradientStopsModel, however, needed to work around the absence of QMap::rbegin()/rend(), and it shows why they're missing: QMap's funky op* makes it impossible to just use std::reverse_iterator to do the heavy lifting. Use the recently-added QKeyValueIterator to get an approximation. I say 'approximation', because that one lacks operator->, so we need to use (*it).first, which brings back memories of Qt 2's iterators... Change-Id: I051e64b8d36b04ed2e7cf7695d9b797f08efaccb Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Remove usages of deprecated qSortSona Kurazyan2019-06-201-1/+1
| | | | | | Task-number: QTBUG-76491 Change-Id: Ied0ecb369697b3cc01fef7a2d91aa3940cdcd771 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-021-0/+10
|\ | | | | | | Change-Id: Id06ccca252abc84720b18909f55019266426eb97
| * macdeployqt: Deploy the platforminputcontext plugins and vkb pluginsAndy Shaw2019-02-271-0/+10
| | | | | | | | | | | | | | | | | | When the gui module is used then the platforminputcontext plugins should be deployed. Additionally if that includes the virtualkeyboard plugin then those should also be deployed with it. Change-Id: I2787792e91a9cfe3603a4e2e29273f682942bf36 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-02-191-1/+2
|\| | | | | | | Change-Id: If9dc5f167e9471b4633db73ae5a1cb8c1312b478
| * macdeployqt: Deploy QtSpeech tts pluginSamuel Gaist2019-02-121-1/+2
| | | | | | | | | | | | | | This patch adds deployment of the QtSpeech plugins. Change-Id: Ifc55f40cdc0ed6fd9444993c04f4d76249649daf Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | Avoid considering symlinks as bundle librariesFilipe Azevedo2019-01-071-4/+5
| | | | | | | | | | | | | | They already point to a regular file that will be hit at some point. Change-Id: Iaa4818090b41bf5a2ecea29f4ae5a8b4f5641059 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-11-031-1/+2
|\| | | | | | | Change-Id: Icff4035509596e277f4612cdfa9363cdaa5371bf
| * Merge remote-tracking branch 'origin/5.11' into 5.12Qt Forward Merge Bot2018-10-271-1/+2
| |\ | | | | | | | | | Change-Id: I59f4e4643896a857f30a50fb6d0758576e488e21
| | * macOS: Don't overwrite the dylibs with the DWARF copyAndy Shaw2018-10-231-1/+2
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-57265 Change-Id: I54320275aa614e76b65fdc82bb87a2850648bbdc Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | | Add option to specify qmlimportscanner importPathsIlya Bizyaev2018-10-313-4/+16
|/ / | | | | | | | | | | | | | | | | | | This patch adds a new option, -qmlimport, which enables macdeployqt to pass custom QML module import paths to qmlimportscanner. Fixes: QTBUG-70977 Change-Id: I39edfb88e48e05c42c6c4690efa3e728046baff3 Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
* | remove bogus gui dependency from macdeployqtOswald Buddenhagen2018-09-112-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ... and build it even when building with -nomake tools, like the other *deployqt tools. note that we still don't build it when cross-building for uikit, because the bootstrapped host build does not work due to a QProcess dependency. that's no loss, because all our uikit builds are currently static, where this tool is pointless. Task-number: QTBUG-58827 Change-Id: I8eda4a85716ceeb844a3e97f5f38d35868cffeef Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into 5.12Liang Qi2018-09-112-16/+31
|\| | | | | | | | | | | | | | | Conflicts: src/macdeployqt/shared/shared.h src/qdoc/sections.cpp Change-Id: I708a20d0061e82b99ecced7d24e7a2b8c475f706
| * macdeployqt: Deploy plugins when -no-framework is usedAndy Shaw2018-09-032-16/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When it was detecting the plugins to deploy, it would only work when Qt was configured as frameworks. This ensures that this case is accounted for. [ChangeLog][macdeployqt] Now deploys plugins when Qt is configured with -no-framework Fixes: 5.11.3 Fixes: 5.12.0 Task-number: QTBUG-68823 Change-Id: I05997150328a93c15609abc1759846b7a184f82a Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | We no longer need a workaround to include PrivateWidgetsAndy Shaw2018-07-051-25/+0
| | | | | | | | | | | | | | | | | | | | The dependencies are in place so it is no longer necessary to include PrivateWidgets manually as it is correctly included automatically when necessary. Task-number: QTBUG-69299 Change-Id: I7cdebf8b3b4375b6f6c9360eb20676f406456ba6 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | macdeployqt: Correctly handle bundling debug Qt libraries with @rpathTor Arne Vestbø2018-03-233-25/+44
|/ | | | | | | | | | | | | | | | | After rpath support was introduced, we lost the ability to explicitly bundle the debug version of the Qt libraries. We now make sure to always run install_name_tool so that the library dependencies are updated to the correct version, even in the case of @rpath. After 27239f4fcfa6f64d in qtbase, we also now directly link to the debug versions of Qt libraries when building the application in debug mode, so the code has been taught to handle this case, by not assuming that the library suffix is determined only by the -use-debug-libs command line argument. Task-number: QTBUG-48800 Change-Id: Ia7e058fa4d041fa1a7b8bdedc594750ee1f4cbfd Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Merge remote-tracking branch 'origin/5.10' into 5.11Liang Qi2018-02-123-3/+18
|\ | | | | | | Change-Id: I1b23f25c7add7a9bcb97c91696bea58a8f9c3b42
| * Merge remote-tracking branch 'origin/5.9' into 5.105.10Liang Qi2018-02-023-3/+18
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/qtattributionsscanner/main.cpp Change-Id: Ic509d457547ec64122b17511563de5ea3e1b1b44
| | * macdeployqt: Implement selection of file system for .dmg fileSamuel Gaist2018-01-233-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With macOS High Sierra, Apple machines using SSD see their file system changed for APFS automatically. hdiutil by default uses the current file system to build the dmg file which in this case makes them unusable on older version of macOS that don't have support for APFS. This patch adds an additional option to macdeployqt to select the file system to use when building the .dmg. It defaults to HFS+ which was the official file system used until now for all currently supported version of macOS. [ChangeLog][macdeployqt][feature] Added support for selecting the file system type to use when building a .dmg file. Defaults to HFS+ to support a wider range of macOS versions. Task-number: QTBUG-65844 Change-Id: Ic66856344f96c6536b224d13d309715b34eb0874 Reviewed-by: André Hartmann <aha_1980@gmx.de>
* | | macdeployqt: Handle deployment of QtWebView's pluginsChristian Strømme2018-01-271-0/+14
|/ / | | | | | | | | | | | | This change makes sure that the plugins are deployed correctly Change-Id: Ia967525bcbdf97f86385b68e5a4039f5b5f8ee20 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | macdeployqt: Add missing QtLocation and QtPositioning plugins deploymentSamuel Gaist2017-12-301-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | When deploying a QtLocation or QtPositioning based application, only the frameworks were deployed. This patch fixes this by also deploying the corresponding plugins. [ChangeLog][macOS][deployment] QtLocation and Qt Positioning plugins are now deployed along the frameworks. Change-Id: Ib3ceabcd86d69039dcd8ab6ae361ed6e3a5821a6 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | macdeployqt: refactor plugin handlingSamuel Gaist2017-12-301-14/+11
| | | | | | | | | | | | | | | | Rather than adding new cases per module, use a map that will make it cleaner to associate modules with their corresponding plugins. Change-Id: Ia745066ec394f72d64b4ffe74ece4bbbf48aa2ac Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-11-151-5/+17
|\| | | | | | | | | | | | | Conflicts: src/qtattributionsscanner/main.cpp Change-Id: Idb919f217f1dea42728fd9318fd9f48d9c3d3f29
| * macdeployqt sort QML modules before deploying themAurélien Gâteau2017-11-031-5/+17
| | | | | | | | | | | | | | | | | | | | Sorting QML modules makes sure a module is deployed before its sub-modules, avoiding the problem where macdeployqt would consider a module as deployed because one of its sub-module has already been deployed. Task-number: QTBUG-47067 Change-Id: I0ab8dd827fcd6eea0f0573157101ceb8f1a045fc Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | macdeployqt: Add missing Qt3D plugins deploymentSamuel Gaist2017-11-071-0/+11
| | | | | | | | | | | | | | | | | | | | | | When deploying a Qt3D application, only the frameworks were deployed. This patch fixes this by also deploying the corresponding plugins. [ChangeLog][macOS][deployment] Qt3D plugins are now deployed along the frameworks. Change-Id: I53f2f94ced10629d80d6a3d9af38a3f9517ae6bc Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Fix styles deployment in macdeployqtv5.10.0-beta4Eike Ziller2017-11-021-0/+3
| | | | | | | | | | | | | | Task-number: QTBUG-64078 Change-Id: I2c23e440d6355effa384a56a215e92115be75a35 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Reduce some code duplication in macdeployqtEike Ziller2017-11-021-45/+28
| | | | | | | | | | Change-Id: I52989b7b997999263df77361fdf75939c73f35f7 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-06-081-0/+7
|\| | | | | | | | | | | | | | | Conflicts: .qmake.conf src/windeployqt/main.cpp Change-Id: I2256565a75b8e1c63ef5aeb34fecb6929f94a1f1
| * Deploy the iconengines with the applicationAndy Shaw2017-05-231-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The iconengines should be deployed automatically since they could be used by the application without needing to explicitly include their dependency in the application. This brings it in line with what windeployqt does too. [ChangeLog][Platform Specific Changes][macOS] iconengines are deployed with the application when using macdeployqt. Task-number: QTBUG-59609 Change-Id: I7fd3bf9d55d2979f30a2ad7959a6a31919d49c8c Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-04-211-12/+5
|\| | | | | | | Change-Id: Ibd6137e1f7b706c0ab9998fe68d240825bd6b40d
| * macdeployqt: Fix code signingMorten Johan Sørvig2017-03-291-8/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were attempting to code sign bundle data files, which the logic in codesignBundle() is not designed to handle. This caused errors when trying to run otool on on .plist files etc. Remove the “catch all” code path that was added in commit 7d2b0968 and restrict codesignBundle() to work on executables. Task-number: QTBUG-54380 Change-Id: I9192d2876a0031a2feb19053c404196962ac22d4 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * Use join(QChar), join(QLatin1String) where applicableMarc Mutz2017-03-231-4/+4
| | | | | | | | | | | | | | | | They're faster/expand to less code. Change-Id: I4d79abb870c7b49784be17dc174ab68d98b1a75d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | Remove obsolete macdeployqt testsMorten Johan Sørvig2017-04-202-227/+0
| | | | | | | | | | | | | | | | These have been unmaintained from some time and no longer work. Change-Id: Ibfd96681fc6ca27269f1244096b96fe8c06494be Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | macdeployqt: Add a fix for cases when qt libraries are symlinkedAlexander Afanasyev2017-03-231-0/+6
|/ | | | | | Task-number: QTBUG-56814 Change-Id: If981cf5ac3a593cee4425edf547bbee57b12eb8c Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-11-041-5/+29
|\ | | | | | | Change-Id: I4ee208f69bed72c480c636cb18f22fd88c02d1e5
| * macOS: Handle -qtlibinfix correctly in macdeployqtAndy Shaw2016-10-261-5/+29
| | | | | | | | | | | | | | | | | | | | | | When Qt is configured with -qtlibinfix then it will insert the specified setting inside the framework names. Therefore QtCore.framework can be called QtCoreLibInfix.framework. This means that we have to account for this in macdeployqt when determining which plugins should be deployed. Change-Id: I30fc7434fa87d1b41c2cacfbc9f76d4ce5491329 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-022-2/+23
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/designer/src/designer/qdesigner.cpp One side changed Q_OS_MAC -> Q_OS_MACOS; the other changed it to Q_OS_OSX and combined with Q_OS_WIN. Kept the latter. tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result One side added some XML next to where another made a local change. Change-Id: I812b55fbaccc85baa9856aedf90f9258428dfcab
| * macdeployqt: add library search pathGuilherme Steinmann2016-07-272-2/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In earlier versions of OSX, the folder '/usr/lib/' is protected by default and user libraries cannot be copied to that folder. Alternatively, providing an option for alternative library search path would avoid missing libraries during the deploy. The addition of the option '-libpath=<path>' to macdeployqt adds a search path for the dependencies. If a dependency was not found in the provided path, the default folder for searching is used. [ChangeLog][macdeployqt] Added option '-libpath' to search libraries in a custom path. Change-Id: I3afee6aaa3bc25521adecb91ec59d104e13834ed Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-06-291-1/+7
|\| | | | | | | | | | | | | Conflicts: src/assistant/assistant/doc/src/assistant-manual.qdoc Change-Id: I136caf5f26eff4d1c2574459b8dff9937c2c372d
| * Bail out if otool returned unexpected output.Jake Petroules2016-06-081-0/+5
| | | | | | | | | | | | Change-Id: Ieb1d8056bc7326acce5556d29e9032812be72cd5 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| * Bail out if otool did not exit successfully.Jake Petroules2016-06-081-1/+2
| | | | | | | | | | | | Change-Id: Idfd46812020dc116ade8a819dc41b0955eb09b4e Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Updated license headers and license testsAntti Kokko2016-06-105-85/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | From Qt 5.7 -> tools & applications are licensed under GPL v3 with some exceptions, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new GPL-EXCEPT header instead of LGPL21 one (in those files which will be under GPL 3 with exceptions) License header tests also updated to match current headers. Change-Id: Ia6bdacaa3c5bbc9d31334e1a0cabfe502a484dc4 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* | Merge remote-tracking branch 'origin/5.6.1' into 5.7.0Liang Qi2016-05-261-10/+20
|\| | | | | | | Change-Id: I92f700c15556b5c8f5f6cd66c490190ea7c9a46c
| * Fix macdeployqt with certain library paths.Jake Petroules2016-05-261-10/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | macdeployqt assumed that relative library paths referred to a Qt library or framework that was not contained in any specific directory. This was broken in the case of paths like somedir/libfoo.dylib. macdeployqt now takes the additional path components into account. There was also a trailing space after ".dylib " which snuck in after refactoring to centralize otool output parsing which caused failures in Qt Creator deployment. Task-number: QTBUG-53533 Task-number: QTBUG-53563 Change-Id: I4296b7dd805d4866d3bf0db486366c30dece7add Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-192-49/+91
|\| | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I5fde87a1ac22e933c926e0d86996791a38d92c4e
| * Fix macdeployqt usage when client application has no rpath to Qt libs.Jake Petroules2016-05-102-49/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | macdeployqt used to determine the Qt library path from one of the Qt libraries linked to by the application (by searching its rpath list). However, if an application does not have an rpath pointing to the Qt library directory, macdeployqt cannot find the Qt libraries. This is likely when the application is built with a non-qmake build system like CMake or qbs. This patch adds the Qt library path (from QLibraryInfo) as a fallback search path to allow macdeployqt to find the Qt libraries and deploy them. Task-number: QTBUG-47868 Change-Id: Ie1d005955826b416c223a1bc6cac911d2ae44b20 Reviewed-by: Guilherme Steinmann <guidefloripa@gmail.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-03-072-24/+53
|\| | | | | | | Change-Id: Ia63495458a292b9f4eb1f3f7b5961479bc7711e6
| * macdeployqt: Fix code-signing errors.Alexandru Croitor2016-02-232-24/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Starting from Qt 5.6 all frameworks / plugins contain an embedded rpath. macdeployqt reads the rpath to get the dependencies which should be signed first, and because the rpath points to a "lib" directory which does not exist in the bundle structure, it shows errors. The solution is to additionally use the rpaths embedded in the bundle executable. Also because on 5.5 and previously rpaths were not included in frameworks, the getBinaryDependencies() always returned an empty set of dependencies, because it didn't have an rpath to resolve the paths to the dependencies (which was probably a bug). Now that the rpaths are present, the dependency list for a framework also contains itself as a dependency, which leads to an infinite loop while code-signing. The fix consists in not repeatedly adding binaries that were alread scheduled for code-singning. Change-Id: I97b418b90f325f88f375ffec83ad68c7dd4528ca Task-number: QTBUG-51101 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7v5.7.0-alpha1Liang Qi2016-02-192-8/+78
|\| | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: Ibd5f6052bd07152fbe344505308563d9857771e9
| * Remove deprecated signing option that causes warnings.Alexandru Croitor2016-01-291-1/+1
| | | | | | | | | | | | | | | | | | | | Codesign preserve-metadata option does not support the "resource-rules" value any more, it has been deprecated since OSX 10.10. Change-Id: Id993cfcc34a66edfa075a94d7d32804a64f45a6e Task-number: QTBUG-50636 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>