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,8 +1898,10 @@ void VCXProjectWriter::outputFileConfigs(VCProject &project, XmlOutput &xml, Xml
|
|||||||
OutputFilterData *d = &data[i];
|
OutputFilterData *d = &data[i];
|
||||||
if (!d->filter.Config) // only if the filter is not empty
|
if (!d->filter.Config) // only if the filter is not empty
|
||||||
continue;
|
continue;
|
||||||
if (outputFileConfig(d, xml, xmlFilter, info.file, fileAdded, hasCustomBuildStep))
|
if (outputFileConfig(d, xml, xmlFilter, info.file, filtername, fileAdded,
|
||||||
|
hasCustomBuildStep)) {
|
||||||
fileAdded = true;
|
fileAdded = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !fileAdded )
|
if ( !fileAdded )
|
||||||
@ -1910,8 +1912,8 @@ void VCXProjectWriter::outputFileConfigs(VCProject &project, XmlOutput &xml, Xml
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool VCXProjectWriter::outputFileConfig(OutputFilterData *d, XmlOutput &xml, XmlOutput &xmlFilter,
|
bool VCXProjectWriter::outputFileConfig(OutputFilterData *d, XmlOutput &xml, XmlOutput &xmlFilter,
|
||||||
const QString &filename, bool fileAdded,
|
const QString &filename, const QString &fullFilterName,
|
||||||
bool hasCustomBuildStep)
|
bool fileAdded, bool hasCustomBuildStep)
|
||||||
{
|
{
|
||||||
VCFilter &filter = d->filter;
|
VCFilter &filter = d->filter;
|
||||||
if (d->inBuild) {
|
if (d->inBuild) {
|
||||||
@ -1934,7 +1936,7 @@ bool VCXProjectWriter::outputFileConfig(OutputFilterData *d, XmlOutput &xml, Xml
|
|||||||
|
|
||||||
xmlFilter << tag("CustomBuild")
|
xmlFilter << tag("CustomBuild")
|
||||||
<< attrTag("Include",Option::fixPathToLocalOS(filename))
|
<< attrTag("Include",Option::fixPathToLocalOS(filename))
|
||||||
<< attrTagS("Filter", filter.Name);
|
<< attrTagS("Filter", fullFilterName);
|
||||||
|
|
||||||
xml << tag("CustomBuild")
|
xml << tag("CustomBuild")
|
||||||
<< attrTag("Include",Option::fixPathToLocalOS(filename));
|
<< attrTag("Include",Option::fixPathToLocalOS(filename));
|
||||||
@ -1952,7 +1954,7 @@ bool VCXProjectWriter::outputFileConfig(OutputFilterData *d, XmlOutput &xml, Xml
|
|||||||
if (!fileAdded)
|
if (!fileAdded)
|
||||||
{
|
{
|
||||||
fileAdded = true;
|
fileAdded = true;
|
||||||
outputFileConfig(xml, xmlFilter, filename, filter.Name);
|
outputFileConfig(xml, xmlFilter, filename, fullFilterName);
|
||||||
}
|
}
|
||||||
|
|
||||||
const QString condition = generateCondition(*filter.Config);
|
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 outputFilter(VCProject &project, XmlOutput &xml, XmlOutput &xmlFilter, const QString &filtername);
|
||||||
static void outputFileConfigs(VCProject &project, XmlOutput &xml, XmlOutput &xmlFilter,
|
static void outputFileConfigs(VCProject &project, XmlOutput &xml, XmlOutput &xmlFilter,
|
||||||
const VCFilterFile &info, const QString &filtername);
|
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 void outputFileConfig(XmlOutput &xml, XmlOutput &xmlFilter, const QString &fileName, const QString &filterName);
|
||||||
static QString generateCondition(const VCConfiguration &config);
|
static QString generateCondition(const VCConfiguration &config);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user