Merge remote-tracking branch 'origin/4.12'

Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp

Change-Id: I34c3d1fd5be90537e37d15e00b1a0d455d1bf81d
This commit is contained in:
Eike Ziller
2020-04-14 09:47:38 +02:00
78 changed files with 5304 additions and 2534 deletions

View File

@@ -70,7 +70,6 @@ const char CONFIGURATION_KEY[] = "CMake.Configuration";
CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Core::Id id)
: BuildConfiguration(target, id)
{
m_buildSystem = new CMakeBuildSystem(this);
setBuildDirectory(shadowBuildDirectory(project()->projectFilePath(),
target->kit(),
displayName(),
@@ -155,6 +154,9 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Core::Id id)
}
setConfigurationForCMake(config);
// Only do this after everything has been set up!
m_buildSystem = new CMakeBuildSystem(this);
});
const auto qmlDebuggingAspect = addAspect<QtSupport::QmlDebuggingAspect>();
@@ -162,6 +164,11 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Core::Id id)
connect(qmlDebuggingAspect, &QtSupport::QmlDebuggingAspect::changed,
this, &CMakeBuildConfiguration::configurationForCMakeChanged);
// m_buildSystem is still nullptr here since it the build directory to be available
// before it can get created.
//
// This means this needs to be done in the lambda for the setInitializer(...) call
// defined above as well as in fromMap!
}
CMakeBuildConfiguration::~CMakeBuildConfiguration()
@@ -180,6 +187,8 @@ QVariantMap CMakeBuildConfiguration::toMap() const
bool CMakeBuildConfiguration::fromMap(const QVariantMap &map)
{
QTC_CHECK(!m_buildSystem);
if (!BuildConfiguration::fromMap(map))
return false;
@@ -190,6 +199,8 @@ bool CMakeBuildConfiguration::fromMap(const QVariantMap &map)
setConfigurationForCMake(conf);
m_buildSystem = new CMakeBuildSystem(this);
return true;
}

View File

@@ -213,10 +213,6 @@ CMakeBuildSystem::CMakeBuildSystem(CMakeBuildConfiguration *bc)
}
}
});
qCDebug(cmakeBuildSystemLog) << "Requesting parse due to initial CMake BuildSystem setup";
m_buildDirManager.setParametersAndRequestParse(BuildDirParameters(cmakeBuildConfiguration()),
BuildDirManager::REPARSE_CHECK_CONFIGURATION);
}
CMakeBuildSystem::~CMakeBuildSystem()

View File

@@ -309,15 +309,13 @@ static QStringList splitFragments(const QStringList &fragments)
}
RawProjectParts generateRawProjectParts(const PreprocessedData &input,
const FilePath &sourceDirectory,
const FilePath &buildDirectory)
const FilePath &sourceDirectory)
{
RawProjectParts rpps;
int counter = 0;
for (const TargetDetails &t : input.targetDetails) {
QDir sourceDir(sourceDirectory.toString());
QDir buildDir(buildDirectory.toString());
bool needPostfix = t.compileGroups.size() > 1;
int count = 1;
@@ -371,11 +369,7 @@ RawProjectParts generateRawProjectParts(const PreprocessedData &input,
}));
if (!precompiled_header.isEmpty()) {
if (precompiled_header.toFileInfo().isRelative()) {
const FilePath parentDir = FilePath::fromString(buildDir.absolutePath());
const QString dirName = buildDir.dirName();
if (precompiled_header.startsWith(dirName))
precompiled_header = FilePath::fromString(
precompiled_header.toString().mid(dirName.length() + 1));
const FilePath parentDir = FilePath::fromString(sourceDir.absolutePath());
precompiled_header = parentDir.pathAppended(precompiled_header.toString());
}
rpp.setPreCompiledHeaders({precompiled_header.toString()});
@@ -674,7 +668,7 @@ FileApiQtcData extractData(FileApiData &input,
result.buildTargets = generateBuildTargets(data, sourceDirectory, buildDirectory);
result.cmakeFiles = std::move(data.cmakeFiles);
result.projectParts = generateRawProjectParts(data, sourceDirectory, buildDirectory);
result.projectParts = generateRawProjectParts(data, sourceDirectory);
auto pair = generateRootProjectNode(data, sourceDirectory, buildDirectory);
result.rootProjectNode = std::move(pair.first);