mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-30 21:55:31 +02:00
Move class o.e.cdt.jsoncdb.core.participant.Arglets.SystemIncludePath_armcc to plugin org.eclipse.cdt.jsoncdb.arm
Eliminates a TODO. Change-Id: I00b30ce14b0218947e7a93b95cd8f6e66ae2b650 Signed-off-by: Martin Weber <fifteenknots505@gmail.com>
This commit is contained in:
parent
93d0bf59c5
commit
7dc382abe3
5 changed files with 48 additions and 43 deletions
|
@ -6,12 +6,12 @@
|
|||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.jsoncdb.core.internal;
|
||||
package org.eclipse.cdt.jsoncdb.arm;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.eclipse.cdt.jsoncdb.core.participant.Arglets.SystemIncludePath_armcc;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.jsoncdb.core.participant.DefaultToolCommandlineParser;
|
||||
import org.eclipse.cdt.jsoncdb.core.participant.IToolCommandlineParser.IResult;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
import org.junit.Before;
|
||||
|
@ -20,54 +20,50 @@ import org.junit.Test;
|
|||
/**
|
||||
* @author Martin Weber
|
||||
*/
|
||||
public class SystemIncludePath_armcc_Test {
|
||||
public class SystemIncludePathTest {
|
||||
|
||||
private SystemIncludePath_armcc testee;
|
||||
private ArmccToolDetectionParticipant.SystemIncludePath_armcc testee;
|
||||
|
||||
/**
|
||||
* @throws java.lang.Exception
|
||||
*/
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
testee = new SystemIncludePath_armcc();
|
||||
testee = new ArmccToolDetectionParticipant.SystemIncludePath_armcc();
|
||||
}
|
||||
|
||||
@Test
|
||||
public final void testProcessArgument() {
|
||||
DefaultToolCommandlineParser tcp = new DefaultToolCommandlineParser(null, null, testee);
|
||||
|
||||
final String more = " -g "
|
||||
+ " -o CMakeFiles/execut1.dir/util1.c.o -c /testprojects/C-subsrc/src/src-sub/main1.c";
|
||||
ParseContext result;
|
||||
ICLanguageSettingEntry parsed;
|
||||
final IPath cwd = new Path("");
|
||||
|
||||
String name = "/an/Include/Path";
|
||||
|
||||
IResult result;
|
||||
// -J/an/Include/Path
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(result, cwd, "-J" + name + more));
|
||||
result = tcp.processArgs(cwd, "-J" + name + more);
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
// -J'/an/Include/Path'
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(result, cwd, "-J" + "'" + name + "'" + more));
|
||||
result = tcp.processArgs(cwd, "-J" + "'" + name + "'" + more);
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
// -J"/an/Include/Path"
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(result, cwd, "-J" + "\"" + name + "\"" + more));
|
||||
result = tcp.processArgs(cwd, "-J" + "\"" + name + "\"" + more);
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
|
||||
name = (new Path("A:an\\In CLU de/Pat h")).toOSString();
|
||||
// -J"A:an\In CLU de/Pat h"
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(result, cwd, "-J" + "\"" + name + "\"" + more));
|
||||
result = tcp.processArgs(cwd, "-J" + "\"" + name + "\"" + more);
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
|
||||
// -J'A:an\In CLU de/Pat h'
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(result, cwd, "-J" + "'" + name + "'" + more));
|
||||
result = tcp.processArgs(cwd, "-J" + "\"" + name + "\"" + more);
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
}
|
|
@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
|
|||
Bundle-Name: %bundleName
|
||||
Bundle-Copyright: %Bundle-Copyright
|
||||
Bundle-SymbolicName: org.eclipse.cdt.jsoncdb.arm;singleton:=true
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Version: 1.0.100.qualifier
|
||||
Bundle-Vendor: %Bundle-Vendor
|
||||
Bundle-Localization: plugin
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-11
|
||||
|
|
|
@ -10,9 +10,12 @@
|
|||
package org.eclipse.cdt.jsoncdb.arm;
|
||||
|
||||
import org.eclipse.cdt.jsoncdb.core.participant.Arglets;
|
||||
import org.eclipse.cdt.jsoncdb.core.participant.Arglets.IncludePathGeneric;
|
||||
import org.eclipse.cdt.jsoncdb.core.participant.Arglets.NameOptionMatcher;
|
||||
import org.eclipse.cdt.jsoncdb.core.participant.DefaultToolCommandlineParser;
|
||||
import org.eclipse.cdt.jsoncdb.core.participant.DefaultToolDetectionParticipant;
|
||||
import org.eclipse.cdt.jsoncdb.core.participant.IArglet;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
|
||||
/**
|
||||
* armcc C & C++.
|
||||
|
@ -29,10 +32,31 @@ public class ArmccToolDetectionParticipant extends DefaultToolDetectionParticipa
|
|||
private static class ToolCommandlineParser extends DefaultToolCommandlineParser {
|
||||
|
||||
private static final IArglet[] arglets = { new Arglets.IncludePath_C_POSIX(), new Arglets.MacroDefine_C_POSIX(),
|
||||
new Arglets.MacroUndefine_C_POSIX(), new Arglets.SystemIncludePath_armcc() };
|
||||
new Arglets.MacroUndefine_C_POSIX(), new SystemIncludePath_armcc() };
|
||||
|
||||
private ToolCommandlineParser() {
|
||||
super(null, new ArmccBuiltinDetectionBehavior(), arglets);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* A tool argument parser capable to parse a armcc-compiler system include path
|
||||
* argument: {@code -Jdir}.
|
||||
*/
|
||||
/* package */ static class SystemIncludePath_armcc extends IncludePathGeneric implements IArglet {
|
||||
@SuppressWarnings("nls")
|
||||
static final NameOptionMatcher[] optionMatchers = {
|
||||
/* quoted directory */
|
||||
new NameOptionMatcher("-J" + "([\"'])(.+?)\\1", 2),
|
||||
/* unquoted directory */
|
||||
new NameOptionMatcher("-J" + "([^\\s]+)", 1), };
|
||||
|
||||
/*-
|
||||
* @see org.eclipse.cdt.jsoncdb.IArglet#processArgs(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public int processArgument(IArgumentCollector resultCollector, IPath cwd, String argsLine) {
|
||||
return processArgument(true, resultCollector, cwd, argsLine, optionMatchers);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -48,4 +48,12 @@
|
|||
</message_arguments>
|
||||
</filter>
|
||||
</resource>
|
||||
<resource path="src/org/eclipse/cdt/jsoncdb/core/participant/Arglets.java" type="org.eclipse.cdt.jsoncdb.core.participant.Arglets">
|
||||
<filter comment="Incorrectly named class that could not have been used is getting an API filter rather than old @deprecated API" id="338886760">
|
||||
<message_arguments>
|
||||
<message_argument value="org.eclipse.cdt.jsoncdb.core.participant.Arglets.SystemIncludePath_armcc"/>
|
||||
<message_argument value="org.eclipse.cdt.jsoncdb.core_1.2.0"/>
|
||||
</message_arguments>
|
||||
</filter>
|
||||
</resource>
|
||||
</component>
|
||||
|
|
|
@ -364,29 +364,6 @@ public final class Arglets {
|
|||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
/**
|
||||
* A tool argument parser capable to parse a armcc-compiler system include path
|
||||
* argument: {@code -Jdir}.
|
||||
*/
|
||||
// TODO move this to the arm plugin
|
||||
public static class SystemIncludePath_armcc extends IncludePathGeneric implements IArglet {
|
||||
@SuppressWarnings("nls")
|
||||
static final NameOptionMatcher[] optionMatchers = {
|
||||
/* quoted directory */
|
||||
new NameOptionMatcher("-J" + "([\"'])(.+?)\\1", 2),
|
||||
/* unquoted directory */
|
||||
new NameOptionMatcher("-J" + "([^\\s]+)", 1), };
|
||||
|
||||
/*-
|
||||
* @see org.eclipse.cdt.jsoncdb.IArglet#processArgs(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public int processArgument(IArgumentCollector resultCollector, IPath cwd, String argsLine) {
|
||||
return processArgument(true, resultCollector, cwd, argsLine, optionMatchers);
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// POSIX compatible option parsers
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
|
Loading…
Add table
Reference in a new issue