aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qtmsbuild/moc/qtmoc.targets8
-rw-r--r--src/qtprojectlib/MsBuildProject.cs12
2 files changed, 18 insertions, 2 deletions
diff --git a/src/qtmsbuild/moc/qtmoc.targets b/src/qtmsbuild/moc/qtmoc.targets
index 37d8c928..bffec544 100644
--- a/src/qtmsbuild/moc/qtmoc.targets
+++ b/src/qtmsbuild/moc/qtmoc.targets
@@ -397,6 +397,14 @@
<!--
///////////////////////////////////////////////////////////////////////////////////////////////
+ // Add moc output dir to C++ include path
+ // -->
+ <ItemGroup>
+ <QtIncludePath Include="$([System.IO.Path]::GetDirectoryName('%(QtMoc.OutputFile)'))"/>
+ </ItemGroup>
+
+ <!--
+ ///////////////////////////////////////////////////////////////////////////////////////////////
// Clean-up
// -->
<PropertyGroup>
diff --git a/src/qtprojectlib/MsBuildProject.cs b/src/qtprojectlib/MsBuildProject.cs
index 92b18cb6..09758e49 100644
--- a/src/qtprojectlib/MsBuildProject.cs
+++ b/src/qtprojectlib/MsBuildProject.cs
@@ -821,12 +821,20 @@ namespace QtProjectLib
var outputItems = new List<XElement>();
foreach (var outputFile in outputFiles) {
List<XElement> mocOutput = null;
- if (projItemsByPath.TryGetValue(outputFile, out mocOutput))
+ if (projItemsByPath.TryGetValue(outputFile, out mocOutput)) {
outputItems.AddRange(mocOutput);
+ hasGeneratedFiles |= hasGeneratedFiles ? true : mocOutput
+ .Where(x => !x.Elements(ns + "ExcludedFromBuild")
+ .Where(y =>
+ (string)y.Attribute("Condition") == string.Format(
+ "'$(Configuration)|$(Platform)'=='{0}'", configName)
+ && y.Value == "true")
+ .Any())
+ .Any();
+ }
if (filterItemsByPath.TryGetValue(outputFile, out mocOutput))
outputItems.AddRange(mocOutput);
}
- hasGeneratedFiles = outputItems.Any();
foreach (var item in outputItems.Where(x => x.Parent != null))
item.Remove();
}