summaryrefslogtreecommitdiff
path: root/src/macdeployqt/shared/shared.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.9' into 5.105.10Liang Qi2018-02-021-1/+7
|\ | | | | | | | | | | | | Conflicts: src/qtattributionsscanner/main.cpp Change-Id: Ic509d457547ec64122b17511563de5ea3e1b1b44
| * macdeployqt: Implement selection of file system for .dmg fileSamuel Gaist2018-01-231-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: 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>
* | 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-021-2/+14
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | 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-271-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-101-17/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | 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-191-49/+71
|\ \ | |/ | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I5fde87a1ac22e933c926e0d86996791a38d92c4e
| * Fix macdeployqt usage when client application has no rpath to Qt libs.Jake Petroules2016-05-101-49/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-071-23/+50
|\ \ | |/ | | | | Change-Id: Ia63495458a292b9f4eb1f3f7b5961479bc7711e6
| * macdeployqt: Fix code-signing errors.Alexandru Croitor2016-02-231-23/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-191-7/+75
|\ \ | |/ | | | | | | | | | | 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>
| * Fix macdeployqt to properly sign inner bundles.Alexandru Croitor2016-01-281-6/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | QtWebEngine uses a framework called QtWebEngineCore which contains an inner bundle called QtWebEngineProcess.app. Because it was not signed in the proper order, the whole signing process failed. Fix consists in checking if there are any inner app bundles inside frameworks, and sign them before signing the rest of the main bundle. Change-Id: I48abe26d1e61cd1ce17cb185bcd8d1d72f6c9607 Task-number: QTBUG-50636 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* | macdeployqt: top-level framework deploymentMorten Johan Sørvig2016-01-131-0/+29
|/ | | | | | | | | | | | | | | | | Create frameworks that can be added to Xcode projects. The intention is to improve interop with Swift: The parts of the application that uses Qt can be built as a framework and expose an (objective) C API. Xcode can then link and code sign the framework without needing to know details about the Qt build system and tools (moc, rcc, etc) One (undocumented) feature flag is added: -deploy-framework: enables the framework "fixup" code. Change-Id: I53f2ccb90ec5efb1d58795b03f4b01499b6bdc84 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* macdeployqt: Work around broken QLibraryInfoMorten Johan Sørvig2015-08-131-1/+8
| | | | | | | | | Add fallback code path for locating qmlimportscanner relative to the macdeployqt binary. Task-number: QTBUG-46404 Change-Id: I9c837b5da518af45cef1292f9cd0422fccba8e5f Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* macdeployqt: halt on missing qmlimportscannerMorten Johan Sørvig2015-08-131-4/+5
| | | | | | | | This is going to produce a broken bundle; stop and print the error. Change-Id: Ie58d357b97adc229393d80e9dde5e10c65c9bc99 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* macdeployqt: strip the application binaryMorten Johan Sørvig2015-08-131-0/+5
| | | | | | | | | | In addition to running 'strip' on the framework and plugin binaries. Change-Id: I90b1f50f8212d1399933d4cd5c35aaee8e5212f2 Task-number: QTBUG-17447 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* Add option for skipping use of private API.Morten Johan Sørvig2015-08-131-2/+14
| | | | | | | | | | | | | | | | | | | | The qsqlodbc and qsqlpsql are known to cause rejections from the Mac App store due to use of private/deprecated API. The plugins are deployed whenever the SQL module is used. Due to this corse granularity of plugin selection apps may find themselves rejected for plugins which they are not actually using. Make macdeployqt print a warning when sqlodbc or sqlpsql is deployed. Add "-appstore-compliant" which will skip deployment of the plugins. Task-number: QTBUG-37835 Task-number: QTBUG-38607 Change-Id: I7325156ffaf228a97d7ceeb12f329b3f10db4ff2 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* macdeployqt: Workaround for QtQuick.PrivateWidgetsMorten Johan Sørvig2015-08-131-0/+20
| | | | | | | | | Deploy PrivateWidgets if QtWidget.framework and QtQuick.Controls is in use. Task-number: QTBUG-45977 Change-Id: Id2d7af8895be136d84bed92043fc790b156d8dea Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* macdeployqt: fix QML import deps deploymentMorten Johan Sørvig2015-08-131-0/+16
| | | | | | | | | | | | | The plugin deployment step needs to run after QML imports deployment in order to take frameworks added by QML imports into account. Move deployPlugins() down. Update deploymentInfo. deployedFrameworks after deployQmlImports() has run. Change-Id: I1d9ce827b1c0205ec37f027d03a9b4a2bb846801 Task-number: QTBUG-46981 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* Fix QML imports deployment when using pathMorten Johan Sørvig2015-08-131-7/+6
| | | | | | | | | | | | | | | | | During deployment the value of LC_RPATH on the main executable gets updated with a new value pointing inside the app bundle. This happens before QML import deployment, which means reading LC_RPATH at QML import deployment time will not give the correct value. Use the cached value stored in the DeploymentInfo structure instead, which will point back to the Qt installation. Task-number: QTBUG-47390 Change-Id: Ide84240de408d2338c9f7a68a73849263ce69dff Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* macdeployqt: Fix rpath setting for additional executablesEike Ziller2015-06-151-6/+10
| | | | | | | | | | Additional executables can lie anywhere within the app bundle, so we have to individually calculate the corresponding rpath instead of hard coding to @loader_path/../Frameworks. Task-number: QTBUG-46660 Change-Id: If213ad002b38a6690a30e7aeae47e201fdc4800c Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* macdeployqt: fix plugin deployment.Morten Johan Sørvig2015-06-081-0/+1
| | | | | | | | | | | | Set deploymentInfo.deployedFrameworks again, which was accidentally removed by ad31b989. (The plugin deployment logic uses deployedFrameworks to determine which plugins to deploy.) Task-number: QTBUG-46494 Change-Id: I0d6168cc8e646d519578d24dc0a35f0836d3be7b Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
* macdeployqt: Support Qt frameworks using rpathAdam Strzelecki2015-04-101-20/+195
| | | | | | | | | | | This makes macdeployqt understand dependencies expressed with @rpath prefix which are resolved using Mach-O LC_RPATH commands. Follows up c0a54efc4091b365ffac09fc2827cf92f849d698 from qtbase. Task-number: QTBUG-31814 Change-Id: I83156815e236ae52306aaecfc84f99d097284fa8 Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Frederik Gladhorn2015-02-201-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: LICENSE.LGPLv21 LICENSE.LGPLv3 src/assistant/assistant/mainwindow.cpp src/designer/src/designer/versiondialog.cpp src/linguist/linguist/mainwindow.cpp src/linguist/lrelease/lrelease.1 src/linguist/lupdate/lupdate.1 src/qconfig/main.cpp src/qdbus/qdbusviewer/mainwindow.cpp Change-Id: I8644f68ff02f00a377f82ea0b7520aa308f0a0df
| * MacDeployQt: Handle absolute pathsTim Murison2015-02-061-1/+1
| | | | | | | | | | | | | | | | | | Correctly compute 'cdupCount' when macdeployqt is invoked on an absolute path. Task-number: QTBUG-42954 Change-Id: Id7939610dfb4468b59fcb9dafc2e5da2b578ddba Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* | Update copyright headersAntti Kokko2015-02-141-7/+7
| | | | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I7f14f408e04c5c4f73a913fae153adcffbebe38f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Jani Heikkinen <jani.heikkinen@theqtcompany.com>
* | Merge remote-tracking branch 'gerrit/5.4' into devAlex Blasche2014-11-191-2/+15
|\ \ | |/ | | | | Change-Id: I3492eb21cb47e2a77dc5a79b3ddab8522ac39fea
| * macdeployqt: Also deploy framework's Libraries and HelpersJocelyn Turcotte2014-11-131-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QtWebEngine can't put all its external data in qrc files and have a few files lying around in the Qt installation. To allow it to be bundled with applications, those files are now placed into the QtWebEngineCore framework. This patch allows Helpers/QtWebEngineProcess.app as well as Libraries/ffmpegsumo.so to be deployed when macdeployqt is run on an application linking to QtWebEngine. This link mention that Libraries is a standard directory: https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html This link mention that Helpers is a standard directory for application bundles, but I haven't seen any mention regarding frameworks: https://developer.apple.com/library/mac/technotes/tn2206/_index.html Task-number: QTBUG-41611 Change-Id: I27f662747bd3dff4b9fc8706ecbd2f16f057e857 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-201-44/+276
|\ \ | |/ | | | | Change-Id: Ib8043f1dce5bcb3999965b91d3d7522fd1289eb0
| * Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-10-141-44/+276
| |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/assistant/assistant/mainwindow.cpp src/linguist/linguist/mainwindow.cpp src/qdbus/qdbusviewer/qdbusviewer.cpp Change-Id: I1f5524ab747be561ed0b13d8b1fd8cb51a890363