qmake vcxproj generator: Fix compilation of generated C++ sources
Generated C++ source files with extensions other than .cpp would not get compiled, because the code ignored all other C++ source extensions like .cc and .cxx. Fix this by respecting the value of QMAKE_EXT_CPP and QMAKE_EXT_C. Task-number: QTBUG-69770 Change-Id: I097dfef6920e353a351c97891cdbfdc9a859815f Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
This commit is contained in:
parent
bedf50a5bb
commit
7dc930d400
@ -1977,6 +1977,15 @@ bool VCXProjectWriter::outputFileConfig(OutputFilterData *d, XmlOutput &xml, Xml
|
|||||||
return fileAdded;
|
return fileAdded;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool isFileClCompatible(const QString &filePath)
|
||||||
|
{
|
||||||
|
auto filePathEndsWith = [&filePath] (const QString &ext) {
|
||||||
|
return filePath.endsWith(ext, Qt::CaseInsensitive);
|
||||||
|
};
|
||||||
|
return std::any_of(Option::cpp_ext.cbegin(), Option::cpp_ext.cend(), filePathEndsWith)
|
||||||
|
|| std::any_of(Option::c_ext.cbegin(), Option::c_ext.cend(), filePathEndsWith);
|
||||||
|
}
|
||||||
|
|
||||||
void VCXProjectWriter::outputFileConfig(XmlOutput &xml, XmlOutput &xmlFilter,
|
void VCXProjectWriter::outputFileConfig(XmlOutput &xml, XmlOutput &xmlFilter,
|
||||||
const QString &filePath, const QString &filterName)
|
const QString &filePath, const QString &filterName)
|
||||||
{
|
{
|
||||||
@ -2000,7 +2009,7 @@ void VCXProjectWriter::outputFileConfig(XmlOutput &xml, XmlOutput &xmlFilter,
|
|||||||
<< attrTagS("Filter", filterName);
|
<< attrTagS("Filter", filterName);
|
||||||
xml << tag("ClInclude")
|
xml << tag("ClInclude")
|
||||||
<< attrTag("Include", nativeFilePath);
|
<< attrTag("Include", nativeFilePath);
|
||||||
} else if (filePath.endsWith(".cpp")) {
|
} else if (isFileClCompatible(filePath)) {
|
||||||
xmlFilter << tag("ClCompile")
|
xmlFilter << tag("ClCompile")
|
||||||
<< attrTag("Include", nativeFilePath)
|
<< attrTag("Include", nativeFilePath)
|
||||||
<< attrTagS("Filter", filterName);
|
<< attrTagS("Filter", filterName);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user