use of io.sloeber.core.api.CompileDescription in project arduino-eclipse-plugin by Sloeber.
the class CompileProperties method updateScreen.
@Override
protected void updateScreen() {
disableListeners = true;
CompileDescription compDesc = (CompileDescription) getDescription(getConfdesc());
myWarningLevel.setText(compDesc.getWarningLevel().toString());
myCustomWarningLevel.setEnabled(compDesc.getWarningLevel() == WarningLevels.CUSTOM);
myCustomWarningLevel.setText(compDesc.getWarningLevel().getCustomWarningLevel());
mySizeCommand.setText(compDesc.getSizeCommand().toString());
myCustomSizeCommand.setEnabled(compDesc.getSizeCommand() == SizeCommands.CUSTOM);
myCustomSizeCommand.setText(compDesc.getSizeCommand().getCustomSizeCommand());
myCAndCppCommand.setText(compDesc.get_C_andCPP_CompileOptions());
myCCommand.setText(compDesc.get_C_CompileOptions());
myCppCommand.setText(compDesc.get_CPP_CompileOptions());
myAllCommand.setText(compDesc.get_All_CompileOptions());
myArchiveCommand.setText(compDesc.get_Archive_CompileOptions());
myAssemblyCommand.setText(compDesc.get_Assembly_CompileOptions());
myLinkCommand.setText(compDesc.get_Link_CompileOptions());
disableListeners = false;
}
use of io.sloeber.core.api.CompileDescription in project arduino-eclipse-plugin by Sloeber.
the class NewSketchWizard method performFinish.
@Override
public boolean performFinish() {
if (this.mProject != null) {
return true;
}
BoardDescription boardDescription = this.mArduinoPage.getBoardDescriptor();
CodeDescription codeDescription = this.mNewArduinoSketchWizardCodeSelectionPage.getCodeDescription();
CompileDescription compileDescription = new CompileDescription();
URI locationURI = (!this.mWizardPage.useDefaults()) ? this.mWizardPage.getLocationURI() : null;
compileDescription.setEnableParallelBuild(MyPreferences.getEnableParallelBuildForNewProjects());
boardDescription.saveUserSelection();
this.mProject = SloeberProject.createArduinoProject(this.mWizardPage.getProjectName(), locationURI, boardDescription, codeDescription, compileDescription, new NullProgressMonitor());
if (this.mProject == null) {
log(new Status(IStatus.ERROR, PLUGIN_ID, Messages.ui_new_sketch_error_failed_to_create_project));
return false;
}
// so now we set Eclipse to the right perspective and switch to our just
// created project
BasicNewProjectResourceWizard.updatePerspective(this.mConfig);
IWorkbenchWindow TheWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
BasicNewResourceWizard.selectAndReveal(this.mProject, TheWindow);
return true;
}
use of io.sloeber.core.api.CompileDescription in project arduino-eclipse-plugin by Sloeber.
the class RegressionTest method issue687.
/**
* support void loop{};
*
* @throws Exception
*/
@Test
public void issue687() throws Exception {
BoardDescription unoBoardid = Arduino.uno().getBoardDescriptor();
IProject theTestProject = null;
String projectName = "issue687";
IPath templateFolder = Shared.getTemplateFolder(projectName);
CodeDescription codeDescriptor = CodeDescription.createCustomTemplate(templateFolder);
try {
theTestProject = SloeberProject.createArduinoProject(projectName, null, unoBoardid, codeDescriptor, new CompileDescription(), new NullProgressMonitor());
// for the indexer
Shared.waitForAllJobsToFinish();
theTestProject.build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
if (Shared.hasBuildErrors(theTestProject)) {
fail("Failed to compile the project:" + projectName + " issue687 is not fixed");
}
} catch (Exception e) {
e.printStackTrace();
fail("Failed to create the project:" + projectName);
return;
}
}
use of io.sloeber.core.api.CompileDescription in project arduino-eclipse-plugin by Sloeber.
the class RegressionTest method openAndCloseUsesSavedSettings.
/**
* open and close a project should keep the compileDescription and
* BoardDescriotion
*
* @throws Exception
*/
@Test
public void openAndCloseUsesSavedSettings() throws Exception {
CodeDescription codeDesc = new CodeDescription(CodeDescription.CodeTypes.defaultCPP);
String proj1Name = "openModAndClose1";
BoardDescription proj1BoardDesc = Arduino.uno().getBoardDescriptor();
OtherDescription otherDesc = new OtherDescription();
otherDesc.setVersionControlled(true);
CompileDescription proj1CompileDesc = getBunkersCompileDescription();
IProject proj1 = SloeberProject.createArduinoProject(proj1Name, null, proj1BoardDesc, codeDesc, proj1CompileDesc, otherDesc, new NullProgressMonitor());
String proj2Name = "openModAndClose2";
BoardDescription proj2BoardDesc = Arduino.mega2560Board().getBoardDescriptor();
CompileDescription proj2CompileDesc = new CompileDescription();
IProject proj2 = SloeberProject.createArduinoProject(proj2Name, null, proj2BoardDesc, codeDesc, proj2CompileDesc, new NullProgressMonitor());
// Read the data we want to test
// for the indexer
Shared.waitForAllJobsToFinish();
SloeberProject proj1SloeberDesc = SloeberProject.getSloeberProject(proj1);
ICProjectDescription proj1Desc = CoreModel.getDefault().getProjectDescription(proj1);
ICConfigurationDescription proj1ConfDesc = proj1Desc.getActiveConfiguration();
BoardDescription proj1CreatedBoardDesc = proj1SloeberDesc.getBoardDescription(proj1ConfDesc.getName(), false);
CompileDescription proj1CreatedCompileDesc = proj1SloeberDesc.getCompileDescription(proj1ConfDesc.getName(), false);
SloeberProject proj2SloeberDesc = SloeberProject.getSloeberProject(proj2);
ICProjectDescription proj2Desc = CoreModel.getDefault().getProjectDescription(proj2);
ICConfigurationDescription proj2ConfDesc = proj2Desc.getActiveConfiguration();
BoardDescription proj2CreatedBoardDesc = proj2SloeberDesc.getBoardDescription(proj2ConfDesc.getName(), false);
CompileDescription proj2CreatedCompileDesc = proj2SloeberDesc.getCompileDescription(proj2ConfDesc.getName(), false);
// get the filenames to copy
IFile file = proj1.getFile(SLOEBER_CFG);
File proj1SloeberFile = file.getLocation().toFile();
file = proj2.getFile(SLOEBER_CFG);
File proj2SloeberFile = file.getLocation().toFile();
// close and reopen the project
proj2.close(null);
// just wait a while
Thread.sleep(1000);
Shared.waitForAllJobsToFinish();
// copy from proj1 to proj2
FileUtils.copyFile(proj1SloeberFile, proj2SloeberFile);
// reopen the project
proj2.open(null);
Thread.sleep(1000);
Shared.waitForAllJobsToFinish();
// reread project 2
proj2SloeberDesc = SloeberProject.getSloeberProject(proj2);
proj2Desc = CoreModel.getDefault().getProjectDescription(proj2);
proj2ConfDesc = proj2Desc.getActiveConfiguration();
BoardDescription proj2OpenedBoardDesc = proj2SloeberDesc.getBoardDescription(proj2ConfDesc.getName(), false);
CompileDescription proj2OpenedCompileDesc = proj2SloeberDesc.getCompileDescription(proj2ConfDesc.getName(), false);
// check the setup was done correctly
if (!proj1BoardDesc.equals(proj1CreatedBoardDesc)) {
fail("Project 1 not created properly.");
}
if (!proj2BoardDesc.equals(proj2CreatedBoardDesc)) {
fail("Project 2 not created properly.");
}
if (!proj1CompileDesc.equals(proj1CreatedCompileDesc)) {
fail("Project 1 not created properly.");
}
if (!proj2CompileDesc.equals(proj2CreatedCompileDesc)) {
fail("Project 2 not created properly.");
}
// check wether the file modification was taken into account
if (!proj1BoardDesc.equals(proj2OpenedBoardDesc)) {
fail("Project 2 not created properly.");
}
if (!proj1CompileDesc.equals(proj2OpenedCompileDesc)) {
fail("Project 2 not created properly.");
}
}
use of io.sloeber.core.api.CompileDescription in project arduino-eclipse-plugin by Sloeber.
the class RegressionTest method is_extern_C_taken_into_account.
/**
* If a .ino file is including a include using extern C is this handled properly
* by the ino to cpp parser
*
* @throws Exception
*/
@Test
public void is_extern_C_taken_into_account() throws Exception {
BoardDescription unoBoardid = Arduino.uno().getBoardDescriptor();
IProject theTestProject = null;
String projectName = "externc";
IPath templateFolder = Shared.getTemplateFolder(projectName);
CodeDescription codeDescriptor = CodeDescription.createCustomTemplate(templateFolder);
NullProgressMonitor monitor = new NullProgressMonitor();
try {
theTestProject = SloeberProject.createArduinoProject(projectName, null, unoBoardid, codeDescriptor, new CompileDescription(), new NullProgressMonitor());
// for the indexer
Shared.waitForAllJobsToFinish();
theTestProject.build(IncrementalProjectBuilder.FULL_BUILD, monitor);
if (Shared.hasBuildErrors(theTestProject)) {
fail("Failed to compile the project:" + projectName + " extern \"C\" has not been taken into account properly.");
}
} catch (Exception e) {
e.printStackTrace();
fail("Failed to create the project:" + projectName);
return;
}
}
Aggregations