aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/ios
Commit message (Collapse)AuthorAgeFilesLines
* iOS: Share code for simulator display nameEike Ziller2019-08-121-3/+7
| | | | | Change-Id: Iecfaa43aefc7ed783d4149dec008330ee5c124e9 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* iOS: Fix simulator listing with Xcode 11Eike Ziller2019-08-091-4/+11
| | | | | | | | | | | | | | | | | Xcode 11 changes the output of simctl slightly. At some point it introduced a bool "isAvailable" in addition to the string "availability". Now the latter has been removed. To avoid listing all devices as available, we need to adapt our simctl output parsing. This already takes effect when installing Xcode 11 Beta, even when not actually using it, since all Xcode versions share the simulator infrastructure. Fixes: QTCREATORBUG-22757 Change-Id: I1ef416f6c544db53d9ee99ccc3b0a2e97dfcc870 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* More Utils::toSet/toListhjk2019-07-041-1/+2
| | | | | | | ... and unrelated cosmetic changes. Change-Id: I591b17fd5289831e701b683f8fb47816efd1fa67 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Use more toList/toSet to avoid deprecation warningshjk2019-07-031-4/+4
| | | | | Change-Id: I43575a54ff944bf0e89d452d13944fcaee270208 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* connect() to ambiguous signals/slots: Replace static_cast with QOverloadAlessandro Portale2019-05-283-3/+3
| | | | | Change-Id: I473d7a2a16509cee944a2a21b022a3f6f02cfd8d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Utils: Rename FileName to FilePathhjk2019-05-2814-61/+61
| | | | | | | | More in line with QFileInfo terminonlogy which appears to be best-of-breed within Qt. Change-Id: I1d051ff1c8363ebd4ee56376451df45216c4c9ab Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Use an alias for QList<Abi>hjk2019-05-272-3/+3
| | | | | Change-Id: I69231c5974620ae30296bfc4e0ab41c900d95a3c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* iOS: Use base IDevice::clone() instead of local toMap/fromMaphjk2019-05-271-8/+4
| | | | | | | Some non-persistent data is handled in the base. Change-Id: I5f6c5429b88178115bf26f885b80fa3daebf227e Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* CMake build/macOS: Centrally detect system librariesEike Ziller2019-05-241-3/+1
| | | | | | | | | And realize that at most places (except native help viewer) the code using them is not optional on macOS. Change-Id: I308406a0e8f176dad4151d23a33cd3fc0fb8635c Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* iOS: Remove remaining FileName::appendPath useshjk2019-05-241-12/+8
| | | | | Change-Id: Ia550151bbcad696a3bd59e630e80a8f89a908e08 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* CMake build: Add ability to disable building of individual pluginsEike Ziller2019-05-231-5/+6
| | | | | | | | | | | | | | Adds a cache entry "BUILD_PLUGIN_${NAME}", defaulting to ON which can be set to OFF to disable building of a plugin. Adds a extend_qtc_plugin function that should be used to add properties to a plugin after add_qtc_plugin, instead of the standard CMake functions target_... . The new function results in a no-op if the plugin was disabled. Change-Id: I57f6799620aea0aaa8b56acead4815ccced95911 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* Ios: Fix typo in device factory creationChristian Kandeler2019-05-211-1/+1
| | | | | | | | | Introduced in 0c2101d816, but only started to cause problems since 555360c1d4. Fixes: QTCREATORBUG-22449 Change-Id: Id531d7cb94c80b762f7981cf3414348080d0d613 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Qt Creator CMake portCristian Adam2019-05-171-0/+33
| | | | | | | | | | | | | | Based on Tobias Hunger's work from a few months ago. The CMake configuration needs libclang and Qt paths specified as CMAKE_PREFIX_PATH. Auto tests are run with "ctest". At the moment the pass rate is 87%. Change-Id: Iba98e39bf22077d52706dce6c85986be67a6eab0 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* iOS: More FileName::appendPath -> pathAppended changeshjk2019-05-178-28/+21
| | | | | Change-Id: I3db6b1778e6e47e26e243fb2609c481651aa91fe Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* ProjectExplorer: Use Utils::FileName in ProcessParametershjk2019-05-152-8/+8
| | | | | | | For the command and the working directory. Change-Id: Ia69dc7100aeb57bb6e1b35f4dd4f3cf3763d8cda Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Utils: Replace FileName::FileName(QFileInfo) by a named constructorhjk2019-05-131-2/+2
| | | | | | | | | More consistent with the fromString case and avoiding false conversions QString -> QFileInfo -> FileName in case the inheritance of QString suddenly disappears. Change-Id: Ib14646ab1a660fd45dd1ea6862a0b5faa52ad0e3 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* ProjectExplorer: Drop Detection argument from ToolChain constructorhjk2019-05-101-1/+2
| | | | | | | | | | | | | This was used wildly inconsistently. Use a setter instead in circumstances where the context is reasonably clear. The assumption is that this will always be done at some time in all code paths. Use a new 'Uninitialized' value to avoid triggering the first update. Change-Id: I82c38cb9da3ccdbd8fbae8beefcbfa0e559ff794 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Use the fromMap(toMap()) pattern to clone deviceshjk2019-05-104-27/+5
| | | | | Change-Id: Ie6e73f5ef1019907dd311aac116d71f08b5a5202 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Replace ToolChainFactory::supportedLanguangehjk2019-05-092-6/+5
| | | | | | | ... by a member-based approach. Change-Id: I5c7fef196df6c37fd26c60a58c774426eca562a0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Ios: More IosBuildConfiguration aspectificationhjk2019-05-066-459/+370
| | | | | | | | Move IosBuildSettingsWidget closer to IosBuildConfiguration, start replacing bits by existing aspect functionality. Change-Id: I2016f0298f5e0c40d93c4d3bb144904453a5af02 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Ios: Inline IosBuildSettingsWidget uihjk2019-05-065-223/+143
| | | | | | | First mechanical baby-step towards using aspects in IosBuildConfiguration. Change-Id: I6eec5136ec05f0f26c3ca915fa7d84dccaafcb82 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Ios: Remove direct compile time dependency of IosRunConfig on qmakehjk2019-05-062-17/+10
| | | | | Change-Id: Ieb0cbc71b525972afb66883b010cbf389657c406 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Ios: Use aspects for build configuration date storagehjk2019-05-022-34/+30
| | | | | Change-Id: I6c14cd5acc5dcc820339ccc0e7ef7b30ca7724ab Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
* iOS: Fix buildNikolai Kosjar2019-04-251-1/+0
| | | | | Change-Id: Ie120067468d84dbfe9c4b1bb7cbfc3efd0a53a5f Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* iOS: Simplify IosDeployStep config widget setuphjk2019-04-256-139/+11
| | | | | | | There's nothing special here. Change-Id: Ifce935a7c6e8dd6d745d27353cde3f2c370d0abc Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* iOS: Use SimpleRunWorkerFactory instead of manual registrationhjk2019-04-031-11/+7
| | | | | | | Same result, less code, more fashionable. Change-Id: I43b0fcc6e5efb5e394b1652c3c9b34871cbe2fee Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* ProjectExplorer: More registerKit() simplificationsChristian Kandeler2019-03-121-1/+0
| | | | | Change-Id: I61c9e9886f3952b2823433a5c94aedd441ebe7f1 Reviewed-by: hjk <hjk@qt.io>
* Avoid some visible uses of RunControl::runConfiguration()hjk2019-03-121-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For a long time, probably from the very beginning, a RunControl was meant to hold (a copy of) data needed for its operation, that was valid at the time of its construction, to be resilient in cases where RunConfiguration setting were changed while the RunControl was running, or to properly re-run with the original settings. Unfortunately, the task was repetitive, as RunConfiguration classes had no generic access to properties / "aspects" and there was was the runConfiguration() accessor (probably for mostly unrelated reasons in the output pane handling) which made the idea of just casting that to the original runConfiguration and access the data directly there appealing, with all the expected consequences. This patch here partially addresses the issue by copying some more of the related data at RunControl construction time and adjust the using code, avoiding most uses of the runConfiguration() accessor in a mostly mechanical matter. Complete removal appears possible, but will be less mechanical in "difficult" plugins like ios, so this is left for later. The new accessors in RunControl are very much ad-hoc, leaving room for improvement, e.g. by consolidating the access to the run config settings aspects with the other runconfig aspects or similar. For now the goal is to remove the runConfiguration() accessor, and to as much as possible fixed data after RunControl setup is finished. Next step would be to officially allow construction of RunControls without a specific RunConfiguration by setting the necessary data independently, removing the need for the various workarounds that are currently used for the purpose of faking (parts of) the effect of the non-existing RunConfiguration or refusing to operate at all, even if it would be possible. Change-Id: If8e5596da8422c70e90f97270389adbe6d0b46f2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Refactor KitManager::registerKit()Christian Kandeler2019-03-121-11/+10
| | | | | | | | | | The interface of this function was rather unfortunate. In particluar, the fact that it took ownership of the std::unique_ptr that was passed in required some weird boiler plate code at all the calling sites. Instead, it now becomes a proper factory function. Change-Id: Iecdc6f6345232fc0f0a08bffaf8f1780edb57201 Reviewed-by: hjk <hjk@qt.io>
* Replace static_casts by QOverload where possiblehjk2019-02-261-1/+1
| | | | | | | | | Mainly to get rid of the QProcess::finished deprecation warning. Also adjust coding style in the surrounding connects when needed. Change-Id: I12f9b248c7974b892c4a069356e578e80f8c59e9 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* ProjectExplorer: Remove RunConfiguration::canRunForNode()hjk2019-02-262-6/+0
| | | | | | | | | | | | | All implementations that were returning true effectively did that in case of node->buildKey() == rc->buildKey(), either directly or in disguise of qmake's projectPath, so this is the check that is used now in the two places where this is used. The new global has the theoretical potential of return true in cases where it did not before. Change-Id: Ic5829de5fef0f9a04d516a3d9207685055823775 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* iOS: Code cosmeticshjk2019-02-254-46/+9
| | | | | | | Remove unused functions and declarations, brace style, empty lines, ... Change-Id: I1afe90484879fa93bb1feaa25d12cd4794aa0234 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Move IDeviceFactory closer to IDevice implementationhjk2019-02-2111-198/+54
| | | | | | | | | Except for the DesktopDevice, which is kind of special. Also try a bit to make (and partially fail at doing so) naming and code structure (#include, use of namespaces) more similar to each other. Change-Id: I9fe266e706b72c14f59ff03ca1ae02dba3adcc71 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QtSupport: Replace BaseQtVersion::clone()hjk2019-02-192-12/+0
| | | | | | | | | | | | | | | | ... by a mechanism that doesn't require re-implementation in each derived class. A QtVersion's type() is uniquely defined by the supported type of the factory creating it, so that factory can be found and used for cloning. Non-base data is copied by a fromMap(toMap()) dance as done in the project configurations. As a side-effect, the *QtVersion copy constructors are not used and not needed anymore. Change-Id: I3aa5a0fd90a27dd115769e0573647cb5669641a0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QtSupport: Provide implementation of BaseQtVersion::qtAbisFromLibrary()hjk2019-02-181-1/+1
| | | | | | | | Derived implementation either used that as-is, or used the result as part of their own operation. Change-Id: I2817c4e6c6701ae647a70e77382dd30c8ea2bd2f Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QtSupport et al: Move QtVersionFactory to *QtVersion implementationhjk2019-02-187-90/+21
| | | | | | | At most a dozen lines each left. Change-Id: Ifbf34f814266ba7bee83d3fee9db831eb450dfc4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QtSupport: Replace QtVersionFactory::canCreatehjk2019-02-152-8/+3
| | | | | | | | | | | | ... by a functor checking some ad-hoc custom structure content. This effectively replaces one ugliness (access to qmake specific variable via qmake specific ProFileEvaluator) by an indirection layer with similarly ungeneric contents, but I like the latter setup better. Change-Id: Iaee07c992fce4aabee2f4eae32a2413d772fe945 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QtSupport: Split QtVersionFactory::create()hjk2019-02-152-5/+3
| | | | | | | | | | | | ... into a 'canCreate()' and the actual creation, which can be done by the already registered m_creator. Simpler interface, with the (temporary) regression that the EmbeddedLinuxQtVersion get constructed twice, once only to determine that it should be alive afterwards. Will be fixed later. Change-Id: I5da2cafe473b25a0207bbd628632c9a259780361 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QtSupport: Drop one suite of QtVersion constructorshjk2019-02-154-12/+3
| | | | | | | Use default plus polish afterwards instead. Change-Id: Ibd137562128445a5bae5aaa4fc5fcce2df6c3e38 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QtSupport: Simplify use of QtVersionFactory::create()hjk2019-02-154-12/+7
| | | | | | | | Use two setters, one already pre-existing, to set autodetection data instead of passing that through the create/contructor chain. Change-Id: I8f9bdf2f82518aae765327a823bdea44210c2f96 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QtSupport: De-qobjectify QtVersionFactory hierarchyhjk2019-02-152-3/+2
| | | | | Change-Id: I6ceccf96f5f6a5dc4e33d667d4fc234e15b88926 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QtSupport: Move qmake existence check out of *QtVersionFactory::createhjk2019-02-151-2/+0
| | | | | | | | | Test globally in advance instead. For two factories that means a stricter check on the qmake executable but with qmake being a host tool the additional exists/executable check should be in order. Change-Id: Ib07ef19aeee2d0a19d4c38e178f3e20d22867c2c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QtSupport et al: Use more data members in QtVersionFactorieshjk2019-02-152-13/+2
| | | | | | | Same pattern as for the project configuration factories. Change-Id: Ia2f85eb2d787965f7a49be3bfe0be20c3f2aed8a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* QtSupport et al: Centralize QtVersionFactory::restorehjk2019-02-152-11/+1
| | | | | | | Similar to the various types of project *ConfigurationFactory Change-Id: I7b721f127c8bcc13c7db6880d36c79dd091bc037 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Rename KitInformation to KitAspectChristian Kandeler2019-02-119-43/+43
| | | | | | | | | | | The name "KitInformation" does not properly convey the fact that it represents a certain *aspect* of a kit. The same goes for "KitConfigWidget", which in addition was inconsistent with "KitInformation". We now use "KitAspect" and "KitAspectWidget". Change-Id: I9804ee4cedc4d61fad533ea1dd4e4720e67fde97 Reviewed-by: hjk <hjk@qt.io>
* iOS: Move updateAutomaticKitList() trigger closer to its userhjk2019-02-014-17/+12
| | | | | | | | This removes the IosPlugin::kitsRestored() member that does not fully fit the standard plugin implementation pattern. Change-Id: Iedd79e5326b85b189673c19e1920e21c34cd03bb Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* ProjectExplorer: Rework the build step run interfaceChristian Kandeler2019-01-316-31/+21
| | | | | | | | | | | | | | | | | | | | | Originally, the build manager used to run all build steps in a dedicated thread. Communication between the step and the manager happened via a QFutureInterface that was passed into the step's run() function. Later, new steps were added that operated asynchronously, so the build manager had to differentiate between the different kinds of steps for starting and stopping. These days, almost all build and deploy steps work asynchronously, which made the QFuture-based interface look increasingly odd. With this patch, all build steps are expected to work asynchronously, so the build manager no longer needs to differentiate. Steps are started and requested to stop via the run() and cancel() functions, respectively, and emit the finished() signal when they are done. Build step implementors no longer have to deal with a QFutureInterface. For steps whose implementation is inherently synchronous, the BuildStep base class offers a runInThread() function. Change-Id: If905c68b234c5a669f6e19f43142eaa57d594803 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Remove BuildConfigurationFactory::priorityhjk2019-01-311-1/+0
| | | | | | | | | | | | | | | It's essentially an intrusive hack that's used only to prioritize Ios+Qmake over plain Qmake. The effect is now achieved by an arguably equally evil dependency on the construction order of BuildConfiguration factories. It can be argued, however, that this is a feature as it allows user plugins to intentionally override core functionality by using the standard setup pattern and depending on the to-be- overridden plugin. Change-Id: Ic1efa305daf3ca19a880d2a7ccb40e2768d8f57c Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* ProjectExplorer: Use a addSupportedTargetDeviceType functionhjk2019-01-311-1/+2
| | | | | | | ... also for BuildConfigurationFactory, similar to Run and Deploy. Change-Id: I453f08bf145d6a2e764d150646c698d624ae2ce9 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* iOS: Move IosDeploy*Factory to pluginhjk2019-01-317-187/+31
| | | | | | Change-Id: I752a497ce95609cfb92207e1dfbc6cf91ffa9f3c Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Christian Stenger <christian.stenger@qt.io>