diff options
Diffstat (limited to 'src/plugins/cmakeprojectmanager')
7 files changed, 17 insertions, 6 deletions
diff --git a/src/plugins/cmakeprojectmanager/builddirmanager.cpp b/src/plugins/cmakeprojectmanager/builddirmanager.cpp index dbfc4825eb..ca2fd4bd6a 100644 --- a/src/plugins/cmakeprojectmanager/builddirmanager.cpp +++ b/src/plugins/cmakeprojectmanager/builddirmanager.cpp @@ -334,6 +334,8 @@ QList<CMakeBuildTarget> BuildDirManager::buildTargets() const m_buildTargets.append(utilityTarget(CMakeBuildStep::allTarget(), this)); m_buildTargets.append(utilityTarget(CMakeBuildStep::cleanTarget(), this)); m_buildTargets.append(utilityTarget(CMakeBuildStep::installTarget(), this)); + m_buildTargets.append(utilityTarget(CMakeBuildStep::testTarget(), this)); + m_buildTargets.append(m_reader->buildTargets()); } return m_buildTargets; diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp index 1ecb3e4bc8..d87a538f98 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.cpp @@ -404,9 +404,14 @@ QString CMakeBuildStep::installTarget() return QString("install"); } +QString CMakeBuildStep::testTarget() +{ + return QString("test"); +} + QStringList CMakeBuildStep::specialTargets() { - return { allTarget(), cleanTarget(), installTarget() }; + return { allTarget(), cleanTarget(), installTarget(), testTarget() }; } // diff --git a/src/plugins/cmakeprojectmanager/cmakebuildstep.h b/src/plugins/cmakeprojectmanager/cmakebuildstep.h index e740baeaa7..70d89c8783 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildstep.h +++ b/src/plugins/cmakeprojectmanager/cmakebuildstep.h @@ -80,6 +80,7 @@ public: static QString cleanTarget(); static QString allTarget(); static QString installTarget(); + static QString testTarget(); static QStringList specialTargets(); signals: diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index ce4c54a9fe..101649702c 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -498,8 +498,10 @@ void CMakeProject::updateApplicationAndDeploymentTargets() if (ct.targetType == ExecutableType || ct.targetType == DynamicLibraryType) deploymentData.addFile(ct.executable.toString(), deploymentPrefix + buildDir.relativeFilePath(ct.executable.toFileInfo().dir().path()), DeployableFile::TypeExecutable); if (ct.targetType == ExecutableType) { + FileName srcWithTrailingSlash = FileName::fromString(ct.sourceDirectory.toString()); + srcWithTrailingSlash.appendString('/'); // TODO: Put a path to corresponding .cbp file into projectFilePath? - appTargetList.list << BuildTargetInfo(ct.title, ct.executable, ct.executable); + appTargetList.list << BuildTargetInfo(ct.title, ct.executable, srcWithTrailingSlash); } } diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp index 1205953c8b..bfb4fcbc71 100644 --- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp @@ -247,7 +247,7 @@ RunConfiguration *CMakeRunConfigurationFactory::doCreate(Target *parent, Core::I CMakeProject *project = static_cast<CMakeProject *>(parent->project()); const QString title(buildTargetFromId(id)); const CMakeBuildTarget &ct = project->buildTargetForTitle(title); - return new CMakeRunConfiguration(parent, id, ct.executable.toString(), ct.workingDirectory, ct.title); + return new CMakeRunConfiguration(parent, id, title, ct.workingDirectory, ct.title); } bool CMakeRunConfigurationFactory::canClone(Target *parent, RunConfiguration *source) const @@ -274,7 +274,8 @@ bool CMakeRunConfigurationFactory::canRestore(Target *parent, const QVariantMap RunConfiguration *CMakeRunConfigurationFactory::doRestore(Target *parent, const QVariantMap &map) { - return new CMakeRunConfiguration(parent, idFromMap(map), QString(), Utils::FileName(), QString()); + const Core::Id id = idFromMap(map); + return new CMakeRunConfiguration(parent, id, buildTargetFromId(id), Utils::FileName(), QString()); } QString CMakeRunConfigurationFactory::buildTargetFromId(Core::Id id) diff --git a/src/plugins/cmakeprojectmanager/servermodereader.cpp b/src/plugins/cmakeprojectmanager/servermodereader.cpp index 8bcc834688..84070ee98c 100644 --- a/src/plugins/cmakeprojectmanager/servermodereader.cpp +++ b/src/plugins/cmakeprojectmanager/servermodereader.cpp @@ -316,7 +316,7 @@ void ServerModeReader::updateCodeModel(CppTools::RawProjectParts &rpps) CppTools::RawProjectPart rpp; rpp.setProjectFileLocation(fg->target->sourceDirectory.toString() + "/CMakeLists.txt"); - rpp.setBuildSystemTarget(fg->target->name); + rpp.setBuildSystemTarget(fg->target->name + '|' + rpp.projectFile); rpp.setDisplayName(fg->target->name + QString::number(counter)); rpp.setDefines(defineArg.toUtf8()); rpp.setIncludePaths(includes); diff --git a/src/plugins/cmakeprojectmanager/tealeafreader.cpp b/src/plugins/cmakeprojectmanager/tealeafreader.cpp index 0bfcac1d68..8c37220f26 100644 --- a/src/plugins/cmakeprojectmanager/tealeafreader.cpp +++ b/src/plugins/cmakeprojectmanager/tealeafreader.cpp @@ -367,7 +367,7 @@ void TeaLeafReader::updateCodeModel(CppTools::RawProjectParts &rpps) includePaths += m_parameters.buildDirectory.toString(); CppTools::RawProjectPart rpp; rpp.setProjectFileLocation(QString()); // No project file information available! - rpp.setBuildSystemTarget(cbt.title); + rpp.setBuildSystemTarget(cbt.title + '|'); rpp.setIncludePaths(includePaths); CppTools::RawProjectPartFlags cProjectFlags; |