diff options
Diffstat (limited to 'src/qtprojectlib/MsBuildProject.cs')
-rw-r--r-- | src/qtprojectlib/MsBuildProject.cs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/qtprojectlib/MsBuildProject.cs b/src/qtprojectlib/MsBuildProject.cs index 70aafd16..e8aa4b95 100644 --- a/src/qtprojectlib/MsBuildProject.cs +++ b/src/qtprojectlib/MsBuildProject.cs @@ -589,6 +589,12 @@ namespace QtProjectLib module.AdditionalLibrariesDebug.Select(x => Path.GetFileName(x))); moduleLibs.Add(module.LibRelease); moduleLibs.Add(module.LibDebug); + + if (IsPrivateIncludePathUsed(module, compiler)) { + // Qt private module names, to copy to QtModules property + moduleNames.UnionWith(module.proVarQT.Split(' ') + .Select(x => string.Format("{0}-private", x))); + } } } @@ -752,6 +758,24 @@ namespace QtProjectLib return false; } + bool IsPrivateIncludePathUsed( + QtModuleInfo module, + IEnumerable<XElement> compiler) + { + // Module private header path is present in compiler include dirs + var privateIncludePattern = new Regex(string.Format( + @"^\$\(QTDIR\)[\\\/]include[\\\/]{0}[\\\/]\d+\.\d+\.\d+", + module.LibraryPrefix)); + if (compiler.Elements(ns + "AdditionalIncludeDirectories") + .SelectMany(x => x.Value.Split(';')) + .Any(x => privateIncludePattern.IsMatch(x))) { + return true; + } + + // Private header path is not present + return false; + } + public bool SetDefaultWindowsSDKVersion(string winSDKVersion) { var xGlobals = this[Files.Project].xml |