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:
parent
acf1d055c1
commit
365828b0fd
2 changed files with 17 additions and 25 deletions
|
@ -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<>();
|
||||
|
|
|
@ -109,11 +109,13 @@ public class ArduinoBuildConfiguration {
|
|||
|
||||
// return it if it exists already
|
||||
for (IBuildConfiguration config : project.getBuildConfigs()) {
|
||||
if (!config.getName().equals(IBuildConfiguration.DEFAULT_CONFIG_NAME)) {
|
||||
ArduinoBuildConfiguration arduinoConfig = config.getAdapter(ArduinoBuildConfiguration.class);
|
||||
if (arduinoConfig.matches(target)) {
|
||||
return arduinoConfig;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Not found, need to create one
|
||||
Set<String> configNames = new HashSet<>();
|
||||
|
@ -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();
|
||||
|
|
Loading…
Add table
Reference in a new issue