1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-19 14:15:50 +02:00

Bug 480585 - Better handling of default config.

We no longer create a default config. Instead we use the Eclipse
default and select a default board for it. At build time though we
make sure we create a new one for it.

Change-Id: I11bd9e67f1df160d5a660d383eb37a74da8ec38c
This commit is contained in:
Doug Schaefer 2015-11-01 22:32:12 -05:00
parent acf1d055c1
commit 365828b0fd
2 changed files with 17 additions and 25 deletions

View file

@ -11,18 +11,13 @@
package org.eclipse.cdt.arduino.core.internal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.cdt.arduino.core.internal.board.ArduinoBoard;
import org.eclipse.cdt.arduino.core.internal.board.ArduinoManager;
import org.eclipse.cdt.arduino.core.internal.build.ArduinoBuildConfiguration;
import org.eclipse.cdt.arduino.core.internal.build.ArduinoBuilder;
import org.eclipse.cdt.core.CCProjectNature;
import org.eclipse.cdt.core.CProjectNature;
import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.IPathEntry;
import org.eclipse.core.resources.IBuildConfiguration;
import org.eclipse.core.resources.ICommand;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
@ -57,25 +52,8 @@ public class ArduinoProjectGenerator {
command.setBuilding(IncrementalProjectBuilder.AUTO_BUILD, false);
projDesc.setBuildSpec(new ICommand[] { command });
// Create the default config - uno
projDesc.setBuildConfigs(new String[] { "uno" }); //$NON-NLS-1$
project.setDescription(projDesc, monitor);
IBuildConfiguration config = project.getBuildConfig("uno"); //$NON-NLS-1$
ArduinoBuildConfiguration arduinoConfig = config.getAdapter(ArduinoBuildConfiguration.class);
ArduinoBoard board = ArduinoManager.instance.getBoard("Arduino/Genuino Uno", "Arduino AVR Boards", "arduino"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
if (board == null) {
// Just find one
List<ArduinoBoard> boards = ArduinoManager.instance.getInstalledBoards();
if (!boards.isEmpty()) {
board = boards.get(0);
}
}
if (board != null) {
arduinoConfig.setBoard(board);
}
// Generate files
ArduinoTemplateGenerator templateGen = new ArduinoTemplateGenerator();
Map<String, Object> fmModel = new HashMap<>();

View file

@ -109,9 +109,11 @@ public class ArduinoBuildConfiguration {
// return it if it exists already
for (IBuildConfiguration config : project.getBuildConfigs()) {
ArduinoBuildConfiguration arduinoConfig = config.getAdapter(ArduinoBuildConfiguration.class);
if (arduinoConfig.matches(target)) {
return arduinoConfig;
if (!config.getName().equals(IBuildConfiguration.DEFAULT_CONFIG_NAME)) {
ArduinoBuildConfiguration arduinoConfig = config.getAdapter(ArduinoBuildConfiguration.class);
if (arduinoConfig.matches(target)) {
return arduinoConfig;
}
}
}
@ -232,6 +234,17 @@ public class ArduinoBuildConfiguration {
String platformName = settings.get(PLATFORM_NAME, ""); //$NON-NLS-1$
String boardName = settings.get(BOARD_NAME, ""); //$NON-NLS-1$
board = ArduinoManager.instance.getBoard(boardName, platformName, packageName);
if (board == null) {
// Default to Uno or first one we find
board = ArduinoManager.instance.getBoard("Arduino/Genuino Uno", "Arduino AVR Boards", "arduino"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
if (board == null) {
List<ArduinoBoard> boards = ArduinoManager.instance.getInstalledBoards();
if (!boards.isEmpty()) {
board = boards.get(0);
}
}
}
}
return board;
}
@ -302,6 +315,7 @@ public class ArduinoBuildConfiguration {
IFolder buildFolder = getBuildFolder();
if (!buildFolder.exists()) {
buildFolder.create(true, true, monitor);
buildFolder.setDerived(true, monitor);
ICProject cproject = CoreModel.getDefault().create(project);
IOutputEntry output = CoreModel.newOutputEntry(buildFolder.getFullPath());
IPathEntry[] oldEntries = cproject.getRawPathEntries();