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;
|
package org.eclipse.cdt.arduino.core.internal;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
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.arduino.core.internal.build.ArduinoBuilder;
|
||||||
import org.eclipse.cdt.core.CCProjectNature;
|
import org.eclipse.cdt.core.CCProjectNature;
|
||||||
import org.eclipse.cdt.core.CProjectNature;
|
import org.eclipse.cdt.core.CProjectNature;
|
||||||
import org.eclipse.cdt.core.model.CoreModel;
|
import org.eclipse.cdt.core.model.CoreModel;
|
||||||
import org.eclipse.cdt.core.model.IPathEntry;
|
import org.eclipse.cdt.core.model.IPathEntry;
|
||||||
import org.eclipse.core.resources.IBuildConfiguration;
|
|
||||||
import org.eclipse.core.resources.ICommand;
|
import org.eclipse.core.resources.ICommand;
|
||||||
import org.eclipse.core.resources.IFile;
|
import org.eclipse.core.resources.IFile;
|
||||||
import org.eclipse.core.resources.IProject;
|
import org.eclipse.core.resources.IProject;
|
||||||
|
@ -57,25 +52,8 @@ public class ArduinoProjectGenerator {
|
||||||
command.setBuilding(IncrementalProjectBuilder.AUTO_BUILD, false);
|
command.setBuilding(IncrementalProjectBuilder.AUTO_BUILD, false);
|
||||||
projDesc.setBuildSpec(new ICommand[] { command });
|
projDesc.setBuildSpec(new ICommand[] { command });
|
||||||
|
|
||||||
// Create the default config - uno
|
|
||||||
projDesc.setBuildConfigs(new String[] { "uno" }); //$NON-NLS-1$
|
|
||||||
|
|
||||||
project.setDescription(projDesc, monitor);
|
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
|
// Generate files
|
||||||
ArduinoTemplateGenerator templateGen = new ArduinoTemplateGenerator();
|
ArduinoTemplateGenerator templateGen = new ArduinoTemplateGenerator();
|
||||||
Map<String, Object> fmModel = new HashMap<>();
|
Map<String, Object> fmModel = new HashMap<>();
|
||||||
|
|
|
@ -109,9 +109,11 @@ public class ArduinoBuildConfiguration {
|
||||||
|
|
||||||
// return it if it exists already
|
// return it if it exists already
|
||||||
for (IBuildConfiguration config : project.getBuildConfigs()) {
|
for (IBuildConfiguration config : project.getBuildConfigs()) {
|
||||||
ArduinoBuildConfiguration arduinoConfig = config.getAdapter(ArduinoBuildConfiguration.class);
|
if (!config.getName().equals(IBuildConfiguration.DEFAULT_CONFIG_NAME)) {
|
||||||
if (arduinoConfig.matches(target)) {
|
ArduinoBuildConfiguration arduinoConfig = config.getAdapter(ArduinoBuildConfiguration.class);
|
||||||
return arduinoConfig;
|
if (arduinoConfig.matches(target)) {
|
||||||
|
return arduinoConfig;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -232,6 +234,17 @@ public class ArduinoBuildConfiguration {
|
||||||
String platformName = settings.get(PLATFORM_NAME, ""); //$NON-NLS-1$
|
String platformName = settings.get(PLATFORM_NAME, ""); //$NON-NLS-1$
|
||||||
String boardName = settings.get(BOARD_NAME, ""); //$NON-NLS-1$
|
String boardName = settings.get(BOARD_NAME, ""); //$NON-NLS-1$
|
||||||
board = ArduinoManager.instance.getBoard(boardName, platformName, packageName);
|
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;
|
return board;
|
||||||
}
|
}
|
||||||
|
@ -302,6 +315,7 @@ public class ArduinoBuildConfiguration {
|
||||||
IFolder buildFolder = getBuildFolder();
|
IFolder buildFolder = getBuildFolder();
|
||||||
if (!buildFolder.exists()) {
|
if (!buildFolder.exists()) {
|
||||||
buildFolder.create(true, true, monitor);
|
buildFolder.create(true, true, monitor);
|
||||||
|
buildFolder.setDerived(true, monitor);
|
||||||
ICProject cproject = CoreModel.getDefault().create(project);
|
ICProject cproject = CoreModel.getDefault().create(project);
|
||||||
IOutputEntry output = CoreModel.newOutputEntry(buildFolder.getFullPath());
|
IOutputEntry output = CoreModel.newOutputEntry(buildFolder.getFullPath());
|
||||||
IPathEntry[] oldEntries = cproject.getRawPathEntries();
|
IPathEntry[] oldEntries = cproject.getRawPathEntries();
|
||||||
|
|
Loading…
Add table
Reference in a new issue