diff options
author | Marc-Andre Laperle | 2020-10-26 02:34:10 +0000 |
---|---|---|
committer | Marc-Andre Laperle | 2020-10-26 02:51:48 +0000 |
commit | 5a2830648c6484a30b76fb1104eb61bf056e0cfa (patch) | |
tree | 221b7fa23cd21b102bea40aabb7a78cec5d8c0ac /windows/org.eclipse.cdt.msw.build/src | |
parent | c5a53bb7fe97a32d675812cc0f4acdda009e3862 (diff) | |
download | org.eclipse.cdt-5a2830648c6484a30b76fb1104eb61bf056e0cfa.tar.gz org.eclipse.cdt-5a2830648c6484a30b76fb1104eb61bf056e0cfa.tar.xz org.eclipse.cdt-5a2830648c6484a30b76fb1104eb61bf056e0cfa.zip |
Bug 568224 - Support output parsing for /clang:-isystem when substituting cl for clang-cl
Add /clang:-isystem. It's handled similarly to /imsvc but interestingly it
doesn't support having spaces between the option name and it's value.
Change-Id: Ic5d61df1c7adebbf707d93a60858e942354c9ed9
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
Diffstat (limited to 'windows/org.eclipse.cdt.msw.build/src')
-rw-r--r-- | windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/core/MSVCBuildCommandParser.java | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/core/MSVCBuildCommandParser.java b/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/core/MSVCBuildCommandParser.java index d45314ee0e6..6b63ed8b70e 100644 --- a/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/core/MSVCBuildCommandParser.java +++ b/windows/org.eclipse.cdt.msw.build/src/org/eclipse/cdt/msw/build/core/MSVCBuildCommandParser.java @@ -81,19 +81,6 @@ public class MSVCBuildCommandParser extends AbstractBuildCommandParser implement } } - // TODO: Should these be considered "built-in" entries (ICSettingEntry.BUILTIN)? - private static class ClangCLMSVCSystemPathOptionParser extends IncludePathOptionParser { - - public ClangCLMSVCSystemPathOptionParser(String pattern, String nameExpression) { - super(pattern, nameExpression); - } - - @Override - public ICLanguageSettingEntry createEntry(String name, String value, int flag) { - return super.createEntry(name, unescapeString(value), flag); - } - } - @SuppressWarnings("nls") static final AbstractOptionParser[] includeOptionParsers = { new MSVCIncludePathOptionParser("(-|/)I\\s*\"(.*)\"", "$2"), @@ -106,8 +93,13 @@ public class MSVCBuildCommandParser extends AbstractBuildCommandParser implement @SuppressWarnings("nls") static final AbstractOptionParser[] msvcIncludeOptionParsers = { - new ClangCLMSVCSystemPathOptionParser("(-|/)imsvc\\s*\"(.*)\"", "$2"), - new ClangCLMSVCSystemPathOptionParser("(-|/)imsvc\\s*([^\\s\"]*)", "$2"), }; + new MSVCIncludePathOptionParser("(-|/)imsvc\\s*\"(.*)\"", "$2"), + new MSVCIncludePathOptionParser("(-|/)imsvc\\s*([^\\s\"]*)", "$2"), }; + + @SuppressWarnings("nls") + static final AbstractOptionParser[] clangISystemIncludeOptionParsers = { + new MSVCIncludePathOptionParser("(-|/)clang:-isystem\"(.*)\"", "$2"), + new MSVCIncludePathOptionParser("(-|/)clang:-isystem([^\\s\"]*)", "$2"), }; @SuppressWarnings("nls") static final AbstractOptionParser[] defineOptionParsers = { @@ -136,6 +128,7 @@ public class MSVCBuildCommandParser extends AbstractBuildCommandParser implement List<AbstractOptionParser> parsers = new ArrayList<>(Arrays.asList(includeOptionParsers)); Collections.addAll(parsers, defineOptionParsers); Collections.addAll(parsers, msvcIncludeOptionParsers); + Collections.addAll(parsers, clangISystemIncludeOptionParsers); Collections.addAll(parsers, forceIncludeOptionParsers); Collections.addAll(parsers, undefineOptionParsers); @@ -197,6 +190,10 @@ public class MSVCBuildCommandParser extends AbstractBuildCommandParser implement return msvcIncludeOptionParsers; } + if (optionName.startsWith("clang")) { + return clangISystemIncludeOptionParsers; + } + if (optionName.startsWith("FI")) { return forceIncludeOptionParsers; } |