forked from qt-creator/qt-creator
CMake: Report absolute paths to executables in fileapi mode
Task-number: QTCREATORBUG-22610 Change-Id: Ib6abf1ce6d94abd9dc063f4f559f02f2d4ea8798 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
@@ -166,14 +166,20 @@ PreprocessedData preprocess(FileApiData &data,
|
|||||||
}
|
}
|
||||||
|
|
||||||
QList<CMakeBuildTarget> generateBuildTargets(const PreprocessedData &input,
|
QList<CMakeBuildTarget> generateBuildTargets(const PreprocessedData &input,
|
||||||
const FilePath &sourceDirectory)
|
const FilePath &sourceDirectory,
|
||||||
|
const FilePath &buildDirectory)
|
||||||
{
|
{
|
||||||
QDir sourceDir(sourceDirectory.toString());
|
QDir sourceDir(sourceDirectory.toString());
|
||||||
|
QDir buildDir(buildDirectory.toString());
|
||||||
|
|
||||||
const QList<CMakeBuildTarget> result = transform<
|
const QList<CMakeBuildTarget> result = transform<
|
||||||
QList>(input.targetDetails, [&sourceDir](const TargetDetails &t) -> CMakeBuildTarget {
|
QList>(input.targetDetails, [&sourceDir, &buildDir](const TargetDetails &t) -> CMakeBuildTarget {
|
||||||
CMakeBuildTarget ct;
|
CMakeBuildTarget ct;
|
||||||
ct.title = t.name;
|
ct.title = t.name;
|
||||||
ct.executable = t.artifacts.isEmpty() ? FilePath() : t.artifacts.at(0);
|
ct.executable = t.artifacts.isEmpty()
|
||||||
|
? FilePath()
|
||||||
|
: FilePath::fromString(QDir::cleanPath(
|
||||||
|
buildDir.absoluteFilePath(t.artifacts.at(0).toString())));
|
||||||
TargetType type = UtilityType;
|
TargetType type = UtilityType;
|
||||||
if (t.type == "EXECUTABLE")
|
if (t.type == "EXECUTABLE")
|
||||||
type = ExecutableType;
|
type = ExecutableType;
|
||||||
@@ -554,7 +560,7 @@ FileApiQtcData extractData(FileApiData &input,
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
result.buildTargets = generateBuildTargets(data, sourceDirectory);
|
result.buildTargets = generateBuildTargets(data, sourceDirectory, buildDirectory);
|
||||||
result.cmakeFiles = std::move(data.cmakeFiles);
|
result.cmakeFiles = std::move(data.cmakeFiles);
|
||||||
result.projectParts = generateRawProjectParts(data, sourceDirectory);
|
result.projectParts = generateRawProjectParts(data, sourceDirectory);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user