forked from qt-creator/qt-creator
QmlDesigner: Fix puppet paths
Change-Id: Ibb2d1bed31ef57a7d79a2baef5cbc69ab2092d72 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -145,6 +145,12 @@ Utils::FilePath defaultPuppetFallbackDirectory()
|
|||||||
return Core::ICore::libexecPath();
|
return Core::ICore::libexecPath();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Utils::FilePath qmlPuppetExecutablePath(const Utils::FilePath &workingDirectory)
|
||||||
|
{
|
||||||
|
return workingDirectory.pathAppended(QString{"qml2puppet-"} + Core::Constants::IDE_VERSION_LONG)
|
||||||
|
.withExecutableSuffix();
|
||||||
|
}
|
||||||
|
|
||||||
Utils::FilePath qmlPuppetFallbackDirectory(const DesignerSettings &settings)
|
Utils::FilePath qmlPuppetFallbackDirectory(const DesignerSettings &settings)
|
||||||
{
|
{
|
||||||
auto puppetFallbackDirectory = Utils::FilePath::fromString(
|
auto puppetFallbackDirectory = Utils::FilePath::fromString(
|
||||||
@@ -154,35 +160,37 @@ Utils::FilePath qmlPuppetFallbackDirectory(const DesignerSettings &settings)
|
|||||||
return puppetFallbackDirectory;
|
return puppetFallbackDirectory;
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FilePath workingDirectoryForKitPuppet(ProjectExplorer::Target *target)
|
std::pair<Utils::FilePath, Utils::FilePath> qmlPuppetFallbackPaths(const DesignerSettings &settings)
|
||||||
|
{
|
||||||
|
auto workingDirectory = qmlPuppetFallbackDirectory(settings);
|
||||||
|
|
||||||
|
return {workingDirectory, qmlPuppetExecutablePath(workingDirectory)};
|
||||||
|
}
|
||||||
|
|
||||||
|
std::pair<Utils::FilePath, Utils::FilePath> pathsForKitPuppet(ProjectExplorer::Target *target)
|
||||||
{
|
{
|
||||||
if (!target || !target->kit())
|
if (!target || !target->kit())
|
||||||
return {};
|
return {};
|
||||||
|
|
||||||
QtSupport::QtVersion *currentQtVersion = QtSupport::QtKitAspect::qtVersion(target->kit());
|
QtSupport::QtVersion *currentQtVersion = QtSupport::QtKitAspect::qtVersion(target->kit());
|
||||||
|
|
||||||
if (currentQtVersion)
|
if (currentQtVersion) {
|
||||||
return currentQtVersion->binPath();
|
auto path = currentQtVersion->binPath();
|
||||||
|
return {path, qmlPuppetExecutablePath(path)};
|
||||||
|
}
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FilePath qmlPuppetWorkingDirectory(ProjectExplorer::Target *target,
|
std::pair<Utils::FilePath, Utils::FilePath> qmlPuppetPaths(ProjectExplorer::Target *target,
|
||||||
const DesignerSettings &settings)
|
const DesignerSettings &settings)
|
||||||
{
|
{
|
||||||
auto path = workingDirectoryForKitPuppet(target);
|
auto [workingDirectoryPath, puppetPath] = pathsForKitPuppet(target);
|
||||||
|
|
||||||
if (path.isEmpty())
|
if (workingDirectoryPath.isEmpty() || !puppetPath.exists())
|
||||||
return qmlPuppetFallbackDirectory(settings);
|
return qmlPuppetFallbackPaths(settings);
|
||||||
|
|
||||||
return path;
|
return {workingDirectoryPath, puppetPath};
|
||||||
}
|
|
||||||
|
|
||||||
QString qmlPuppetExecutablePath(const Utils::FilePath &workingDirectory)
|
|
||||||
{
|
|
||||||
return workingDirectory.pathAppended(QString{"qml2puppet-"} + Core::Constants::IDE_VERSION_LONG)
|
|
||||||
.withExecutableSuffix()
|
|
||||||
.toString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isForcingFreeType(ProjectExplorer::Target *target)
|
bool isForcingFreeType(ProjectExplorer::Target *target)
|
||||||
@@ -211,9 +219,9 @@ PuppetStartData ExternalDependencies::puppetStartData(const Model &model) const
|
|||||||
{
|
{
|
||||||
PuppetStartData data;
|
PuppetStartData data;
|
||||||
auto target = ProjectExplorer::SessionManager::startupTarget();
|
auto target = ProjectExplorer::SessionManager::startupTarget();
|
||||||
auto workingDirectory = qmlPuppetWorkingDirectory(target, m_designerSettings);
|
auto [workingDirectory, puppetPath] = qmlPuppetPaths(target, m_designerSettings);
|
||||||
|
|
||||||
data.puppetPath = qmlPuppetExecutablePath(workingDirectory);
|
data.puppetPath = puppetPath.toString();
|
||||||
data.workingDirectoryPath = workingDirectory.toString();
|
data.workingDirectoryPath = workingDirectory.toString();
|
||||||
data.environment = PuppetEnvironmentBuilder::createEnvironment(target, m_designerSettings, model);
|
data.environment = PuppetEnvironmentBuilder::createEnvironment(target, m_designerSettings, model);
|
||||||
data.debugPuppet = m_designerSettings.value(DesignerSettingsKey::DEBUG_PUPPET).toString();
|
data.debugPuppet = m_designerSettings.value(DesignerSettingsKey::DEBUG_PUPPET).toString();
|
||||||
|
Reference in New Issue
Block a user