forked from qt-creator/qt-creator
ProjectExplorer: De-QObject-ify BuildConfigurationFactories
The QObject was not heavily used. Object name was for debugging only, translation context can be taken from the corresponding BuildConfiguration objects, the qobject_casts in the three big importers are replaced by dynamic_cast, which is good enough in that context. Take the opportunity to re-use translations from base BuildConfiguration for the common cases and sprinkle in some 'final'. Change-Id: I8e9727c98c6e943cb333556861c24e701c2bdf45 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -78,13 +78,13 @@ AutotoolsBuildConfigurationFactory::AutotoolsBuildConfigurationFactory()
|
|||||||
|
|
||||||
setBuildGenerator([this](const Kit *k, const FilePath &projectPath, bool forSetup) {
|
setBuildGenerator([this](const Kit *k, const FilePath &projectPath, bool forSetup) {
|
||||||
BuildInfo info(this);
|
BuildInfo info(this);
|
||||||
info.typeName = tr("Build");
|
info.typeName = BuildConfiguration::tr("Build");
|
||||||
info.buildDirectory = forSetup
|
info.buildDirectory = forSetup
|
||||||
? FilePath::fromString(projectPath.toFileInfo().absolutePath()) : projectPath;
|
? FilePath::fromString(projectPath.toFileInfo().absolutePath()) : projectPath;
|
||||||
info.kitId = k->id();
|
info.kitId = k->id();
|
||||||
if (forSetup) {
|
if (forSetup) {
|
||||||
//: The name of the build configuration created by default for a autotools project.
|
//: The name of the build configuration created by default for a autotools project.
|
||||||
info.displayName = tr("Default");
|
info.displayName = BuildConfiguration::tr("Default");
|
||||||
}
|
}
|
||||||
return QList<BuildInfo>{info};
|
return QList<BuildInfo>{info};
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -40,10 +40,8 @@ class AutotoolsBuildConfiguration : public ProjectExplorer::BuildConfiguration
|
|||||||
AutotoolsBuildConfiguration(ProjectExplorer::Target *target, Core::Id id);
|
AutotoolsBuildConfiguration(ProjectExplorer::Target *target, Core::Id id);
|
||||||
};
|
};
|
||||||
|
|
||||||
class AutotoolsBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
|
class AutotoolsBuildConfigurationFactory final : public ProjectExplorer::BuildConfigurationFactory
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
AutotoolsBuildConfigurationFactory();
|
AutotoolsBuildConfigurationFactory();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -467,27 +467,27 @@ BuildInfo CMakeBuildConfigurationFactory::createBuildInfo(const Kit *k,
|
|||||||
switch (buildType) {
|
switch (buildType) {
|
||||||
case BuildTypeNone:
|
case BuildTypeNone:
|
||||||
info.typeName = "Build";
|
info.typeName = "Build";
|
||||||
info.displayName = tr("Build");
|
info.displayName = BuildConfiguration::tr("Build");
|
||||||
info.buildType = BuildConfiguration::Unknown;
|
info.buildType = BuildConfiguration::Unknown;
|
||||||
break;
|
break;
|
||||||
case BuildTypeDebug:
|
case BuildTypeDebug:
|
||||||
info.typeName = "Debug";
|
info.typeName = "Debug";
|
||||||
info.displayName = tr("Debug");
|
info.displayName = BuildConfiguration::tr("Debug");
|
||||||
info.buildType = BuildConfiguration::Debug;
|
info.buildType = BuildConfiguration::Debug;
|
||||||
break;
|
break;
|
||||||
case BuildTypeRelease:
|
case BuildTypeRelease:
|
||||||
info.typeName = "Release";
|
info.typeName = "Release";
|
||||||
info.displayName = tr("Release");
|
info.displayName = BuildConfiguration::tr("Release");
|
||||||
info.buildType = BuildConfiguration::Release;
|
info.buildType = BuildConfiguration::Release;
|
||||||
break;
|
break;
|
||||||
case BuildTypeMinSizeRel:
|
case BuildTypeMinSizeRel:
|
||||||
info.typeName = "MinSizeRel";
|
info.typeName = "MinSizeRel";
|
||||||
info.displayName = tr("Minimum Size Release");
|
info.displayName = CMakeBuildConfiguration::tr("Minimum Size Release");
|
||||||
info.buildType = BuildConfiguration::Release;
|
info.buildType = BuildConfiguration::Release;
|
||||||
break;
|
break;
|
||||||
case BuildTypeRelWithDebInfo:
|
case BuildTypeRelWithDebInfo:
|
||||||
info.typeName = "RelWithDebInfo";
|
info.typeName = "RelWithDebInfo";
|
||||||
info.displayName = tr("Release with Debug Information");
|
info.displayName = CMakeBuildConfiguration::tr("Release with Debug Information");
|
||||||
info.buildType = BuildConfiguration::Profile;
|
info.buildType = BuildConfiguration::Profile;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -109,10 +109,8 @@ private:
|
|||||||
|
|
||||||
class CMakeProjectImporter;
|
class CMakeProjectImporter;
|
||||||
|
|
||||||
class CMakeBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
|
class CMakeBuildConfigurationFactory final : public ProjectExplorer::BuildConfigurationFactory
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CMakeBuildConfigurationFactory();
|
CMakeBuildConfigurationFactory();
|
||||||
|
|
||||||
|
|||||||
@@ -338,7 +338,7 @@ Kit *CMakeProjectImporter::createKit(void *directoryData) const
|
|||||||
const QList<BuildInfo> CMakeProjectImporter::buildInfoListForKit(const Kit *k, void *directoryData) const
|
const QList<BuildInfo> CMakeProjectImporter::buildInfoListForKit(const Kit *k, void *directoryData) const
|
||||||
{
|
{
|
||||||
auto data = static_cast<const DirectoryData *>(directoryData);
|
auto data = static_cast<const DirectoryData *>(directoryData);
|
||||||
auto factory = qobject_cast<CMakeBuildConfigurationFactory *>(
|
auto factory = dynamic_cast<CMakeBuildConfigurationFactory *>(
|
||||||
BuildConfigurationFactory::find(k, projectFilePath()));
|
BuildConfigurationFactory::find(k, projectFilePath()));
|
||||||
if (!factory)
|
if (!factory)
|
||||||
return {};
|
return {};
|
||||||
|
|||||||
@@ -540,7 +540,7 @@ CompilationDatabaseBuildConfigurationFactory::CompilationDatabaseBuildConfigurat
|
|||||||
setSupportedProjectMimeTypeName(Constants::COMPILATIONDATABASEMIMETYPE);
|
setSupportedProjectMimeTypeName(Constants::COMPILATIONDATABASEMIMETYPE);
|
||||||
|
|
||||||
setBuildGenerator([this](const Kit *kit, const FilePath &projectPath, bool) {
|
setBuildGenerator([this](const Kit *kit, const FilePath &projectPath, bool) {
|
||||||
const QString name = tr("Release");
|
const QString name = BuildConfiguration::tr("Release");
|
||||||
ProjectExplorer::BuildInfo info(this);
|
ProjectExplorer::BuildInfo info(this);
|
||||||
info.typeName = name;
|
info.typeName = name;
|
||||||
info.displayName = name;
|
info.displayName = name;
|
||||||
|
|||||||
@@ -94,10 +94,8 @@ public:
|
|||||||
CompilationDatabaseEditorFactory();
|
CompilationDatabaseEditorFactory();
|
||||||
};
|
};
|
||||||
|
|
||||||
class CompilationDatabaseBuildConfigurationFactory
|
class CompilationDatabaseBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
|
||||||
: public ProjectExplorer::BuildConfigurationFactory
|
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
public:
|
public:
|
||||||
CompilationDatabaseBuildConfigurationFactory();
|
CompilationDatabaseBuildConfigurationFactory();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -65,9 +65,7 @@ GenericBuildConfiguration::GenericBuildConfiguration(Target *parent, Core::Id id
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*!
|
// GenericBuildConfigurationFactory
|
||||||
\class GenericBuildConfigurationFactory
|
|
||||||
*/
|
|
||||||
|
|
||||||
GenericBuildConfigurationFactory::GenericBuildConfigurationFactory()
|
GenericBuildConfigurationFactory::GenericBuildConfigurationFactory()
|
||||||
{
|
{
|
||||||
@@ -79,13 +77,13 @@ GenericBuildConfigurationFactory::GenericBuildConfigurationFactory()
|
|||||||
|
|
||||||
setBuildGenerator([this](const Kit *k, const FilePath &projectPath, bool forSetup) {
|
setBuildGenerator([this](const Kit *k, const FilePath &projectPath, bool forSetup) {
|
||||||
BuildInfo info(this);
|
BuildInfo info(this);
|
||||||
info.typeName = tr("Build");
|
info.typeName = BuildConfiguration::tr("Build");
|
||||||
info.buildDirectory = forSetup ? Project::projectDirectory(projectPath) : projectPath;
|
info.buildDirectory = forSetup ? Project::projectDirectory(projectPath) : projectPath;
|
||||||
info.kitId = k->id();
|
info.kitId = k->id();
|
||||||
|
|
||||||
if (forSetup) {
|
if (forSetup) {
|
||||||
//: The name of the build configuration created by default for a generic project.
|
//: The name of the build configuration created by default for a generic project.
|
||||||
info.displayName = tr("Default");
|
info.displayName = BuildConfiguration::tr("Default");
|
||||||
}
|
}
|
||||||
|
|
||||||
return QList<BuildInfo>{info};
|
return QList<BuildInfo>{info};
|
||||||
|
|||||||
@@ -40,10 +40,8 @@ class GenericBuildConfiguration : public ProjectExplorer::BuildConfiguration
|
|||||||
void addToEnvironment(Utils::Environment &env) const final;
|
void addToEnvironment(Utils::Environment &env) const final;
|
||||||
};
|
};
|
||||||
|
|
||||||
class GenericBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
|
class GenericBuildConfigurationFactory final : public ProjectExplorer::BuildConfigurationFactory
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
GenericBuildConfigurationFactory();
|
GenericBuildConfigurationFactory();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -99,8 +99,8 @@ NimbleBuildConfigurationFactory::NimbleBuildConfigurationFactory()
|
|||||||
return info;
|
return info;
|
||||||
};
|
};
|
||||||
return QList<BuildInfo>{
|
return QList<BuildInfo>{
|
||||||
oneBuild(BuildConfiguration::Debug, tr("Debug")),
|
oneBuild(BuildConfiguration::Debug, BuildConfiguration::tr("Debug")),
|
||||||
oneBuild(BuildConfiguration::Release, tr("Release"))
|
oneBuild(BuildConfiguration::Release, BuildConfiguration::tr("Release"))
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,12 +48,10 @@ private:
|
|||||||
BuildType m_buildType;
|
BuildType m_buildType;
|
||||||
};
|
};
|
||||||
|
|
||||||
class NimbleBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
|
class NimbleBuildConfigurationFactory final : public ProjectExplorer::BuildConfigurationFactory
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
NimbleBuildConfigurationFactory();
|
NimbleBuildConfigurationFactory();
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
} // Nim
|
||||||
|
|||||||
@@ -148,8 +148,8 @@ NimBuildConfigurationFactory::NimBuildConfigurationFactory()
|
|||||||
return info;
|
return info;
|
||||||
};
|
};
|
||||||
return QList<BuildInfo>{
|
return QList<BuildInfo>{
|
||||||
oneBuild(BuildConfiguration::Debug, tr("Debug")),
|
oneBuild(BuildConfiguration::Debug, BuildConfiguration::tr("Debug")),
|
||||||
oneBuild(BuildConfiguration::Release, tr("Release"))
|
oneBuild(BuildConfiguration::Release, BuildConfiguration::tr("Release"))
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,12 +52,10 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class NimBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
|
class NimBuildConfigurationFactory final : public ProjectExplorer::BuildConfigurationFactory
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
NimBuildConfigurationFactory();
|
NimBuildConfigurationFactory();
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
} // Nim
|
||||||
|
|||||||
@@ -132,13 +132,14 @@ private:
|
|||||||
Internal::BuildConfigurationPrivate *d = nullptr;
|
Internal::BuildConfigurationPrivate *d = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
class PROJECTEXPLORER_EXPORT BuildConfigurationFactory : public QObject
|
class PROJECTEXPLORER_EXPORT BuildConfigurationFactory
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
BuildConfigurationFactory();
|
BuildConfigurationFactory();
|
||||||
~BuildConfigurationFactory() override;
|
BuildConfigurationFactory(const BuildConfigurationFactory &) = delete;
|
||||||
|
BuildConfigurationFactory &operator=(const BuildConfigurationFactory &) = delete;
|
||||||
|
|
||||||
|
virtual ~BuildConfigurationFactory(); // Needed for dynamic_casts in importers.
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// List of build information that can be used to create a new build configuration via
|
// List of build information that can be used to create a new build configuration via
|
||||||
@@ -178,7 +179,6 @@ protected:
|
|||||||
template <class BuildConfig>
|
template <class BuildConfig>
|
||||||
void registerBuildConfiguration(Core::Id buildConfigId)
|
void registerBuildConfiguration(Core::Id buildConfigId)
|
||||||
{
|
{
|
||||||
setObjectName(buildConfigId.toString() + "BuildConfigurationFactory");
|
|
||||||
m_creator = [buildConfigId](Target *t) { return new BuildConfig(t, buildConfigId); };
|
m_creator = [buildConfigId](Target *t) { return new BuildConfig(t, buildConfigId); };
|
||||||
m_buildConfigId = buildConfigId;
|
m_buildConfigId = buildConfigId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -430,20 +430,18 @@ QbsBuildConfigurationFactory::QbsBuildConfigurationFactory()
|
|||||||
|
|
||||||
BuildInfo info = createBuildInfo(k, BuildConfiguration::Debug);
|
BuildInfo info = createBuildInfo(k, BuildConfiguration::Debug);
|
||||||
//: The name of the debug build configuration created by default for a qbs project.
|
//: The name of the debug build configuration created by default for a qbs project.
|
||||||
info.displayName = tr("Debug");
|
info.displayName = BuildConfiguration::tr("Debug");
|
||||||
//: Non-ASCII characters in directory suffix may cause build issues.
|
//: Non-ASCII characters in directory suffix may cause build issues.
|
||||||
info.buildDirectory
|
const QString dbg = QbsBuildConfiguration::tr("Debug", "Shadow build directory suffix");
|
||||||
= defaultBuildDirectory(projectPath, k, tr("Debug", "Shadow build directory suffix"),
|
info.buildDirectory = defaultBuildDirectory(projectPath, k, dbg, info.buildType);
|
||||||
info.buildType);
|
|
||||||
result << info;
|
result << info;
|
||||||
|
|
||||||
info = createBuildInfo(k, BuildConfiguration::Release);
|
info = createBuildInfo(k, BuildConfiguration::Release);
|
||||||
//: The name of the release build configuration created by default for a qbs project.
|
//: The name of the release build configuration created by default for a qbs project.
|
||||||
info.displayName = tr("Release");
|
info.displayName = BuildConfiguration::tr("Release");
|
||||||
//: Non-ASCII characters in directory suffix may cause build issues.
|
//: Non-ASCII characters in directory suffix may cause build issues.
|
||||||
info.buildDirectory
|
const QString rel = QbsBuildConfiguration::tr("Release", "Shadow build directory suffix");
|
||||||
= defaultBuildDirectory(projectPath, k, tr("Release", "Shadow build directory suffix"),
|
info.buildDirectory = defaultBuildDirectory(projectPath, k, rel, info.buildType);
|
||||||
info.buildType);
|
|
||||||
result << info;
|
result << info;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@@ -462,7 +460,7 @@ BuildInfo QbsBuildConfigurationFactory::createBuildInfo(const Kit *k,
|
|||||||
BuildInfo info(this);
|
BuildInfo info(this);
|
||||||
info.kitId = k->id();
|
info.kitId = k->id();
|
||||||
info.buildType = type;
|
info.buildType = type;
|
||||||
info.typeName = tr("Build");
|
info.typeName = BuildConfiguration::tr("Build");
|
||||||
QVariantMap config;
|
QVariantMap config;
|
||||||
config.insert("configName", type == BuildConfiguration::Debug ? "Debug" : "Release");
|
config.insert("configName", type == BuildConfiguration::Debug ? "Debug" : "Release");
|
||||||
info.extraInfo = config;
|
info.extraInfo = config;
|
||||||
|
|||||||
@@ -95,10 +95,8 @@ private:
|
|||||||
QbsBuildSystem *m_buildSystem = nullptr;
|
QbsBuildSystem *m_buildSystem = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
class QbsBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
|
class QbsBuildConfigurationFactory final : public ProjectExplorer::BuildConfigurationFactory
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QbsBuildConfigurationFactory();
|
QbsBuildConfigurationFactory();
|
||||||
|
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ Kit *QbsProjectImporter::createKit(void *directoryData) const
|
|||||||
const QList<BuildInfo> QbsProjectImporter::buildInfoListForKit(const Kit *k, void *directoryData) const
|
const QList<BuildInfo> QbsProjectImporter::buildInfoListForKit(const Kit *k, void *directoryData) const
|
||||||
{
|
{
|
||||||
qCDebug(qbsPmLog) << "creating build info for kit" << k->displayName();
|
qCDebug(qbsPmLog) << "creating build info for kit" << k->displayName();
|
||||||
const auto factory = qobject_cast<QbsBuildConfigurationFactory *>(
|
const auto factory = dynamic_cast<QbsBuildConfigurationFactory *>(
|
||||||
BuildConfigurationFactory::find(k, projectFilePath()));
|
BuildConfigurationFactory::find(k, projectFilePath()));
|
||||||
if (!factory) {
|
if (!factory) {
|
||||||
qCDebug(qbsPmLog) << "no build config factory found";
|
qCDebug(qbsPmLog) << "no build config factory found";
|
||||||
|
|||||||
@@ -750,9 +750,9 @@ BuildInfo QmakeBuildConfigurationFactory::createBuildInfo(const Kit *k,
|
|||||||
|
|
||||||
if (type == BuildConfiguration::Release) {
|
if (type == BuildConfiguration::Release) {
|
||||||
//: The name of the release build configuration created by default for a qmake project.
|
//: The name of the release build configuration created by default for a qmake project.
|
||||||
info.displayName = tr("Release");
|
info.displayName = BuildConfiguration::tr("Release");
|
||||||
//: Non-ASCII characters in directory suffix may cause build issues.
|
//: Non-ASCII characters in directory suffix may cause build issues.
|
||||||
suffix = tr("Release", "Shadow build directory suffix");
|
suffix = QmakeBuildConfiguration::tr("Release", "Shadow build directory suffix");
|
||||||
if (settings.qtQuickCompiler == TriState::Default) {
|
if (settings.qtQuickCompiler == TriState::Default) {
|
||||||
if (version && version->isQtQuickCompilerSupported())
|
if (version && version->isQtQuickCompilerSupported())
|
||||||
extraInfo.config.useQtQuickCompiler = TriState::Enabled;
|
extraInfo.config.useQtQuickCompiler = TriState::Enabled;
|
||||||
@@ -760,14 +760,14 @@ BuildInfo QmakeBuildConfigurationFactory::createBuildInfo(const Kit *k,
|
|||||||
} else {
|
} else {
|
||||||
if (type == BuildConfiguration::Debug) {
|
if (type == BuildConfiguration::Debug) {
|
||||||
//: The name of the debug build configuration created by default for a qmake project.
|
//: The name of the debug build configuration created by default for a qmake project.
|
||||||
info.displayName = tr("Debug");
|
info.displayName = BuildConfiguration::tr("Debug");
|
||||||
//: Non-ASCII characters in directory suffix may cause build issues.
|
//: Non-ASCII characters in directory suffix may cause build issues.
|
||||||
suffix = tr("Debug", "Shadow build directory suffix");
|
suffix = QmakeBuildConfiguration::tr("Debug", "Shadow build directory suffix");
|
||||||
} else if (type == BuildConfiguration::Profile) {
|
} else if (type == BuildConfiguration::Profile) {
|
||||||
//: The name of the profile build configuration created by default for a qmake project.
|
//: The name of the profile build configuration created by default for a qmake project.
|
||||||
info.displayName = tr("Profile");
|
info.displayName = BuildConfiguration::tr("Profile");
|
||||||
//: Non-ASCII characters in directory suffix may cause build issues.
|
//: Non-ASCII characters in directory suffix may cause build issues.
|
||||||
suffix = tr("Profile", "Shadow build directory suffix");
|
suffix = QmakeBuildConfiguration::tr("Profile", "Shadow build directory suffix");
|
||||||
if (settings.separateDebugInfo == TriState::Default)
|
if (settings.separateDebugInfo == TriState::Default)
|
||||||
extraInfo.config.separateDebugInfo = TriState::Enabled;
|
extraInfo.config.separateDebugInfo = TriState::Enabled;
|
||||||
|
|
||||||
|
|||||||
@@ -153,8 +153,6 @@ private:
|
|||||||
|
|
||||||
class QMAKEPROJECTMANAGER_EXPORT QmakeBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
|
class QMAKEPROJECTMANAGER_EXPORT QmakeBuildConfigurationFactory : public ProjectExplorer::BuildConfigurationFactory
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QmakeBuildConfigurationFactory();
|
QmakeBuildConfigurationFactory();
|
||||||
|
|
||||||
|
|||||||
@@ -235,7 +235,7 @@ Kit *QmakeProjectImporter::createKit(void *directoryData) const
|
|||||||
const QList<BuildInfo> QmakeProjectImporter::buildInfoListForKit(const Kit *k, void *directoryData) const
|
const QList<BuildInfo> QmakeProjectImporter::buildInfoListForKit(const Kit *k, void *directoryData) const
|
||||||
{
|
{
|
||||||
auto *data = static_cast<DirectoryData *>(directoryData);
|
auto *data = static_cast<DirectoryData *>(directoryData);
|
||||||
auto factory = qobject_cast<QmakeBuildConfigurationFactory *>(
|
auto factory = dynamic_cast<QmakeBuildConfigurationFactory *>(
|
||||||
BuildConfigurationFactory::find(k, projectFilePath()));
|
BuildConfigurationFactory::find(k, projectFilePath()));
|
||||||
if (!factory)
|
if (!factory)
|
||||||
return {};
|
return {};
|
||||||
|
|||||||
Reference in New Issue
Block a user