From 148807856ccae8ea816b7013d793b32570924aab Mon Sep 17 00:00:00 2001 From: Florian Hoelzl <hoelzl@fortiss.org> Date: Thu, 7 Jun 2018 14:40:45 +0200 Subject: [PATCH] Added motorcontrol code generator extension. Signed-off-by: Florian Hoelzl <hoelzl@fortiss.org> --- .../raspberry/generator/extension/.ratings | 2 +- .../RaspberryPIGeneratorExtension.java | 75 ++++++++++++------- .../generator/extension/library/.ratings | 2 +- .../VescLibraryGeneratorExtensionBase.java | 6 +- .../generator/extension/motorcontrol/.ratings | 6 +- .../MotorControlGeneratorExtensionBase.java | 7 +- .../MotorControlInputGeneratorExtension.java | 17 +++-- .../MotorControlOutputGeneratorExtension.java | 20 ++++- .../raspberry/generator/framework/.ratings | 2 +- ...IPreinstalledHeaderGeneratorExtension.java | 4 +- .../generator/templates/CProjectFile.stg | 3 + 11 files changed, 96 insertions(+), 48 deletions(-) diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/.ratings b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/.ratings index b7df1d74..4d7a84e1 100644 --- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/.ratings +++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/.ratings @@ -4,5 +4,5 @@ CanTransmissionCatalog.java 959d488ebec4ae6a50c3f699d42aad535b1ae0c3 YELLOW ConsoleOutputGeneratorExtension.java d57db44d57630a50e26c9eeed90d6631bf99db5d YELLOW MultiUnitMainGenerator.java 458754b89c2d79db3fee08baa444424772e40fb7 RED PWMActuatorGeneratorExtension.java 8cbfd72070cfc1c8a4da4ccc1d18a6b3e75cea7f YELLOW -RaspberryPIGeneratorExtension.java c81d5606099b3922c70aecd103b2a7269b90f0a6 RED +RaspberryPIGeneratorExtension.java 2cd95ddc54d7562bd9fa0b8a4018c25eda01b5a8 RED SingleUnitMainGenerator.java 93d0370b01330ab023e02761df818d36fac42b0f RED diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/RaspberryPIGeneratorExtension.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/RaspberryPIGeneratorExtension.java index c81d5606..e7f73d65 100644 --- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/RaspberryPIGeneratorExtension.java +++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/RaspberryPIGeneratorExtension.java @@ -52,6 +52,8 @@ import org.fortiss.af3.platform.model.ExecutionUnit; import org.fortiss.af3.platform.model.PlatformConnectorUnit; import org.fortiss.af3.platform.model.TransmissionUnit; import org.fortiss.af3.platform.raspberry.AF3PlatformRaspberryActivator; +import org.fortiss.af3.platform.raspberry.generator.framework.IPreinstalledHeaderGeneratorExtension; +import org.fortiss.af3.platform.raspberry.generator.framework.IPreinstalledLibraryGeneratorExtension; import org.fortiss.af3.platform.raspberry.generator.framework.IRasPiCopiedHeaderGeneratorExtension; import org.fortiss.af3.platform.raspberry.generator.framework.IRasPiCopiedLibraryBasedGeneratorExtension; import org.fortiss.af3.platform.raspberry.generator.framework.IRasPiCopiedSourceBasedGeneratorExtension; @@ -80,7 +82,7 @@ public class RaspberryPIGeneratorExtension extends /** The list of atomic components deployed on this execution unit. */ private List<Component> atomics = new ArrayList<>(); /** The map from platform elements to executables. */ - private Map<PlatformConnectorUnit, ExecutableBase<?>> platformConnector2ExecutableBase = + private Map<PlatformConnectorUnit, ExecutableBase<?>> platformConnector2ExtensionBase = new HashMap<>(); /** Set of headers to be included. */ private Set<String> includedHeaders = new HashSet<>(); @@ -106,13 +108,13 @@ public class RaspberryPIGeneratorExtension extends this.context = context; findDeploymentAndLookForCanTransmissionCatalog(); createGeneratorResultSourcePackage(name); + analyzePlatformElementsAndCopyCode(deployedPorts); try { addEclipseCProjectFiles(); addConfigureAndMakedefsFiles(); - Set<String> headers = addPlatformElementsCode(deployedPorts); addDataDictionaryCode(); addLogicalComponentCode(deployedComponents); - addMainFile(deployedComponents, deployedPorts, headers); + addMainFile(deployedComponents, deployedPorts); } catch(Exception ex) { error(AF3PlatformRaspberryActivator.getDefault(), ex.getMessage(), ex); ex.printStackTrace(); @@ -124,46 +126,63 @@ public class RaspberryPIGeneratorExtension extends * Adds the libraries and header files required by the used platform elements and returns the * set of header file names. */ - private Set<String> addPlatformElementsCode( + private void analyzePlatformElementsAndCopyCode( List<Pair<PlatformConnectorUnit, Port>> deployedPorts) { for(Pair<PlatformConnectorUnit, Port> pair : deployedPorts) { PlatformConnectorUnit pcu = pair.getFirst(); - ExecutableBase<?> executable = + ExecutableBase<?> extension = createTransformedObjectWithoutExceptionFor(pcu, ExecutableBase.class, context); - platformConnector2ExecutableBase.put(pcu, executable); - if(executable instanceof IRasPiCopiedHeaderGeneratorExtension) { - IRasPiCopiedHeaderGeneratorExtension headerExec = - (IRasPiCopiedHeaderGeneratorExtension)executable; - if(!includedHeaders.contains(headerExec.getHeaderFileName())) { + platformConnector2ExtensionBase.put(pcu, extension); + if(extension instanceof IRasPiCopiedHeaderGeneratorExtension) { + IRasPiCopiedHeaderGeneratorExtension headerExt = + (IRasPiCopiedHeaderGeneratorExtension)extension; + if(!includedHeaders.contains(headerExt.getHeaderFileName())) { generatorResult.getSubPackage(INC_LIB_SUB_PACKAGE_NAME).addUnit( - headerExec.getHeaderFileContent()); - includedHeaders.add(headerExec.getHeaderFileName()); + headerExt.getHeaderFileContent()); + includedHeaders.add(headerExt.getHeaderFileName()); } // ignore header file, since it is already included } - if(executable instanceof IRasPiCopiedSourceBasedGeneratorExtension) { - IRasPiCopiedSourceBasedGeneratorExtension srcExec = - (IRasPiCopiedSourceBasedGeneratorExtension)executable; - if(!includedSources.contains(srcExec.getSourceFileName())) { + if(extension instanceof IRasPiCopiedSourceBasedGeneratorExtension) { + IRasPiCopiedSourceBasedGeneratorExtension srcExt = + (IRasPiCopiedSourceBasedGeneratorExtension)extension; + if(!includedSources.contains(srcExt.getSourceFileName())) { generatorResult.getSubPackage(SRC_LIB_SUB_PACKAGE_NAME).addUnit( - srcExec.getSourceFileContent()); - includedSources.add(srcExec.getSourceFileName()); + srcExt.getSourceFileContent()); + includedSources.add(srcExt.getSourceFileName()); } // ignore source file, since it is already included } - if(executable instanceof IRasPiCopiedLibraryBasedGeneratorExtension) { - IRasPiCopiedLibraryBasedGeneratorExtension libExec = - (IRasPiCopiedLibraryBasedGeneratorExtension)executable; - if(!includedLibraries.contains(libExec.getLibraryFileName())) { + if(extension instanceof IRasPiCopiedLibraryBasedGeneratorExtension) { + IRasPiCopiedLibraryBasedGeneratorExtension libExt = + (IRasPiCopiedLibraryBasedGeneratorExtension)extension; + if(!includedLibraries.contains(libExt.getLibraryFileName())) { generatorResult.getSubPackage(LIB_SUB_PACKAGE_NAME).addUnit( - libExec.getLibraryFileContent()); - includedLibraries.add(libExec.getLibraryFileName()); - includedLibraries.addAll(libExec.getDependencyLibraries()); + libExt.getLibraryFileContent()); + includedLibraries.add(libExt.getLibraryFileName()); + includedLibraries.addAll(libExt.getDependencyLibraries()); } // ignore library file, since it is already included } + if(extension instanceof IPreinstalledHeaderGeneratorExtension) { + IPreinstalledHeaderGeneratorExtension preHExt = + (IPreinstalledHeaderGeneratorExtension)extension; + for(String header : preHExt.getHeaderIncludes()) { + if(!includedHeaders.contains(header)) { + includedHeaders.add(header); + } + } + } + if(extension instanceof IPreinstalledLibraryGeneratorExtension) { + IPreinstalledLibraryGeneratorExtension preLExt = + (IPreinstalledLibraryGeneratorExtension)extension; + for(String lib : preLExt.getLibraryNames()) { + if(!includedLibraries.contains(lib)) { + includedLibraries.add(lib); + } + } + } } - return includedHeaders; } /** Initializes the generator result source package. */ @@ -239,7 +258,7 @@ public class RaspberryPIGeneratorExtension extends /** Creates the main file by using the {@link SingleUnitMainGenerator} helper class. */ private void addMainFile(List<Pair<ExecutionUnit, Component>> deployedComponents, - List<Pair<PlatformConnectorUnit, Port>> deployedPorts, Set<String> headers) { + List<Pair<PlatformConnectorUnit, Port>> deployedPorts) { CSourcePackage srcGenPack = (CSourcePackage)generatorResult.getSrcGenPackage(); if(canCatalog != null) { MultiUnitMainGenerator mg = @@ -249,7 +268,7 @@ public class RaspberryPIGeneratorExtension extends } else { SingleUnitMainGenerator mg = new SingleUnitMainGenerator(modelElement, deployedComponents, deployedPorts, - platformConnector2ExecutableBase, headers, context); + platformConnector2ExtensionBase, includedHeaders, context); srcGenPack.addUnit(mg.createSingleUnitMain()); } } diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/library/.ratings b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/library/.ratings index 28e361a9..e30fc278 100644 --- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/library/.ratings +++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/library/.ratings @@ -1,3 +1,3 @@ BrickLibraryGeneratorExtensionBase.java 2b22b7ef042ef6eced32f227fd4d682bab421722 YELLOW PiHALLibraryGeneratorExtensionBase.java d6678cf07b655b33844329dae89603d7827c63b1 YELLOW -VescLibraryGeneratorExtensionBase.java 1227d3de77cab52a396b3d9751a6b43a8c373b31 YELLOW +VescLibraryGeneratorExtensionBase.java 0a78b5894b50213bb11cd2b7066b63823c7aa7c7 YELLOW diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/library/VescLibraryGeneratorExtensionBase.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/library/VescLibraryGeneratorExtensionBase.java index 1227d3de..0a78b589 100644 --- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/library/VescLibraryGeneratorExtensionBase.java +++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/library/VescLibraryGeneratorExtensionBase.java @@ -25,7 +25,7 @@ import org.fortiss.af3.platform.raspberry.generator.framework.IPreinstalledHeade import org.fortiss.af3.platform.raspberry.generator.framework.IPreinstalledLibraryGeneratorExtension; /** - * Base class for executables using the Vesc library. + * Base class for executables using the vesc library. * * @author hoelzl */ @@ -39,8 +39,8 @@ public abstract class VescLibraryGeneratorExtensionBase<T extends EObject> exten /** {@inheritDoc} */ @Override - public String getHeaderIncludes() { - return "#include \"hal.h\"\n" + "#include \"commands.h\"\n"; + public List<String> getHeaderIncludes() { + return asList("hal.h", "commands.h"); } /** {@inheritDoc} */ diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/.ratings b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/.ratings index c0e60d56..3506baad 100644 --- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/.ratings +++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/.ratings @@ -1,3 +1,3 @@ -MotorControlGeneratorExtensionBase.java 3b62fdf7052bc212bc565c8b891fc3da0912b04b RED -MotorControlInputGeneratorExtension.java fc4f86caf0867d5ec27e2db2461d2e6365eb2dd2 RED -MotorControlOutputGeneratorExtension.java 9ab48031ad519db2aed2cab21c5219d6c8feeefb RED +MotorControlGeneratorExtensionBase.java 41dfce7d14fa23340ee7135ef40828b1d4e87610 YELLOW +MotorControlInputGeneratorExtension.java fb06c42a006eb3f7bfb632739cc763de3e5aaee8 YELLOW +MotorControlOutputGeneratorExtension.java 6eab7224fd0a90eeb47da2c391f21b201791fabf YELLOW diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/MotorControlGeneratorExtensionBase.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/MotorControlGeneratorExtensionBase.java index 3b62fdf7..41dfce7d 100644 --- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/MotorControlGeneratorExtensionBase.java +++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/MotorControlGeneratorExtensionBase.java @@ -17,6 +17,7 @@ package org.fortiss.af3.platform.raspberry.generator.extension.motorcontrol; import org.eclipse.emf.ecore.EObject; import org.fortiss.af3.platform.language.executable.ExecutableBase; +import org.fortiss.af3.platform.raspberry.generator.extension.library.VescLibraryGeneratorExtensionBase; import org.fortiss.af3.platform.raspberry.generator.framework.ISingletonInitializationGeneratorExtension; /** @@ -24,8 +25,8 @@ import org.fortiss.af3.platform.raspberry.generator.framework.ISingletonInitiali * * @author hoelzl */ -abstract class MotorControlGeneratorExtensionBase<T extends EObject> extends ExecutableBase<T> - implements ISingletonInitializationGeneratorExtension { +abstract class MotorControlGeneratorExtensionBase<T extends EObject> extends + VescLibraryGeneratorExtensionBase<T> implements ISingletonInitializationGeneratorExtension { /** Constructor. */ public MotorControlGeneratorExtensionBase(T modelElement) { super(modelElement); @@ -46,8 +47,6 @@ abstract class MotorControlGeneratorExtensionBase<T extends EObject> extends Exe /** {@inheritDoc} */ @Override public final String getSingletonAuxiliaryFunctions(String singletonPostfix) { - // return "extern void initUSB(char* device, int baudRate);\n" - // + "extern void uint8_t get_values();"; return null; } diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/MotorControlInputGeneratorExtension.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/MotorControlInputGeneratorExtension.java index fc4f86ca..fb06c42a 100644 --- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/MotorControlInputGeneratorExtension.java +++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/MotorControlInputGeneratorExtension.java @@ -16,8 +16,7 @@ package org.fortiss.af3.platform.raspberry.generator.extension.motorcontrol; import org.fortiss.af3.component.model.InputPort; -import org.fortiss.af3.expression.model.terms.IExpressionTerm; -import org.fortiss.af3.platform.language.executable.IReadableExecutable; +import org.fortiss.af3.platform.raspberry.generator.framework.IReadableGeneratorExtension; import org.fortiss.af3.platform.raspberry.model.motorcontrol.MotorControlInput; /** @@ -26,7 +25,8 @@ import org.fortiss.af3.platform.raspberry.model.motorcontrol.MotorControlInput; * @author hoelzl */ public class MotorControlInputGeneratorExtension extends - MotorControlGeneratorExtensionBase<MotorControlInput> implements IReadableExecutable { + MotorControlGeneratorExtensionBase<MotorControlInput> implements + IReadableGeneratorExtension { /** Constructor. */ public MotorControlInputGeneratorExtension(MotorControlInput modelElement) { super(modelElement); @@ -34,8 +34,15 @@ public class MotorControlInputGeneratorExtension extends /** {@inheritDoc} */ @Override - public IExpressionTerm getValueReadAccessor(InputPort logicalSignal) { - // TODO Auto-generated method stub + public String getReadCode(String postfix, String singletonPostfix, InputPort logicalSignal, + String targetVariable) { + return targetVariable + " = get_velocity();\n"; + } + + /** {@inheritDoc} */ + @Override + public String + getNoValReadCode(String postfix, String singletonPostfix, InputPort logicalSignal) { return null; } } diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/MotorControlOutputGeneratorExtension.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/MotorControlOutputGeneratorExtension.java index 9ab48031..6eab7224 100644 --- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/MotorControlOutputGeneratorExtension.java +++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/extension/motorcontrol/MotorControlOutputGeneratorExtension.java @@ -15,7 +15,9 @@ +--------------------------------------------------------------------------*/ package org.fortiss.af3.platform.raspberry.generator.extension.motorcontrol; +import org.fortiss.af3.component.model.OutputPort; import org.fortiss.af3.platform.language.executable.ExecutableBase; +import org.fortiss.af3.platform.raspberry.generator.framework.IWriteableGeneratorExtension; import org.fortiss.af3.platform.raspberry.model.motorcontrol.MotorControlOutput; /** @@ -23,9 +25,25 @@ import org.fortiss.af3.platform.raspberry.model.motorcontrol.MotorControlOutput; * * @author hoelzl */ -public class MotorControlOutputGeneratorExtension extends ExecutableBase<MotorControlOutput> { +public class MotorControlOutputGeneratorExtension extends + MotorControlGeneratorExtensionBase<MotorControlOutput> implements + IWriteableGeneratorExtension { /** Constructor. */ public MotorControlOutputGeneratorExtension(MotorControlOutput modelElement) { super(modelElement); } + + /** {@inheritDoc} */ + @Override + public String getWriteCode(String postfix, String singletonPostfix, OutputPort logicalSignal, + String value) { + return "set_velocity(" + value + ");\n"; + } + + /** {@inheritDoc} */ + @Override + public String getNoValWriteCode(String postfix, String singletonPostfix, + OutputPort logicalSignal) { + return ";\n"; + } } diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/framework/.ratings b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/framework/.ratings index 8072dbe7..28c2c905 100644 --- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/framework/.ratings +++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/framework/.ratings @@ -1,7 +1,7 @@ IInstanceGeneratorExtension.java 9d20878f9a1b9f82bd8f9f090bd989af1f08c8ab YELLOW IInstanceInitializationGeneratorExtension.java ae145d29cb2abbc492380c6af303a12fc2a0daa6 YELLOW IInstanceTerminationGeneratorExtension.java d9632d04207a484bbe46110ec5925c9850228f30 YELLOW -IPreinstalledHeaderGeneratorExtension.java 120c52d35969b35b5ff1ea50570401d5451ba221 YELLOW +IPreinstalledHeaderGeneratorExtension.java 3da78064729ba9664650d7beacafb61ef68d7733 YELLOW IPreinstalledLibraryGeneratorExtension.java 437fafdb45561b1acc6c54db2c43c39c48033280 YELLOW IRasPiCopiedHeaderGeneratorExtension.java 8c08db84c6dfe01b6eb242ea584f3765210fdc56 YELLOW IRasPiCopiedLibraryBasedGeneratorExtension.java edac836e2553f72a0487ac6455ae87d87d3f6aae YELLOW diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/framework/IPreinstalledHeaderGeneratorExtension.java b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/framework/IPreinstalledHeaderGeneratorExtension.java index 120c52d3..3da78064 100644 --- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/framework/IPreinstalledHeaderGeneratorExtension.java +++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/framework/IPreinstalledHeaderGeneratorExtension.java @@ -15,6 +15,8 @@ +--------------------------------------------------------------------------*/ package org.fortiss.af3.platform.raspberry.generator.framework; +import java.util.List; + /** * Interface for generator extensions, which require one or more header files to be imported in the * created main file. This is usually the case when the header files in question are pre-installed @@ -24,5 +26,5 @@ package org.fortiss.af3.platform.raspberry.generator.framework; */ public interface IPreinstalledHeaderGeneratorExtension { /** Returns the included header files. */ - public String getHeaderIncludes(); + public List<String> getHeaderIncludes(); } diff --git a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/templates/CProjectFile.stg b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/templates/CProjectFile.stg index c0de4217..290f08e7 100644 --- a/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/templates/CProjectFile.stg +++ b/org.fortiss.af3.platform.raspberry/src/org/fortiss/af3/platform/raspberry/generator/templates/CProjectFile.stg @@ -33,6 +33,7 @@ CDTProjectFile(PROJECT_NAME) ::= << <listOptionValue builtIn="false" value=""\${workspace_loc:/\${ProjName}/inc-lib}""/> <listOptionValue builtIn="false" value=""\${workspace_loc:/\${ProjName}}""/> <listOptionValue builtIn="false" value=""\${workspace_loc:/brick/inc}""/> + <listOptionValue builtIn="false" value=""\${workspace_loc:/vesc}""/> <listOptionValue builtIn="false" value=""\${workspace_loc:/af3pihal/inc}""/> </option> <option id="gnu.c.compiler.option.dialect.std.995945301" name="Language standard" superClass="gnu.c.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.c.compiler.dialect.default" valueType="enumerated"/> @@ -55,11 +56,13 @@ CDTProjectFile(PROJECT_NAME) ::= << <listOptionValue builtIn="false" value="brick"/> <listOptionValue builtIn="false" value="af3pihal"/> <listOptionValue builtIn="false" value="rt"/> + <listOptionValue builtIn="false" value="vesc"/> </option> <option id="gnu.c.link.option.paths.32490919" name="Library search path (-L)" superClass="gnu.c.link.option.paths" useByScannerDiscovery="false" valueType="libPaths"> <listOptionValue builtIn="false" value=""\${workspace_loc:/\${ProjName}/lib}""/> <listOptionValue builtIn="false" value=""\${workspace_loc:/af3pihal/Debug}""/> <listOptionValue builtIn="false" value=""\${workspace_loc:/brick/Debug}""/> + <listOptionValue builtIn="false" value=""\${workspace_loc:/vesc}""/> </option> <inputType id="cdt.managedbuild.tool.gnu.c.linker.input.1755029706" superClass="cdt.managedbuild.tool.gnu.c.linker.input"> <additionalInput kind="additionalinputdependency" paths="\$(USER_OBJS)"/> -- GitLab