[Monodevelop-patches-list] r2549 - in trunk/MonoDevelop/Extras/JavaBinding: . Gui Project templates
Lluis Sanchez <lluis@ximian.com>
lluis at mono-cvs.ximian.com
Fri May 20 10:37:15 EDT 2005
Author: lluis
Date: 2005-05-20 10:37:15 -0400 (Fri, 20 May 2005)
New Revision: 2549
Added:
trunk/MonoDevelop/Extras/JavaBinding/Gui/GlobalOptionsPanel.cs
trunk/MonoDevelop/Extras/JavaBinding/Java.glade
trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmLibraryProject.xpt.xml
Modified:
trunk/MonoDevelop/Extras/JavaBinding/ChangeLog
trunk/MonoDevelop/Extras/JavaBinding/Gui/ProjectConfigurationPropertyPanel.cs
trunk/MonoDevelop/Extras/JavaBinding/JavaBinding.addin.xml
trunk/MonoDevelop/Extras/JavaBinding/JavaBindingCompilerServices.cs
trunk/MonoDevelop/Extras/JavaBinding/JavaLanguageBinding.cs
trunk/MonoDevelop/Extras/JavaBinding/Makefile.am
trunk/MonoDevelop/Extras/JavaBinding/Project/JavaCompilerParameters.cs
trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmConsoleApplicationProject.xpt.xml
trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmGladeApplicationProject.xpt.xml
trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmGnomeApplicationProject.xpt.xml
trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmGtkApplicationProject.xpt.xml
Log:
2005-05-20 Lluis Sanchez Gual <lluis at novell.com>
* JavaBindingCompilerServices.cs: Automatically generate wrappers
for referenced assemblies. Improved error parsing. Many fixes.
* ProjectConfigurationPropertyPanel.cs: Moved to Glade.
* JavaLanguageBinding.cs: Added some global configuration properties.
* JavaCompilerParameters.cs: Added missing DefineSymbols property.
* JavaBinding.addin.xml: Added new configuration dialogs and a new
template.
* Makefile.am: Added a new template and a glade file.
* templates/IkvmGtkApplicationProject.xpt.xml:
* templates/IkvmGladeApplicationProject.xpt.xml:
* templates/IkvmGnomeApplicationProject.xpt.xml: Added GTK references
in the GTK# projects.
* templates/IkvmConsoleApplicationProject.xpt.xml: Removed hard-coded
classpath.
* Java.glade: New glade file for java options.
* Gui/GlobalOptionsPanel.cs: New java options panel.
* templates/IkvmLibraryProject.xpt.xml: New project template.
Modified: trunk/MonoDevelop/Extras/JavaBinding/ChangeLog
===================================================================
--- trunk/MonoDevelop/Extras/JavaBinding/ChangeLog 2005-05-20 14:28:56 UTC (rev 2548)
+++ trunk/MonoDevelop/Extras/JavaBinding/ChangeLog 2005-05-20 14:37:15 UTC (rev 2549)
@@ -1,3 +1,23 @@
+2005-05-20 Lluis Sanchez Gual <lluis at novell.com>
+
+ * JavaBindingCompilerServices.cs: Automatically generate wrappers
+ for referenced assemblies. Improved error parsing. Many fixes.
+ * ProjectConfigurationPropertyPanel.cs: Moved to Glade.
+ * JavaLanguageBinding.cs: Added some global configuration properties.
+ * JavaCompilerParameters.cs: Added missing DefineSymbols property.
+ * JavaBinding.addin.xml: Added new configuration dialogs and a new
+ template.
+ * Makefile.am: Added a new template and a glade file.
+ * templates/IkvmGtkApplicationProject.xpt.xml:
+ * templates/IkvmGladeApplicationProject.xpt.xml:
+ * templates/IkvmGnomeApplicationProject.xpt.xml: Added GTK references
+ in the GTK# projects.
+ * templates/IkvmConsoleApplicationProject.xpt.xml: Removed hard-coded
+ classpath.
+ * Java.glade: New glade file for java options.
+ * Gui/GlobalOptionsPanel.cs: New java options panel.
+ * templates/IkvmLibraryProject.xpt.xml: New project template.
+
2005-04-17 John Luke <john.luke at gmail.com>
* Makefile.am: fix distcheck
Added: trunk/MonoDevelop/Extras/JavaBinding/Gui/GlobalOptionsPanel.cs
===================================================================
--- trunk/MonoDevelop/Extras/JavaBinding/Gui/GlobalOptionsPanel.cs 2005-05-20 14:28:56 UTC (rev 2548)
+++ trunk/MonoDevelop/Extras/JavaBinding/Gui/GlobalOptionsPanel.cs 2005-05-20 14:37:15 UTC (rev 2549)
@@ -0,0 +1,71 @@
+
+using System;
+using Gtk;
+
+using MonoDevelop.Internal.Project;
+using MonoDevelop.Internal.ExternalTool;
+using MonoDevelop.Gui.Dialogs;
+using MonoDevelop.Gui.Widgets;
+using MonoDevelop.Services;
+using MonoDevelop.Core.Services;
+using MonoDevelop.Core.Properties;
+using MonoDevelop.Core.AddIns.Codons;
+
+namespace JavaBinding
+{
+ public class GlobalOptionsPanelPanel : AbstractOptionPanel
+ {
+ class GlobalOptionsPanelWidget : GladeWidgetExtract
+ {
+ //
+ // Gtk Controls
+ //
+ [Glade.Widget] Gnome.FileEntry ikvmPathEntry;
+ [Glade.Widget] Entry compilerPathEntry;
+ [Glade.Widget] Entry classpathEntry;
+ [Glade.Widget] ComboBox compilerCombo;
+
+ // compiler chooser
+
+ public GlobalOptionsPanelWidget () : base ("Java.glade", "GlobalOptionsPanel")
+ {
+ ListStore store = new ListStore (typeof (string));
+ store.AppendValues (GettextCatalog.GetString ("Javac"));
+ store.AppendValues (GettextCatalog.GetString ("Gcj"));
+ compilerCombo.Model = store;
+ CellRendererText cr = new CellRendererText ();
+ compilerCombo.PackStart (cr, true);
+ compilerCombo.AddAttribute (cr, "text", 0);
+ compilerCombo.Active = (int) JavaLanguageBinding.Properties.CompilerType;
+
+ ikvmPathEntry.Filename = JavaLanguageBinding.Properties.IkvmPath;
+ compilerPathEntry.Text = JavaLanguageBinding.Properties.CompilerCommand;
+ classpathEntry.Text = JavaLanguageBinding.Properties.Classpath;
+ }
+
+ public bool Store ()
+ {
+ JavaLanguageBinding.Properties.IkvmPath = ikvmPathEntry.Filename;
+ JavaLanguageBinding.Properties.CompilerCommand = compilerPathEntry.Text;
+ JavaLanguageBinding.Properties.Classpath = classpathEntry.Text;
+
+ JavaLanguageBinding.Properties.CompilerType = (JavaCompiler) compilerCombo.Active;
+ return true;
+ }
+ }
+
+ GlobalOptionsPanelWidget widget;
+
+ public override void LoadPanelContents()
+ {
+ Add (widget = new GlobalOptionsPanelWidget ());
+ }
+
+ public override bool StorePanelContents()
+ {
+ bool result = true;
+ result = widget.Store ();
+ return result;
+ }
+ }
+}
Modified: trunk/MonoDevelop/Extras/JavaBinding/Gui/ProjectConfigurationPropertyPanel.cs
===================================================================
--- trunk/MonoDevelop/Extras/JavaBinding/Gui/ProjectConfigurationPropertyPanel.cs 2005-05-20 14:28:56 UTC (rev 2548)
+++ trunk/MonoDevelop/Extras/JavaBinding/Gui/ProjectConfigurationPropertyPanel.cs 2005-05-20 14:37:15 UTC (rev 2549)
@@ -21,159 +21,108 @@
{
public class ProjectConfigurationPropertyPanel : AbstractOptionPanel
{
- private Label runtimeLabel = new Label ();
- private Label labelWarnings = new Label ();
- private Label labelOutput = new Label ();
- private Label titleLabel = new Label ();
- private Label labelCompiler = new Label ();
- private Label labelClasspath = new Label ();
- private Label labelMainClass = new Label ();
-
- private Button browseButton;
-
- private CheckButton checkDebug = new CheckButton (GettextCatalog.GetString ("Enable debug"));
- private CheckButton checkDeprecation = new CheckButton (GettextCatalog.GetString ("Deprecated"));
- private CheckButton checkOptimize = new CheckButton (GettextCatalog.GetString ("Enable optimizations"));
- private CheckButton checkWarnings = new CheckButton (GettextCatalog.GetString ("Generate Warnings"));
-
- // compiler chooser
- private RadioButton javac = new RadioButton ("javac");
- private RadioButton gcj;
-
- private Entry outputAssembly = new Entry ();
- private Entry outputDirectory = new Entry ();
- private Entry compilerPath = new Entry ();
- private Entry classPath = new Entry ();
- private Entry mainClass = new Entry ();
-
- JavaCompilerParameters compilerParameters = null;
- DotNetProjectConfiguration configuration;
-
- public override bool ReceiveDialogMessage(DialogMessage message)
+ class CodeGenerationPanelWidget : GladeWidgetExtract
{
- if (message == DialogMessage.OK) {
+ //
+ // Gtk Controls
+ //
+ [Glade.Widget] Entry symbolsEntry;
+ [Glade.Widget] Entry mainClassEntry;
+ [Glade.Widget] Entry compilerEntry;
+ [Glade.Widget] Entry classPathEntry;
+ [Glade.Widget] ComboBox compileTargetCombo;
+ [Glade.Widget] CheckButton generateWarningsCheckButton;
+ [Glade.Widget] CheckButton deprecationCheckButton;
+ [Glade.Widget] CheckButton enableOptimizationCheckButton;
+ [Glade.Widget] CheckButton warningsAsErrorsCheckButton;
+ [Glade.Widget] CheckButton generateDebugInformationCheckButton;
+ [Glade.Widget] RadioButton compilerGcjButton;
+ [Glade.Widget] RadioButton compilerJavacButton;
+
+ // compiler chooser
+
+ JavaCompilerParameters compilerParameters = null;
+ DotNetProjectConfiguration configuration;
+
+ public CodeGenerationPanelWidget (IProperties CustomizationObject) : base ("Java.glade", "CodeGenerationPanel")
+ {
+ configuration = (DotNetProjectConfiguration)((IProperties)CustomizationObject).GetProperty("Config");
+ compilerParameters = (JavaCompilerParameters) configuration.CompilationParameters;
+
+ ListStore store = new ListStore (typeof (string));
+ store.AppendValues (GettextCatalog.GetString ("Executable"));
+ store.AppendValues (GettextCatalog.GetString ("Library"));
+ compileTargetCombo.Model = store;
+ CellRendererText cr = new CellRendererText ();
+ compileTargetCombo.PackStart (cr, true);
+ compileTargetCombo.AddAttribute (cr, "text", 0);
+ compileTargetCombo.Active = (int) configuration.CompileTarget;
+
+ if (compilerParameters.Compiler == JavaCompiler.Javac)
+ compilerJavacButton.Active = true;
+ else
+ compilerGcjButton.Active = true;
+
+ compilerJavacButton.Toggled += OnCompilerToggled;
+ compilerGcjButton.Toggled += OnCompilerToggled;
+
+ enableOptimizationCheckButton.Active = compilerParameters.Optimize;
+ generateDebugInformationCheckButton.Active = configuration.DebugMode;
+ deprecationCheckButton.Active = compilerParameters.Deprecation;
+ generateWarningsCheckButton.Active = compilerParameters.GenWarnings;
+ warningsAsErrorsCheckButton.Active = !configuration.RunWithWarnings;
+
+ compilerEntry.Text = compilerParameters.CompilerPath;
+ classPathEntry.Text = compilerParameters.ClassPath;
+ mainClassEntry.Text = compilerParameters.MainClass;
+ symbolsEntry.Text = compilerParameters.DefineSymbols;
+ }
+
+ void OnCompilerToggled (object o, EventArgs args)
+ {
+ if (compilerJavacButton.Active)
+ compilerEntry.Text = "javac";
+ else
+ compilerEntry.Text = "gcj";
+ }
+
+ public bool Store ()
+ {
if (compilerParameters == null)
return true;
- if (javac.Active)
+ if (compilerJavacButton.Active)
compilerParameters.Compiler = JavaCompiler.Javac;
else
compilerParameters.Compiler = JavaCompiler.Gcj;
- compilerParameters.GenWarnings = checkWarnings.Active;
- compilerParameters.Deprecation = checkDeprecation.Active;
- configuration.DebugMode = checkDebug.Active;
- compilerParameters.Optimize = checkOptimize.Active;
- configuration.OutputAssembly = outputAssembly.Text;
- configuration.OutputDirectory = outputDirectory.Text;
+ configuration.CompileTarget = (CompileTarget) compileTargetCombo.Active;
+ compilerParameters.GenWarnings = generateWarningsCheckButton.Active;
+ compilerParameters.Deprecation = deprecationCheckButton.Active;
+ configuration.DebugMode = generateDebugInformationCheckButton.Active;
+ compilerParameters.Optimize = enableOptimizationCheckButton.Active;
+ configuration.RunWithWarnings = !warningsAsErrorsCheckButton.Active;
- compilerParameters.CompilerPath = compilerPath.Text;
- compilerParameters.ClassPath = classPath.Text;
- compilerParameters.MainClass = mainClass.Text;
+ compilerParameters.CompilerPath = compilerEntry.Text;
+ compilerParameters.ClassPath = classPathEntry.Text;
+ compilerParameters.MainClass = mainClassEntry.Text;
+ compilerParameters.DefineSymbols = symbolsEntry.Text;
+ return true;
}
- return true;
}
-
- void SetValues(object sender, EventArgs e)
- {
- configuration = (DotNetProjectConfiguration)((IProperties)CustomizationObject).GetProperty("Config");
- compilerParameters = (JavaCompilerParameters) configuration.CompilationParameters;
-
- if (compilerParameters.Compiler == JavaCompiler.Javac)
- javac.Active = true;
- else
- gcj.Active = true;
- checkOptimize.Active = compilerParameters.Optimize;
- checkDebug.Active = configuration.DebugMode;
- checkDeprecation.Active = compilerParameters.Deprecation;
- checkWarnings.Active = compilerParameters.GenWarnings;
- outputAssembly.Text = configuration.OutputAssembly;
- outputDirectory.Text = configuration.OutputDirectory;
-
- compilerPath.Text = compilerParameters.CompilerPath;
- classPath.Text = compilerParameters.ClassPath;
- mainClass.Text = compilerParameters.MainClass;
- }
+ CodeGenerationPanelWidget widget;
- void SelectFolder(object sender, EventArgs e)
+ public override void LoadPanelContents()
{
- using (FolderDialog fdiag = new FolderDialog (GettextCatalog.GetString ("Browse"))) {
-
- if (fdiag.Run () == (int) ResponseType.Ok) {
- //textBox3.Text = fdiag.Path;
- }
- fdiag.Hide ();
- }
+ Add (widget = new CodeGenerationPanelWidget ((IProperties) CustomizationObject));
}
- public ProjectConfigurationPropertyPanel ()
+ public override bool StorePanelContents()
{
- InitializeComponent ();
- VBox vbox = new VBox ();
- HBox hboxTitle = new HBox ();
- hboxTitle.PackStart (titleLabel, false, false, 0);
- vbox.PackStart (hboxTitle);
- vbox.PackStart (outputAssembly);
- HBox hboxCompiler = new HBox ();
- hboxCompiler.PackStart (labelCompiler, false, false, 0);
- vbox.PackStart (hboxCompiler);
- HBox comps = new HBox ();
- comps.PackStart (gcj);
- comps.PackStart (javac);
- vbox.PackStart (comps);
- vbox.PackStart (compilerPath);
- HBox hboxRuntime = new HBox ();
- hboxRuntime.PackStart (runtimeLabel, false, false, 0);
- vbox.PackStart (hboxRuntime);
- HBox hboxClasspath = new HBox ();
- hboxClasspath.PackStart (labelClasspath, false, false, 0);
- vbox.PackStart (hboxClasspath);
- vbox.PackStart (classPath);
- HBox hboxMainClass = new HBox ();
- hboxMainClass.PackStart (labelMainClass, false, false, 0);
- vbox.PackStart (hboxMainClass);
- vbox.PackStart (mainClass);
- HBox hboxWarnings = new HBox ();
- hboxWarnings.PackStart (labelWarnings, false, false, 0);
- vbox.PackStart (hboxWarnings);
- HBox hbox = new HBox ();
- hbox.PackStart (checkDeprecation);
- hbox.PackStart (checkDebug);
- hbox.PackStart (checkOptimize);
- vbox.PackStart (hbox);
- HBox hboxOutput = new HBox ();
- hboxOutput.PackStart (labelOutput, false, false, 0);
- vbox.PackStart (hboxOutput);
- vbox.PackStart (outputDirectory);
- this.Add (vbox);
- CustomizationObjectChanged += new EventHandler (SetValues);
+ bool result = true;
+ result = widget.Store ();
+ return result;
}
-
- void OnCompilerToggled (object o, EventArgs args)
- {
- if (javac.Active)
- compilerPath.Text = "javac";
- else
- compilerPath.Text = "gcj";
- }
-
- private void InitializeComponent()
- {
- gcj = new RadioButton (javac, "gcj");
- gcj.Toggled += OnCompilerToggled;
- javac.Toggled += OnCompilerToggled;
-
- this.browseButton = new Button ("_Browse");
- this.browseButton.Clicked += new EventHandler (SelectFolder);
- labelOutput.Markup = String.Format ("<b>{0}</b>", GettextCatalog.GetString ("Output path"));
- this.outputAssembly = new Entry ();
- titleLabel.Markup = String.Format ("<b>{0}</b>", GettextCatalog.GetString ("Output Assembly"));
- labelWarnings.Markup = String.Format ("<b>{0}</b>", GettextCatalog.GetString ("Warnings and Errors"));
-
- labelCompiler.Markup = String.Format ("<b>{0}</b>", GettextCatalog.GetString ("Compiler"));
- labelClasspath.Markup = String.Format ("<b>{0}</b>", GettextCatalog.GetString ("Classpath"));
- labelMainClass.Markup = String.Format ("<b>{0}</b>", GettextCatalog.GetString ("Main Class"));
- }
}
}
Added: trunk/MonoDevelop/Extras/JavaBinding/Java.glade
===================================================================
--- trunk/MonoDevelop/Extras/JavaBinding/Java.glade 2005-05-20 14:28:56 UTC (rev 2548)
+++ trunk/MonoDevelop/Extras/JavaBinding/Java.glade 2005-05-20 14:37:15 UTC (rev 2549)
@@ -0,0 +1,1078 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
+
+<glade-interface>
+<requires lib="gnome"/>
+
+<widget class="GtkWindow" id="CodeGenerationPanel">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">CodeGenerationPanel</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox62">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label82">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Code Generation</b></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox56">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label81">
+ <property name="width_request">18</property>
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox65">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkTable" id="table7">
+ <property name="visible">True</property>
+ <property name="n_rows">4</property>
+ <property name="n_columns">2</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label86">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Compile _Target:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label87">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Define S_ymbols:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">symbolsEntry</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label88">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Main Class:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">mainClassEntry</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="symbolsEntry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char" translatable="yes">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="mainClassEntry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char" translatable="yes">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label91">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Classpath:</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="mnemonic_widget">classPathEntry</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="classPathEntry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char" translatable="yes">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox61">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkComboBox" id="compileTargetCombo">
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label92">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Compiler</b></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox57">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label93">
+ <property name="width_request">18</property>
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox66">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox58">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">18</property>
+
+ <child>
+ <widget class="GtkRadioButton" id="compilerGcjButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">gcj</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkRadioButton" id="compilerJavacButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">javac</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">compilerGcjButton</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="compilerEntry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char" translatable="yes">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox60">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox68">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label90">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Options</b></property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox47">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label72">
+ <property name="width_request">18</property>
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox64">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="enableOptimizationCheckButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Enable _optimizations</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="generateDebugInformationCheckButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Emit _debugging information</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox69">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label94">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Warnings</b></property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox59">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label95">
+ <property name="width_request">18</property>
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkVBox" id="vbox67">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+
+ <child>
+ <widget class="GtkCheckButton" id="generateWarningsCheckButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Generate warnings</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="deprecationCheckButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Enable deprecation warnings</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkCheckButton" id="warningsAsErrorsCheckButton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Treat warnings as _errors</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+</widget>
+
+<widget class="GtkWindow" id="GlobalOptionsPanel">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">window1</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox70">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <widget class="GtkLabel" id="label96">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Compiler</b></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox63">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label100">
+ <property name="width_request">18</property>
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkTable" id="table9">
+ <property name="visible">True</property>
+ <property name="n_rows">3</property>
+ <property name="n_columns">2</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label98">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">IKVM path:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label99">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Java compiler:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label101">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Compiler command:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox64">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkComboBox" id="compilerCombo">
+ <property name="visible">True</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options">fill</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GnomeFileEntry" id="ikvmPathEntry">
+ <property name="visible">True</property>
+ <property name="max_saved">10</property>
+ <property name="directory_entry">True</property>
+ <property name="modal">True</property>
+ <property name="use_filechooser">True</property>
+
+ <child internal-child="entry">
+ <widget class="GtkEntry" id="combo-entry1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char" translatable="yes">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="compilerPathEntry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char" translatable="yes">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label97">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"><b>Code Generation</b></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkHBox" id="hbox65">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label102">
+ <property name="width_request">18</property>
+ <property name="visible">True</property>
+ <property name="label" translatable="yes"></property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkTable" id="table10">
+ <property name="visible">True</property>
+ <property name="n_rows">1</property>
+ <property name="n_columns">2</property>
+ <property name="homogeneous">False</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">6</property>
+
+ <child>
+ <widget class="GtkLabel" id="label103">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Classpath:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkEntry" id="classpathEntry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes"></property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char" translatable="yes">*</property>
+ <property name="activates_default">False</property>
+ </widget>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+</widget>
+
+</glade-interface>
Modified: trunk/MonoDevelop/Extras/JavaBinding/JavaBinding.addin.xml
===================================================================
--- trunk/MonoDevelop/Extras/JavaBinding/JavaBinding.addin.xml 2005-05-20 14:28:56 UTC (rev 2548)
+++ trunk/MonoDevelop/Extras/JavaBinding/JavaBinding.addin.xml 2005-05-20 14:37:15 UTC (rev 2549)
@@ -48,6 +48,8 @@
location = "templates/JavaApplicationProject.xpt.xml"/>
<ProjectTemplate id = "JavaConsoleApplicationProject"
location = "templates/JavaConsoleApplicationProject.xpt.xml"/>
+ <ProjectTemplate id = "IkvmLibraryProject"
+ location = "templates/IkvmLibraryProject.xpt.xml"/>
</Extension>
<Extension path = "/SharpDevelop/Workbench/ProjectOptions/ConfigurationProperties">
@@ -55,9 +57,22 @@
<DialogPanel id = "JavaProjectPanel"
_label = "Code Generation"
class = "JavaBinding.ProjectConfigurationPropertyPanel"/>
+ <DialogPanel id = "JavaOutputOptionsPanel"
+ _label = "Output"
+ class = "MonoDevelop.Gui.Dialogs.OptionPanels.OutputOptionsPanel"/>
</Conditional>
</Extension>
+ <Extension path = "/SharpDevelop/Dialogs/OptionsDialog">
+ <DialogPanel id = "JavaOptions"
+ insertafter = "ToolsOptions"
+ _label = "Java">
+ <DialogPanel id = "General"
+ _label = "General"
+ class = "JavaBinding.GlobalOptionsPanelPanel" />
+ </DialogPanel>
+ </Extension>
+
<Extension path = "/Workspace/Icons">
<Icon id = "JavaPrj"
language = "Java"
Modified: trunk/MonoDevelop/Extras/JavaBinding/JavaBindingCompilerServices.cs
===================================================================
--- trunk/MonoDevelop/Extras/JavaBinding/JavaBindingCompilerServices.cs 2005-05-20 14:28:56 UTC (rev 2548)
+++ trunk/MonoDevelop/Extras/JavaBinding/JavaBindingCompilerServices.cs 2005-05-20 14:37:15 UTC (rev 2549)
@@ -25,16 +25,18 @@
return Path.GetExtension(fileName) == ".java";
}
- string GetCompilerName (JavaCompilerParameters cp)
+ public ICompilerResult Compile (ProjectFileCollection projectFiles, ProjectReferenceCollection references, DotNetProjectConfiguration configuration, IProgressMonitor monitor)
{
- if (cp.Compiler == JavaCompiler.Gcj)
- return "gcj";
+ if (JavaLanguageBinding.Properties.IkvmPath == "") {
+ monitor.Log.WriteLine ("The Java addin has not been properly configured.");
+ monitor.Log.WriteLine ("Please set the location of IKVM in the Java configuration section of MonoDevelop preferences.");
+ CompilerResults cre = new CompilerResults (new TempFileCollection ());
+ CompilerError err = new CompilerError ();
+ err.ErrorText = "The Java addin has not been properly configured.";
+ cre.Errors.Add (err);
+ return new DefaultCompilerResult (cre, "");
+ }
- return "javac";
- }
-
- public ICompilerResult Compile (ProjectFileCollection projectFiles, ProjectReferenceCollection references, DotNetProjectConfiguration configuration, IProgressMonitor monitor)
- {
JavaCompilerParameters compilerparameters = (JavaCompilerParameters) configuration.CompilationParameters;
if (compilerparameters == null)
compilerparameters = new JavaCompilerParameters ();
@@ -42,7 +44,7 @@
string outdir = configuration.OutputDirectory;
string options = "";
- string compiler = GetCompilerName (compilerparameters);
+ string compiler = compilerparameters.CompilerPath;
if (configuration.DebugMode)
options += " -g ";
@@ -58,9 +60,6 @@
if (compilerparameters.GenWarnings)
options += " -nowarn ";
- if (compilerparameters.ClassPath == null)
- options += " -classpath " + compilerparameters.ClassPath;
-
options += " -encoding utf8 ";
string files = "";
@@ -75,6 +74,13 @@
}
}
+ string classpath = compilerparameters.ClassPath;
+ string refClasspath = GenerateReferenceStubs (monitor, configuration, compilerparameters, references);
+ if (refClasspath.Length > 0) {
+ if (classpath.Length > 0) classpath += ":";
+ classpath += refClasspath;
+ }
+
string args = "";
if (compilerparameters.Compiler == JavaCompiler.Gcj)
@@ -82,136 +88,184 @@
//FIXME re-enable options
//FIXME re-enable compilerPath
- if (compilerparameters.ClassPath == "") {
+ if (classpath == "") {
args += files + " -d " + outdir;
} else {
- args += " -classpath " + compilerparameters.ClassPath + files + " -d " + outdir;
+ args += " -classpath " + classpath + files + " -d " + outdir;
}
+ args = options + " " + args;
//Console.WriteLine (args);
- string output = String.Empty;
- string error = String.Empty;
- TempFileCollection tf = new TempFileCollection ();
- DoCompilation (monitor, compiler, args, tf, configuration, compilerparameters, ref output, ref error);
- ICompilerResult cr = ParseOutput (tf, output, error);
- File.Delete (output);
- File.Delete (error);
- return cr;
+ CompilerResults cr = new CompilerResults (new TempFileCollection ());
+ StringWriter output = new StringWriter ();
+ StringWriter error = new StringWriter ();
+
+ bool res = DoCompilation (monitor, compiler, args, configuration, compilerparameters, output, error);
+ ParseJavaOutput (compilerparameters.Compiler, error.ToString(), cr);
+
+ if (res) {
+ output = new StringWriter ();
+ error = new StringWriter ();
+ CompileToAssembly (monitor, configuration, compilerparameters, references, output, error);
+ ParseIkvmOutput (compilerparameters.Compiler, error.ToString(), cr);
+ }
+
+ return new DefaultCompilerResult (cr, "");
}
- private void DoCompilation (IProgressMonitor monitor, string compiler, string args, TempFileCollection tf, DotNetProjectConfiguration configuration, JavaCompilerParameters compilerparameters, ref string output, ref string error)
+ private string GenerateReferenceStubs (IProgressMonitor monitor, DotNetProjectConfiguration configuration, JavaCompilerParameters compilerparameters, ProjectReferenceCollection references)
{
- output = Path.GetTempFileName ();
- error = Path.GetTempFileName ();
+ monitor.Log.WriteLine ("Generating reference stubs ...");
+
+ // Create stubs for referenced assemblies
+ string ikvmstub = Path.Combine (Path.Combine (JavaLanguageBinding.Properties.IkvmPath, "bin"), "ikvmstub.exe");
+
+ string classpath = "";
+
+ if (references != null) {
+ foreach (ProjectReference lib in references) {
+ string asm = lib.GetReferencedFileName ();
+ ProcessWrapper p = Runtime.ProcessService.StartProcess ("/bin/sh", "-c \"mono " + ikvmstub + " " + asm + "\"", configuration.OutputDirectory, null);
+ p.WaitForExit ();
+
+ if (classpath.Length > 0) classpath += ":";
+ string name = Path.GetFileNameWithoutExtension (Path.GetFileName (asm));
+ classpath += Path.Combine (configuration.OutputDirectory, name + ".jar");
+ }
+ }
+ return classpath;
+ }
+
+ private bool DoCompilation (IProgressMonitor monitor, string compiler, string args, DotNetProjectConfiguration configuration, JavaCompilerParameters compilerparameters, TextWriter output, TextWriter error)
+ {
+ LogTextWriter chainedError = new LogTextWriter ();
+ chainedError.ChainWriter (monitor.Log);
+ chainedError.ChainWriter (error);
+
+ LogTextWriter chainedOutput = new LogTextWriter ();
+ chainedOutput.ChainWriter (monitor.Log);
+ chainedOutput.ChainWriter (output);
+
+ monitor.Log.WriteLine ("Compiling Java source code ...");
- try {
- monitor.BeginTask (null, 2);
- monitor.Log.WriteLine ("Compiling Java source code ...");
- string arguments = String.Format ("-c \"{0} {1} > {2} 2> {3}\"", compiler, args, output, error);
- ProcessStartInfo si = new ProcessStartInfo ("/bin/sh", arguments);
- //Console.WriteLine ("{0} {1}", si.FileName, si.Arguments);
- si.RedirectStandardOutput = true;
- si.RedirectStandardError = true;
- si.UseShellExecute = false;
- Process p = new Process ();
- p.StartInfo = si;
- p.Start ();
- p.WaitForExit ();
-
- monitor.Step (1);
- monitor.Log.WriteLine ("Generating assembly ...");
- CompileToAssembly (configuration, compilerparameters, output, error);
- } finally {
- monitor.EndTask ();
- }
+ Process p = Runtime.ProcessService.StartProcess (compiler, args, null, chainedOutput, chainedError, null);
+ p.WaitForExit ();
+ return p.ExitCode == 0;
}
- void CompileToAssembly (DotNetProjectConfiguration configuration, JavaCompilerParameters compilerparameters, string output, string error)
+ void CompileToAssembly (IProgressMonitor monitor, DotNetProjectConfiguration configuration, JavaCompilerParameters compilerparameters, ProjectReferenceCollection references, TextWriter output, TextWriter error)
{
+ monitor.Log.WriteLine ("Generating assembly ...");
+
+ LogTextWriter chainedError = new LogTextWriter ();
+ chainedError.ChainWriter (monitor.Log);
+ chainedError.ChainWriter (error);
+
+ LogTextWriter chainedOutput = new LogTextWriter ();
+ chainedOutput.ChainWriter (monitor.Log);
+ chainedOutput.ChainWriter (output);
+
string outdir = configuration.OutputDirectory;
string outclass = Path.Combine (outdir, configuration.OutputAssembly + ".class");
string asm = Path.GetFileNameWithoutExtension (outclass);
+
+ string opts = "-assembly:" + asm;
+
+ switch (configuration.CompileTarget) {
+ case CompileTarget.Exe:
+ opts += " -target:exe";
+ break;
+ case CompileTarget.WinExe:
+ opts += " -target:winexe";
+ break;
+ case CompileTarget.Library:
+ opts += " -target:library";
+ break;
+ }
+
+ if (configuration.DebugMode)
+ opts += " -debug";
+
+ opts += " -srcpath:" + configuration.SourceDirectory;
+
+ if (references != null) {
+ foreach (ProjectReference lib in references)
+ opts += " -r:" + lib.GetReferencedFileName ();
+ }
+
+ string ikvmc = Path.Combine (Path.Combine (JavaLanguageBinding.Properties.IkvmPath, "bin"), "ikvmc.exe");
- // sadly I dont think we can specify the output .class name
- string args = String.Format ("-c \"ikvmc {0} -assembly:{1} > {2} 2> {3}\"", "*.class", asm, output, error);
- ProcessStartInfo si = new ProcessStartInfo ("/bin/sh", args);
- //Console.WriteLine ("{0} {1}", si.FileName, si.Arguments);
- si.WorkingDirectory = outdir;
- si.RedirectStandardOutput = true;
- si.RedirectStandardError = true;
- si.UseShellExecute = false;
- Process p = new Process ();
- p.StartInfo = si;
- p.Start ();
+ string args = String.Format ("-c \"mono {0} {1} {2}\"", ikvmc, "*.class", opts);
+ Process p = Runtime.ProcessService.StartProcess ("/bin/sh", args, configuration.OutputDirectory, chainedOutput, chainedError, null);
p.WaitForExit ();
}
- ICompilerResult ParseOutput (TempFileCollection tf, string stdout, string stderr)
+ void ParseJavaOutput (JavaCompiler jc, string errorStr, CompilerResults cr)
{
- StringBuilder compilerOutput = new StringBuilder ();
- CompilerResults cr = new CompilerResults (tf);
-
- foreach (string s in new string[] { stdout, stderr })
+ TextReader sr = new StringReader (errorStr);
+ string next = sr.ReadLine ();
+ while (next != null)
{
- StreamReader sr = File.OpenText (s);
- while (true)
- {
- string next = sr.ReadLine ();
-
- if (next == null)
- break;
-
- CompilerError error = CreateErrorFromString (next);
-
- if (error != null)
- cr.Errors.Add (error);
- }
- sr.Close ();
+ CompilerError error = CreateJavaErrorFromString (jc, next);
+ if (error != null) cr.Errors.Add (error);
+ next = sr.ReadLine ();
}
- return new DefaultCompilerResult (cr, compilerOutput.ToString ());
+ sr.Close ();
}
-
+
// FIXME: the various java compilers will probably need to be parse on
// their own and then ikvmc would need one as well
- private static CompilerError CreateErrorFromString (string error)
+ private static CompilerError CreateJavaErrorFromString (JavaCompiler jc, string next)
{
+ CompilerError error = new CompilerError ();
+
+ int errorCol = 0;
+ string col = next.Trim ();
+ if (col.Length == 1 && col == "^")
+ errorCol = next.IndexOf ("^");
+
+ int index1 = next.IndexOf (".java:");
+ if (index1 < 0)
+ return null;
+
+ //string s1 = next.Substring (0, index1);
+ string s2 = next.Substring (index1 + 6);
+ int index2 = s2.IndexOf (":");
+ int line = Int32.Parse (next.Substring (index1 + 6, index2));
+ //error.IsWarning = what[0] == "warning";
+ //error.ErrorNumber = what[what.Length - 1];
+
+ error.Column = errorCol;
+ error.Line = line;
+ error.ErrorText = next.Substring (index1 + index2 + 7);
+ error.FileName = Path.GetFullPath (next.Substring (0, index1) + ".java"); //Path.GetFileName(filename);
+ return error;
+ }
+
+ void ParseIkvmOutput (JavaCompiler jc, string errorStr, CompilerResults cr)
+ {
+ TextReader sr = new StringReader (errorStr);
+ string next = sr.ReadLine ();
+ while (next != null)
+ {
+ CompilerError error = CreateIkvmErrorFromString (next);
+ if (error != null) cr.Errors.Add (error);
+ next = sr.ReadLine ();
+ }
+ sr.Close ();
+ }
+
+ private static CompilerError CreateIkvmErrorFromString (string error)
+ {
if (error.StartsWith ("Note") || error.StartsWith ("Warning"))
return null;
string trimmed = error.Trim ();
if (trimmed.StartsWith ("(to avoid this warning add"))
return null;
- //Console.WriteLine ("error: {0}", error);
CompilerError cerror = new CompilerError ();
cerror.ErrorText = error;
return cerror;
}
-/* old javac parser
- CompilerError error = new CompilerError ();
-
- int errorCol = 0;
- string col = next.Trim ();
- if (col.Length == 1 && col == "^")
- errorCol = next.IndexOf ("^");
-
- compilerOutput.Append (next);
- compilerOutput.Append ("\n");
-
- int index1 = next.IndexOf (".java:");
- if (index1 < 0)
- continue;
-
- //string s1 = next.Substring (0, index1);
- string s2 = next.Substring (index1 + 6);
- int index2 = s2.IndexOf (":");
- int line = Int32.Parse (next.Substring (index1 + 6, index2));
- //error.IsWarning = what[0] == "warning";
- //error.ErrorNumber = what[what.Length - 1];
-
- error.Column = errorCol;
- error.Line = line;
- error.ErrorText = next.Substring (index1 + index2 + 7);
- error.FileName = Path.GetFullPath (next.Substring (0, index1) + ".java"); //Path.GetFileName(filename);
-*/
}
}
Modified: trunk/MonoDevelop/Extras/JavaBinding/JavaLanguageBinding.cs
===================================================================
--- trunk/MonoDevelop/Extras/JavaBinding/JavaLanguageBinding.cs 2005-05-20 14:28:56 UTC (rev 2548)
+++ trunk/MonoDevelop/Extras/JavaBinding/JavaLanguageBinding.cs 2005-05-20 14:37:15 UTC (rev 2549)
@@ -17,6 +17,7 @@
using MonoDevelop.Internal.Templates;
using MonoDevelop.Gui;
using MonoDevelop.Services;
+using MonoDevelop.Core.Properties;
namespace JavaBinding
{
@@ -28,11 +29,17 @@
internal const string LanguageName = "Java";
JavaBindingCompilerServices compilerServices = new JavaBindingCompilerServices ();
+ static GlobalProperties props = new GlobalProperties ();
+
public JavaLanguageBinding ()
{
Runtime.ProjectService.DataContext.IncludeType (typeof(JavaCompilerParameters));
}
+ public static GlobalProperties Properties {
+ get { return props; }
+ }
+
public string Language {
get {
return LanguageName;
@@ -60,12 +67,19 @@
public object CreateCompilationParameters (XmlElement projectOptions)
{
JavaCompilerParameters parameters = new JavaCompilerParameters ();
+ parameters.ClassPath = Path.Combine (Path.Combine (Properties.IkvmPath, "classpath"), "mscorlib.jar");
+ if (Properties.Classpath.Length > 0)
+ parameters.ClassPath += ": " + Properties.Classpath;
+
+ parameters.Compiler = Properties.CompilerType;
+ parameters.CompilerPath = Properties.CompilerCommand;
+
if (projectOptions != null) {
if (projectOptions.Attributes["MainClass"] != null) {
parameters.MainClass = projectOptions.GetAttribute ("MainClass");
}
if (projectOptions.Attributes["ClassPath"] != null) {
- parameters.ClassPath = projectOptions.GetAttribute ("ClassPath");
+ parameters.ClassPath += ":" + projectOptions.GetAttribute ("ClassPath");
}
}
return parameters;
@@ -77,4 +91,29 @@
get { return "//"; }
}
}
+
+ public class GlobalProperties
+ {
+ IProperties props = (IProperties) Runtime.Properties.GetProperty ("JavaBinding.GlobalProps", new DefaultProperties ());
+
+ public string IkvmPath {
+ get { return props.GetProperty ("IkvmPath", ""); }
+ set { props.SetProperty ("IkvmPath", value != null ? value : ""); }
+ }
+
+ public string CompilerCommand {
+ get { return props.GetProperty ("CompilerCommand", ""); }
+ set { props.SetProperty ("CompilerCommand", value != null ? value : "javac"); }
+ }
+
+ public JavaCompiler CompilerType {
+ get { return (JavaCompiler) props.GetProperty ("CompilerType", 0); }
+ set { props.SetProperty ("CompilerType", (int)value); }
+ }
+
+ public string Classpath {
+ get { return props.GetProperty ("Classpath", ""); }
+ set { props.SetProperty ("Classpath", value != null ? value : ""); }
+ }
+ }
}
Modified: trunk/MonoDevelop/Extras/JavaBinding/Makefile.am
===================================================================
--- trunk/MonoDevelop/Extras/JavaBinding/Makefile.am 2005-05-20 14:28:56 UTC (rev 2548)
+++ trunk/MonoDevelop/Extras/JavaBinding/Makefile.am 2005-05-20 14:37:15 UTC (rev 2549)
@@ -7,10 +7,13 @@
/r:$(top_builddir)/build/bin/MonoDevelop.SourceEditor.dll \
/r:$(top_builddir)/build/bin/MonoDevelop.Base.dll \
/r:$(top_builddir)/build/bin/MonoDevelop.Gui.Widgets.dll \
- $(GTK_SHARP_LIBS)
+ $(GTK_SHARP_LIBS) \
+ $(GNOME_SHARP_LIBS) \
+ $(GLADE_SHARP_LIBS)
FILES = \
Gui/ProjectConfigurationPropertyPanel.cs \
+Gui/GlobalOptionsPanel.cs \
Project/JavaCompilerParameters.cs \
JavaBindingCompilerServices.cs \
JavaCompiler.cs \
@@ -23,6 +26,7 @@
templates/IkvmGladeApplicationProject.xpt.xml \
templates/IkvmGnomeApplicationProject.xpt.xml \
templates/IkvmGtkApplicationProject.xpt.xml \
+templates/IkvmLibraryProject.xpt.xml \
templates/JavaApplet.xft.xml \
templates/JavaApplicationProject.xpt.xml \
templates/JavaApplication.xft.xml \
@@ -66,9 +70,9 @@
mkdir -p $(ADDIN_BUILD)
cp $(srcdir)/$(ADDIN) $(ADDIN_BUILD)/.
-$(ASSEMBLY): $(FILES)
+$(ASSEMBLY): $(FILES) $(srcdir)/Java.glade
mkdir -p $(ADDIN_BUILD)
- $(CSC) $(DLLS) $(build_sources) -out:$@ -target:library
+ $(CSC) $(DLLS) -resource:$(srcdir)/Java.glade,Java.glade $(build_sources) -out:$@ -target:library
if ENABLE_JAVA
assemblydir = $(MD_ADDIN_DIR)/BackendBindings
@@ -79,6 +83,6 @@
endif
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb
-EXTRA_DIST = $(FILES) $(ADDIN) $(TEMPLATES)
+EXTRA_DIST = $(FILES) Java.glade $(ADDIN) $(TEMPLATES)
include $(top_srcdir)/Makefile.include
Modified: trunk/MonoDevelop/Extras/JavaBinding/Project/JavaCompilerParameters.cs
===================================================================
--- trunk/MonoDevelop/Extras/JavaBinding/Project/JavaCompilerParameters.cs 2005-05-20 14:28:56 UTC (rev 2548)
+++ trunk/MonoDevelop/Extras/JavaBinding/Project/JavaCompilerParameters.cs 2005-05-20 14:37:15 UTC (rev 2549)
@@ -105,5 +105,14 @@
mainclass = value;
}
}
+
+ public string DefineSymbols {
+ get {
+ return definesymbols;
+ }
+ set {
+ definesymbols = value;
+ }
+ }
}
}
Modified: trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmConsoleApplicationProject.xpt.xml
===================================================================
--- trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmConsoleApplicationProject.xpt.xml 2005-05-20 14:28:56 UTC (rev 2548)
+++ trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmConsoleApplicationProject.xpt.xml 2005-05-20 14:37:15 UTC (rev 2549)
@@ -25,7 +25,7 @@
<Project name = "${ProjectName}" directory = ".">
<!-- FIXME: remove path to jar -->
- <Options Target = "Exe" PauseConsoleOutput = "False" ClassPath = "/usr/lib/mscorlib.jar:." MainClass ="application" />
+ <Options Target = "Exe" PauseConsoleOutput = "False" MainClass ="application" />
<Files>
<File name = "application.java">
Modified: trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmGladeApplicationProject.xpt.xml
===================================================================
--- trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmGladeApplicationProject.xpt.xml 2005-05-20 14:28:56 UTC (rev 2548)
+++ trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmGladeApplicationProject.xpt.xml 2005-05-20 14:37:15 UTC (rev 2549)
@@ -25,7 +25,16 @@
<Project name = "${ProjectName}" directory = ".">
<!-- FIXME: do not hardcode these -->
- <Options Target = "WinExe" PauseConsoleOutput = "False" ClassPath = "/usr/lib/gtk-sharp.jar:/usr/lib/glade-sharp.jar:/usr/lib/glib-sharp.jar:/usr/lib/atk-sharp.jar:/usr/lib/mscorlib.jar:." MainClass ="application" />
+ <Options Target = "WinExe" PauseConsoleOutput = "False" MainClass ="application" />
+
+ <References>
+ <Reference type="Gac" refto="gtk-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="gdk-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="glib-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="glade-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="pango-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="glade-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ </References>
<Files>
<File name = "application.java">
Modified: trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmGnomeApplicationProject.xpt.xml
===================================================================
--- trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmGnomeApplicationProject.xpt.xml 2005-05-20 14:28:56 UTC (rev 2548)
+++ trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmGnomeApplicationProject.xpt.xml 2005-05-20 14:37:15 UTC (rev 2549)
@@ -25,7 +25,16 @@
<Project name = "${ProjectName}" directory = ".">
<!-- FIXME: do not hardcode these -->
- <Options Target = "WinExe" PauseConsoleOutput = "False" ClassPath = "/usr/lib/gnome-sharp.jar:/usr/lib/gtk-sharp.jar:/usr/lib/glib-sharp.jar:/usr/lib/atk-sharp.jar:/usr/lib/mscorlib.jar:." MainClass ="application" />
+ <Options Target = "WinExe" PauseConsoleOutput = "False" MainClass ="application" />
+
+ <References>
+ <Reference type="Gac" refto="gnome-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="gtk-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="gdk-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="glib-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="glade-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="pango-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ </References>
<Files>
<File name = "application.java">
Modified: trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmGtkApplicationProject.xpt.xml
===================================================================
--- trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmGtkApplicationProject.xpt.xml 2005-05-20 14:28:56 UTC (rev 2548)
+++ trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmGtkApplicationProject.xpt.xml 2005-05-20 14:37:15 UTC (rev 2549)
@@ -25,7 +25,15 @@
<Project name = "${ProjectName}" directory = ".">
<!-- FIXME: do not hardcode these -->
- <Options Target = "WinExe" PauseConsoleOutput = "False" ClassPath = "/usr/lib/gtk-sharp.jar:/usr/lib/glib-sharp.jar:/usr/lib/atk-sharp.jar:/usr/lib/mscorlib.jar:." MainClass ="application" />
+ <Options Target = "WinExe" PauseConsoleOutput = "False" MainClass ="application" />
+
+ <References>
+ <Reference type="Gac" refto="gtk-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="gdk-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="glib-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="glade-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="pango-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ </References>
<Files>
<File name = "application.java">
Added: trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmLibraryProject.xpt.xml
===================================================================
--- trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmLibraryProject.xpt.xml 2005-05-20 14:28:56 UTC (rev 2548)
+++ trunk/MonoDevelop/Extras/JavaBinding/templates/IkvmLibraryProject.xpt.xml 2005-05-20 14:37:15 UTC (rev 2549)
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<Template originator = "John Luke"
+ created = "04/06/2004"
+ lastModified = "04/06/2004">
+
+ <!-- Template Header -->
+ <TemplateConfiguration>
+ <_Name>IKVM Library</_Name>
+ <Category>Java</Category>
+ <Icon>Java.Project.DOSProject</Icon>
+ <LanguageName>Java</LanguageName>
+ <_Description>Create a Java library with IKVM</_Description>
+ </TemplateConfiguration>
+
+ <!-- Actions -->
+ <Actions>
+ <Open filename = "MyClass.java"/>
+ </Actions>
+
+ <!-- Template Content -->
+ <Combine name = "${ProjectName}" directory = ".">
+ <Options>
+ <StartupProject>${ProjectName}</StartupProject>
+ </Options>
+
+ <Project name = "${ProjectName}" directory = ".">
+ <References>
+ <Reference type="Gac" refto="gtk-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="gdk-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="glib-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference type="Gac" refto="atk-sharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ </References>
+
+ <Options Target = "Library" PauseConsoleOutput = "False" />
+
+ <Files>
+ <File name = "MyClass.java">
+<![CDATA[/*
+ * MyClass.java
+ *
+ * created on ${Date} at ${Time}
+ */
+
+public class MyClass
+{
+}]]></File>
+ </Files>
+ </Project>
+ </Combine>
+</Template>
More information about the Monodevelop-patches-list
mailing list