CMake: Do not print warning if no run device is set

With an iOS kit, there is no run device set if no device is connected,
which triggered an assert.

Change-Id: I9c435c618daab2601973372efb84f9ddbe9c5998
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Eike Ziller
2023-08-23 11:51:30 +02:00
parent b506179145
commit da7c25e8da

View File

@@ -184,15 +184,16 @@ static QString initialStagingDir(Kit *kit)
static bool supportsStageForInstallation(const Kit *kit) static bool supportsStageForInstallation(const Kit *kit)
{ {
IDeviceConstPtr runDevice = DeviceKitAspect::device(kit); IDeviceConstPtr runDevice = DeviceKitAspect::device(kit);
Id runDeviceType = DeviceTypeKitAspect::deviceTypeId(kit);
IDeviceConstPtr buildDevice = BuildDeviceKitAspect::device(kit); IDeviceConstPtr buildDevice = BuildDeviceKitAspect::device(kit);
QTC_ASSERT(runDevice, return false); QTC_ASSERT(runDeviceType.isValid(), return false);
QTC_ASSERT(buildDevice, return false); QTC_ASSERT(buildDevice, return false);
return runDevice->id() != buildDevice->id() return (!runDevice || runDevice->id() != buildDevice->id())
&& runDevice->type() != Android::Constants::ANDROID_DEVICE_TYPE && runDeviceType != Android::Constants::ANDROID_DEVICE_TYPE
&& runDevice->type() != Ios::Constants::IOS_DEVICE_TYPE && runDeviceType != Ios::Constants::IOS_DEVICE_TYPE
&& runDevice->type() != Ios::Constants::IOS_SIMULATOR_TYPE && runDeviceType != Ios::Constants::IOS_SIMULATOR_TYPE
&& runDevice->type() != BareMetal::Constants::BareMetalOsType && runDeviceType != BareMetal::Constants::BareMetalOsType
&& runDevice->type() != WebAssembly::Constants::WEBASSEMBLY_DEVICE_TYPE; && runDeviceType != WebAssembly::Constants::WEBASSEMBLY_DEVICE_TYPE;
} }
CMakeBuildStep::CMakeBuildStep(BuildStepList *bsl, Id id) : CMakeBuildStep::CMakeBuildStep(BuildStepList *bsl, Id id) :