From 06ff4c6c05ebaf8adb275292f6f0b8a639e74df3 Mon Sep 17 00:00:00 2001 From: Raoul Hecky Date: Fri, 30 Nov 2018 11:43:27 +0100 Subject: [PATCH] Fix include paths with subfolder When an autotools project is using SUBDIRS it starts a new parser. The new parser object was not propagating includes/defines/flags to the main parser object, and thus the code model did miss those. This commit fixes that. Task-number: QTCREATORBUG-21618 Change-Id: I19ed4dd3820257378e888f3c4935ebd30e958828 Reviewed-by: Eike Ziller --- .../makefileparser.cpp | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/plugins/autotoolsprojectmanager/makefileparser.cpp b/src/plugins/autotoolsprojectmanager/makefileparser.cpp index 9c3e32216b6..f56d58422af 100644 --- a/src/plugins/autotoolsprojectmanager/makefileparser.cpp +++ b/src/plugins/autotoolsprojectmanager/makefileparser.cpp @@ -291,12 +291,27 @@ void MakefileParser::parseSubDirs() foreach (const QString& source, parser.sources()) m_sources.append(subDir + slash + source); - // Duplicates might be possible in combination with several - // "..._SUBDIRS" targets - m_makefiles.removeDuplicates(); - m_sources.removeDuplicates(); + // Append the include paths of the sub directory + m_includePaths.append(parser.includePaths()); + + // Append the flags of the sub directory + m_cflags.append(parser.cflags()); + m_cxxflags.append(parser.cxxflags()); + + // Append the macros of the sub directory + foreach (const auto& m, parser.macros()) + { + if (!m_macros.contains(m)) + m_macros.append(m); + } + } + // Duplicates might be possible in combination with several + // "..._SUBDIRS" targets + m_makefiles.removeDuplicates(); + m_sources.removeDuplicates(); + if (subDirs.isEmpty()) m_success = false; }