java - Get return value of build configuration -
i create cdt eclipse plugin specific build configuration. use setbuildcommand()
, setbuildarguments()
functions call batch file.
my current code is:
icprojectdescriptionmanager mngr = coremodel.getdefault().getprojectdescriptionmanager(); icprojectdescription des = mngr.createprojectdescription(project, false); managedproject mproj = new managedproject(des); configuration cfg = new configuration(mproj, null, "my.configuration.id", "myconfiguration"); cfg.setbuildcommand("script.bat"); cfg.setbuildarguments(arg1 + " " + arg2);
i return code batch file can't find way it.
any idea? maybe know how add marker project hold information?
correct me if i'm wrong, programatically creating cproject definition bad mojo. answer using 'standard' plugin.xml + activator model (like when make new plugin project template).
i think you're looking ierrorparser, can parse output bat file.
myexerrorparser.java
import org.eclipse.cdt.core.* import org.eclipse.core.resources.*; public class myexerrorparser implements ierrorparser { public myexerrorparser() { } @override public boolean processline(string line, errorparsermanager eoparser) { iproject p = resourcesplugin.getworkspace().getroot() .getproject("hello_world"); p.getfile("main.c"); if(line.contains("my_error_id_str")) { int err_lvl = imarkergenerator.severity_error_resource; problemmarkerinfo marker = new problemmarkerinfo(p , 5, "bad", err_lvl, "foo"); eoparser.addproblemmarker(marker); return true; } return false; } }
ideal
when 'processline()' gets called, have opportunity check environment var %errorlevel% (or $? in linux)
i can't life of me figure out how *currentbuilder.*environment() map use check that. var should there
i guess environment() path monsterous rat-hole of time try figure out. xxx
proposed
- just add %errorlevel% check bat file need it. if errorlevel >0, output message "my_error_id_str. easy ierrorparser above evaluate it.
supplemental
here toolchain exercises above code. example calls shell script build command, no arguments. think may more of you're after? either way, many times on easier extend/maintain programmatic-implementation used.
<?xml version="1.0" encoding="utf-8"?> <?eclipse version="3.4"?> <plugin> <extension point="org.eclipse.cdt.managedbuilder.core.builddefinitions"> <projecttype buildartefacttype="org.eclipse.cdt.build.core.buildartefacttype.exe" id="toolchain.projecttype1" isabstract="false" name="justin"> <configuration artifactextension="o" buildartefacttype="org.eclipse.cdt.build.core.buildartefacttype.exe" cleancommand="rm -rf" id="toolchain.configuration1" name="debug"> <toolchain errorparsers="exerrorparser" id="toolchain.toolchain1" isabstract="false" name="example toolchain" supportsmanagedbuild="true" targettool="toolchain.tool1"> <builder command="make" errorparsers="exerrorparser" id="toolchain.builder1" isabstract="false" isvariablecasesensitive="false" name="builder"> </builder> <tool command="/home/jmreina/example.sh commandlinepattern="${command}" errorparsers="exerrorparser" id="toolchain.tool1" isabstract="false" name="example tool"> <inputtype id="toolchain.inputtype1" multipleoftype="false" primaryinput="true" sources="c"></inputtype> <outputtype id="toolchain.outputtype1" outputs="txt" primaryoutput="true"></outputtype> </tool> </toolchain> </configuration> </projecttype> </extension> <extension id="id1" name="name" point="org.eclipse.cdt.core.errorparser"> <errorparser class="myexerrorparser" id="exerrorparser" name="myexparsername"> </errorparser> </extension> </plugin>
Comments
Post a Comment