fix vcxproj generation for CONFIG-=flat, part II
Commit 8ee2e497
introduced a regression for CONFIG-=flat vcxproj files.
Files with custom build steps (e.g. foo.h with Q_OBJECT) were written
into top-level filters ("Header Files" instead of
"Header Files\my\sub\dir").
The assumption that the parameter filtername always equals
VCFilter::name was wrong.
Change-Id: Id5178550310d06b73e42f18597a27012ddd89bb7
Task-number: QTBUG-44413
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This commit is contained in:
parent
405bdee0c9
commit
f90c186058
@ -1898,9 +1898,11 @@ void VCXProjectWriter::outputFileConfigs(VCProject &project, XmlOutput &xml, Xml
|
||||
OutputFilterData *d = &data[i];
|
||||
if (!d->filter.Config) // only if the filter is not empty
|
||||
continue;
|
||||
if (outputFileConfig(d, xml, xmlFilter, info.file, fileAdded, hasCustomBuildStep))
|
||||
if (outputFileConfig(d, xml, xmlFilter, info.file, filtername, fileAdded,
|
||||
hasCustomBuildStep)) {
|
||||
fileAdded = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ( !fileAdded )
|
||||
outputFileConfig(xml, xmlFilter, info.file, filtername);
|
||||
@ -1910,8 +1912,8 @@ void VCXProjectWriter::outputFileConfigs(VCProject &project, XmlOutput &xml, Xml
|
||||
}
|
||||
|
||||
bool VCXProjectWriter::outputFileConfig(OutputFilterData *d, XmlOutput &xml, XmlOutput &xmlFilter,
|
||||
const QString &filename, bool fileAdded,
|
||||
bool hasCustomBuildStep)
|
||||
const QString &filename, const QString &fullFilterName,
|
||||
bool fileAdded, bool hasCustomBuildStep)
|
||||
{
|
||||
VCFilter &filter = d->filter;
|
||||
if (d->inBuild) {
|
||||
@ -1934,7 +1936,7 @@ bool VCXProjectWriter::outputFileConfig(OutputFilterData *d, XmlOutput &xml, Xml
|
||||
|
||||
xmlFilter << tag("CustomBuild")
|
||||
<< attrTag("Include",Option::fixPathToLocalOS(filename))
|
||||
<< attrTagS("Filter", filter.Name);
|
||||
<< attrTagS("Filter", fullFilterName);
|
||||
|
||||
xml << tag("CustomBuild")
|
||||
<< attrTag("Include",Option::fixPathToLocalOS(filename));
|
||||
@ -1952,7 +1954,7 @@ bool VCXProjectWriter::outputFileConfig(OutputFilterData *d, XmlOutput &xml, Xml
|
||||
if (!fileAdded)
|
||||
{
|
||||
fileAdded = true;
|
||||
outputFileConfig(xml, xmlFilter, filename, filter.Name);
|
||||
outputFileConfig(xml, xmlFilter, filename, fullFilterName);
|
||||
}
|
||||
|
||||
const QString condition = generateCondition(*filter.Config);
|
||||
|
@ -185,7 +185,9 @@ private:
|
||||
static void outputFilter(VCProject &project, XmlOutput &xml, XmlOutput &xmlFilter, const QString &filtername);
|
||||
static void outputFileConfigs(VCProject &project, XmlOutput &xml, XmlOutput &xmlFilter,
|
||||
const VCFilterFile &info, const QString &filtername);
|
||||
static bool outputFileConfig(OutputFilterData *d, XmlOutput &xml, XmlOutput &xmlFilter, const QString &filename, bool fileAdded, bool hasCustomBuildStep);
|
||||
static bool outputFileConfig(OutputFilterData *d, XmlOutput &xml, XmlOutput &xmlFilter,
|
||||
const QString &filename, const QString &fullFilterName,
|
||||
bool fileAdded, bool hasCustomBuildStep);
|
||||
static void outputFileConfig(XmlOutput &xml, XmlOutput &xmlFilter, const QString &fileName, const QString &filterName);
|
||||
static QString generateCondition(const VCConfiguration &config);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user