mirror of
https://github.com/peterdell/wudsn-ide.git
synced 2024-05-31 17:41:28 +00:00
Evaluate RunnerPaths.getDefaultRunnerAbsolutePath
This commit is contained in:
parent
6472440284
commit
1febfd4b1f
|
@ -77,6 +77,7 @@ import com.wudsn.ide.lng.preferences.CompilerRunPreferences;
|
||||||
import com.wudsn.ide.lng.runner.Runner;
|
import com.wudsn.ide.lng.runner.Runner;
|
||||||
import com.wudsn.ide.lng.runner.RunnerDefinition;
|
import com.wudsn.ide.lng.runner.RunnerDefinition;
|
||||||
import com.wudsn.ide.lng.runner.RunnerId;
|
import com.wudsn.ide.lng.runner.RunnerId;
|
||||||
|
import com.wudsn.ide.lng.runner.RunnerPaths.RunnerPath;
|
||||||
import com.wudsn.ide.lng.symbol.CompilerSymbolsView;
|
import com.wudsn.ide.lng.symbol.CompilerSymbolsView;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -605,11 +606,15 @@ final class LanguageEditorCompileCommand {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Execution type: pre-defined or USER_DEFINED_APPLICATION
|
// Execution type: predefined or USER_DEFINED_APPLICATION
|
||||||
else {
|
else {
|
||||||
boolean error = false;
|
boolean error = false;
|
||||||
|
|
||||||
String runnerExecutablePath = compilerRunPreferences.getRunnerExecutablePath(runnerId);
|
String runnerExecutablePath = compilerRunPreferences.getRunnerExecutablePath(runnerId);
|
||||||
|
if (StringUtility.isEmpty(runnerExecutablePath)) {
|
||||||
|
runnerExecutablePath = plugin.getRunnerPaths().getDefaultRunnerAbsolutePath(hardware, runnerId);
|
||||||
|
}
|
||||||
|
|
||||||
if (runnerCommandLine.contains(RunnerDefinition.RUNNER_EXECUTABLE_PATH)) {
|
if (runnerCommandLine.contains(RunnerDefinition.RUNNER_EXECUTABLE_PATH)) {
|
||||||
if (StringUtility.isEmpty(runnerExecutablePath)) {
|
if (StringUtility.isEmpty(runnerExecutablePath)) {
|
||||||
// ERROR: Path to application executable is not
|
// ERROR: Path to application executable is not
|
||||||
|
|
|
@ -43,6 +43,7 @@ import com.wudsn.ide.lng.Texts;
|
||||||
import com.wudsn.ide.lng.preferences.LanguageHardwareCompilerDefinitionPreferences;
|
import com.wudsn.ide.lng.preferences.LanguageHardwareCompilerDefinitionPreferences;
|
||||||
import com.wudsn.ide.lng.runner.RunnerDefinition;
|
import com.wudsn.ide.lng.runner.RunnerDefinition;
|
||||||
import com.wudsn.ide.lng.runner.RunnerId;
|
import com.wudsn.ide.lng.runner.RunnerId;
|
||||||
|
import com.wudsn.ide.lng.runner.RunnerPaths.RunnerPath;
|
||||||
import com.wudsn.ide.lng.runner.RunnerRegistry;
|
import com.wudsn.ide.lng.runner.RunnerRegistry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -52,8 +53,7 @@ import com.wudsn.ide.lng.runner.RunnerRegistry;
|
||||||
* @author Peter Dell
|
* @author Peter Dell
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public final class LanguageEditorCompileCommandDelegate
|
public final class LanguageEditorCompileCommandDelegate implements IActionDelegate2, IWorkbenchWindowPulldownDelegate2 {
|
||||||
implements IActionDelegate2, IWorkbenchWindowPulldownDelegate2 {
|
|
||||||
|
|
||||||
private IWorkbenchWindow window;
|
private IWorkbenchWindow window;
|
||||||
private Menu menu;
|
private Menu menu;
|
||||||
|
@ -110,7 +110,8 @@ public final class LanguageEditorCompileCommandDelegate
|
||||||
RunnerRegistry runnerRegistry = languagePlugin.getRunnerRegistry();
|
RunnerRegistry runnerRegistry = languagePlugin.getRunnerRegistry();
|
||||||
Hardware hardware = languageEditor.getHardware();
|
Hardware hardware = languageEditor.getHardware();
|
||||||
List<RunnerDefinition> runnerDefinitions = runnerRegistry.getDefinitions(hardware);
|
List<RunnerDefinition> runnerDefinitions = runnerRegistry.getDefinitions(hardware);
|
||||||
LanguageHardwareCompilerDefinitionPreferences languageHardwareCompilerDefinitionPreferences = languageEditor.getLanguageHardwareCompilerPreferences();
|
LanguageHardwareCompilerDefinitionPreferences languageHardwareCompilerDefinitionPreferences = languageEditor
|
||||||
|
.getLanguageHardwareCompilerPreferences();
|
||||||
|
|
||||||
Menu menu = new Menu(parent);
|
Menu menu = new Menu(parent);
|
||||||
setMenu(menu);
|
setMenu(menu);
|
||||||
|
@ -123,8 +124,15 @@ public final class LanguageEditorCompileCommandDelegate
|
||||||
String runnerName = runnerDefinition.getName();
|
String runnerName = runnerDefinition.getName();
|
||||||
// The system default application does not need an executable path.
|
// The system default application does not need an executable path.
|
||||||
if (!runnerId.equals(RunnerId.DEFAULT_APPLICATION)) {
|
if (!runnerId.equals(RunnerId.DEFAULT_APPLICATION)) {
|
||||||
if (StringUtility.isEmpty(languageHardwareCompilerDefinitionPreferences.getRunnerExecutablePath(runnerId))) {
|
// Explicit path configured?
|
||||||
continue;
|
if (StringUtility
|
||||||
|
.isEmpty(languageHardwareCompilerDefinitionPreferences.getRunnerExecutablePath(runnerId))) {
|
||||||
|
// Executable present in default path?
|
||||||
|
String executablePath = languagePlugin.getRunnerPaths().getDefaultRunnerAbsolutePath(hardware,
|
||||||
|
runnerId);
|
||||||
|
if (StringUtility.isEmpty(executablePath)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -83,9 +83,9 @@ public final class RunnerPaths {
|
||||||
public RunnerPaths() {
|
public RunnerPaths() {
|
||||||
runnerPaths = new TreeMap<String, RunnerPath>();
|
runnerPaths = new TreeMap<String, RunnerPath>();
|
||||||
// See https://github.com/peterdell/wudsn-ide-tools
|
// See https://github.com/peterdell/wudsn-ide-tools
|
||||||
add(Hardware.ATARI8BIT, "altirra", Platform.OS_LINUX,Platform.ARCH_X86_64, "Altirra/Altirra.sh");
|
add(Hardware.ATARI8BIT, "altirra", Platform.OS_LINUX, Platform.ARCH_X86_64, "Altirra/Altirra.sh");
|
||||||
add(Hardware.ATARI8BIT, "altirra", Platform.OS_MACOSX, Platform.ARCH_X86_64, "Altirra/Altirra.sh");
|
add(Hardware.ATARI8BIT, "altirra", Platform.OS_MACOSX, Platform.ARCH_X86_64, "Altirra/Altirra.sh");
|
||||||
add(Hardware.ATARI8BIT, "altirra", Platform.OS_WIN32,Platform.ARCH_X86, "Altirra/Altirra.exe");
|
add(Hardware.ATARI8BIT, "altirra", Platform.OS_WIN32, Platform.ARCH_X86, "Altirra/Altirra.exe");
|
||||||
add(Hardware.ATARI8BIT, "altirra", Platform.OS_WIN32, Platform.ARCH_X86_64, "Altirra/Altirra64.exe");
|
add(Hardware.ATARI8BIT, "altirra", Platform.OS_WIN32, Platform.ARCH_X86_64, "Altirra/Altirra64.exe");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -114,6 +114,17 @@ public final class RunnerPaths {
|
||||||
return runnerPath;
|
return runnerPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getDefaultRunnerAbsolutePath(Hardware hardware, String runnerId) {
|
||||||
|
RunnerPath runnerPath = getDefaultRunnerPath(hardware, runnerId);
|
||||||
|
if (runnerPath != null) {
|
||||||
|
File file = runnerPath.getAbsoluteFile();
|
||||||
|
if (file != null && file.canExecute()) {
|
||||||
|
return file.getAbsolutePath();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
public List<RunnerPath> getRunnerPaths() {
|
public List<RunnerPath> getRunnerPaths() {
|
||||||
return Collections.unmodifiableList(new ArrayList<RunnerPath>(runnerPaths.values()));
|
return Collections.unmodifiableList(new ArrayList<RunnerPath>(runnerPaths.values()));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user