diff --git a/src/plugins/qmlprojectmanager/buildsystem/qmlbuildsystem.cpp b/src/plugins/qmlprojectmanager/buildsystem/qmlbuildsystem.cpp index 5a64c8b7de0..0a2fff5922f 100644 --- a/src/plugins/qmlprojectmanager/buildsystem/qmlbuildsystem.cpp +++ b/src/plugins/qmlprojectmanager/buildsystem/qmlbuildsystem.cpp @@ -527,6 +527,7 @@ Utils::FilePath QmlBuildSystem::targetFile(const Utils::FilePath &sourceFile) co const Utils::FilePath relative = sourceFile.relativePathFrom(sourceDir); return targetDirectory().resolvePath(relative); } + void QmlBuildSystem::setSupportedLanguages(QStringList languages) { m_projectItem->setSupportedLanguages(languages); @@ -725,9 +726,20 @@ QStringList QmlBuildSystem::absoluteImportPaths() const { return Utils::transform(m_projectItem->importPaths(), [&](const QString &importPath) { Utils::FilePath filePath = Utils::FilePath::fromString(importPath); - if (!filePath.isAbsolutePath()) - return (projectDirectory() / importPath).toString(); - return projectDirectory().resolvePath(importPath).toString(); + if (filePath.isAbsolutePath()) + return projectDirectory().resolvePath(importPath).path(); + return (projectDirectory() / importPath).path(); + }); +} + +QStringList QmlBuildSystem::targetImportPaths() const +{ + return Utils::transform(allImports(), [&](const QString &importPath) { + const Utils::FilePath filePath = Utils::FilePath::fromString(importPath); + if (filePath.isAbsolutePath()) { + return importPath; + } + return (targetDirectory() / importPath).path(); }); } diff --git a/src/plugins/qmlprojectmanager/buildsystem/qmlbuildsystem.h b/src/plugins/qmlprojectmanager/buildsystem/qmlbuildsystem.h index 22ea4e443e6..744608b4c18 100644 --- a/src/plugins/qmlprojectmanager/buildsystem/qmlbuildsystem.h +++ b/src/plugins/qmlprojectmanager/buildsystem/qmlbuildsystem.h @@ -75,6 +75,7 @@ public: QStringList importPaths() const; QStringList absoluteImportPaths() const; + QStringList targetImportPaths() const; QStringList fileSelectors() const; bool multilanguageSupport() const; diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp index 503738eba52..29fb4aac3fc 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp @@ -97,7 +97,7 @@ QmlProjectRunConfiguration::QmlProjectRunConfiguration(Target *target, Id id) // arguments from .qmlproject file const QmlBuildSystem *bs = qobject_cast(target->buildSystem()); - for (const QString &importPath : bs->absoluteImportPaths()) { + for (const QString &importPath : bs->targetImportPaths()) { cmd.addArg("-I"); cmd.addArg(importPath); }