Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc-Andre Laperle2020-10-26 02:34:10 +0000
committerMarc-Andre Laperle2020-10-26 02:51:48 +0000
commit5a2830648c6484a30b76fb1104eb61bf056e0cfa (patch)
tree221b7fa23cd21b102bea40aabb7a78cec5d8c0ac /windows/org.eclipse.cdt.msw.build/src
parentc5a53bb7fe97a32d675812cc0f4acdda009e3862 (diff)
downloadorg.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.java27
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;
}

Back to the top