bool AndroidDeployStep::init() { m_packageName = AndroidManager::packageName(target()); const QString targetSDK = AndroidManager::targetSDK(target()); writeOutput(tr("Please wait, searching for a suitable device for target:%1.").arg(targetSDK)); m_deviceAPILevel = targetSDK.mid(targetSDK.indexOf(QLatin1Char('-')) + 1).toInt(); m_deviceSerialNumber = AndroidConfigurations::instance().getDeployDeviceSerialNumber(&m_deviceAPILevel); if (!m_deviceSerialNumber.length()) { m_deviceSerialNumber.clear(); raiseError(tr("Cannot deploy: no devices or emulators found for your package.")); return false; } QtSupport::BaseQtVersion *version = QtSupport::QtProfileInformation::qtVersion(target()->profile()); if (!version) return false; const Qt4BuildConfiguration *bc = static_cast<Qt4BuildConfiguration *>(target()->activeBuildConfiguration()); if (!bc) return false; m_qtVersionSourcePath = version->sourcePath().toString(); m_qtVersionQMakeBuildConfig = bc->qmakeBuildConfiguration(); m_androidDirPath = AndroidManager::dirPath(target()); m_apkPathDebug = AndroidManager::apkPath(target(), AndroidManager::DebugBuild).toString(); m_apkPathRelease = AndroidManager::apkPath(target(), AndroidManager::ReleaseBuildSigned).toString(); m_buildDirectory = static_cast<Qt4Project *>(target()->project())->rootQt4ProjectNode()->buildDir(); m_runQASIPackagePath = m_QASIPackagePath; m_runDeployAction = m_deployAction; return true; }
QmakeBuildInfo *QmakeBuildConfigurationFactory::createBuildInfo(const Kit *k, const QString &projectPath, BuildConfiguration::BuildType type) const { QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(k); QmakeBuildInfo *info = new QmakeBuildInfo(this); QString suffix; if (type == BuildConfiguration::Release) { //: The name of the release build configuration created by default for a qmake project. info->displayName = tr("Release"); //: Non-ASCII characters in directory suffix may cause build issues. suffix = tr("Release", "Shadow build directory suffix"); if (version && version->isQtQuickCompilerSupported()) info->config.useQtQuickCompiler = true; } else { if (type == BuildConfiguration::Debug) { //: The name of the debug build configuration created by default for a qmake project. info->displayName = tr("Debug"); //: Non-ASCII characters in directory suffix may cause build issues. suffix = tr("Debug", "Shadow build directory suffix"); } else if (type == BuildConfiguration::Profile) { //: The name of the profile build configuration created by default for a qmake project. info->displayName = tr("Profile"); //: Non-ASCII characters in directory suffix may cause build issues. suffix = tr("Profile", "Shadow build directory suffix"); info->config.separateDebugInfo = true; if (version && version->isQtQuickCompilerSupported()) info->config.useQtQuickCompiler = true; } if (version && version->isQmlDebuggingSupported()) info->config.linkQmlDebuggingQQ2 = true; } info->typeName = info->displayName; // Leave info->buildDirectory unset; info->kitId = k->id(); // check if this project is in the source directory: Utils::FileName projectFilePath = Utils::FileName::fromString(projectPath); if (version && version->isInSourceDirectory(projectFilePath)) { // assemble build directory QString projectDirectory = projectFilePath.toFileInfo().absolutePath(); QDir qtSourceDir = QDir(version->sourcePath().toString()); QString relativeProjectPath = qtSourceDir.relativeFilePath(projectDirectory); QString qtBuildDir = version->versionInfo().value(QStringLiteral("QT_INSTALL_PREFIX")); QString absoluteBuildPath = QDir::cleanPath(qtBuildDir + QLatin1Char('/') + relativeProjectPath); info->buildDirectory = Utils::FileName::fromString(absoluteBuildPath); } else { info->buildDirectory = defaultBuildDirectory(projectPath, k, suffix, type); } info->buildType = type; return info; }