From 688ad1b5cf410b417665d9e0e26380c7d9286fc6 Mon Sep 17 00:00:00 2001 From: Alan Date: Mon, 8 Jan 2024 16:30:51 +0800 Subject: [PATCH] Fix #7962 - meson write --- .roobuilder.jcfg | 7 +- meson.build | 202 ++++++ src/Builder4/DialogTemplateSelect.bjs | 12 +- src/Builder4/DialogTemplateSelect.vala | 918 ++++++++++++------------- src/Builder4/RooProjectSettings.bjs | 2 + src/Builder4/RooProjectSettings.vala | 2 + src/JsRender/JsRender.vala | 4 + src/Makefile.am | 3 +- src/Project/Gtk.vala | 6 + src/Project/Meson.vala | 122 ++++ src/Project/Project.vala | 22 +- src/Project/Roo.vala | 9 +- 12 files changed, 817 insertions(+), 492 deletions(-) create mode 100644 meson.build create mode 100644 src/Project/Meson.vala diff --git a/.roobuilder.jcfg b/.roobuilder.jcfg index 514c4c516..9c68f1ded 100644 --- a/.roobuilder.jcfg +++ b/.roobuilder.jcfg @@ -2,7 +2,7 @@ "xtype" : "Gtk", "compilegroups" : [ { - "name" : "builder", + "name" : "roobuilder", "execute_args" : "", "sources" : [ "src/Builder4/About.bjs", @@ -75,7 +75,6 @@ "src/Palete/CompletionProvider.vala", "src/Palete/Gtk.vala", "src/Palete/Palete.vala", - "src/Palete/RooDatabase.vala", "src/Palete/Roo.vala", "src/Palete/ValaSourceCompiler.vala", "src/Palete/ValaSource.vala", @@ -151,7 +150,8 @@ "src/Palete/ValalCompileQueue.vala", "src/Palete/ValaCompileRequest.vala", "src/Palete/ValaCompileQueue.vala", - "src/Palete/Javascript.vala" + "src/Palete/Javascript.vala", + "src/Project/Meson.vala" ] } ], @@ -161,7 +161,6 @@ "gee-0.8", "gio-2.0", "webkitgtk-6.0", - "libgda-5.0", "glib-2.0", "gobject-2.0", "json-glib-1.0", diff --git a/meson.build b/meson.build new file mode 100644 index 000000000..0d2770416 --- /dev/null +++ b/meson.build @@ -0,0 +1,202 @@ +project('roobuilder', 'vala', 'c', + version: '1.0', + license: 'LGPL', + default_options: [ + 'default_library=static', + 'c_std=gnu11' # for C subprojects + ] +) + +valac = meson.get_compiler('vala') + +extra_vala_sources = [] + +add_project_arguments(['--vapidir', meson.current_source_dir() / 'src/vapi'], language: 'vala') + + +deps = [ + dependency('gtk4'), + dependency('gee-0.8'), + dependency('gio-2.0'), + dependency('webkitgtk-6.0'), + dependency('glib-2.0'), + dependency('gobject-2.0'), + dependency('json-glib-1.0'), + dependency('gobject-introspection-1.0'), + dependency('libvala-0.56'), + dependency('libadwaita-1'), + dependency('libxml-2.0'), + valac.find_library('posix'), + dependency('roojspacker-1.4'), + dependency('gtksourceview-5'), + +] + +# let Vala add the appropriate defines for GLIB_X_X +add_project_arguments(['--target-glib=auto'], language: 'vala') + + + +conf = configuration_data() +conf.set('PROJECT_NAME', meson.project_name()) + +add_project_arguments(['--vapidir', meson.current_source_dir() / 'src/vapi'], language: 'vala') + + + +roobuilder_src = files([ + 'src/Builder4/About.vala', + 'src/Builder4/DialogConfirm.vala', + 'src/Builder4/DialogFiles.vala', + 'src/Builder4/DialogSaveModule.vala', + 'src/Builder4/DialogSaveTemplate.vala', + 'src/Builder4/DialogTemplateSelect.vala', + 'src/Builder4/Editor.vala', + 'src/Builder4/EditProject.vala', + 'src/Builder4/FakeServer.vala', + 'src/Builder4/GtkView.vala', + 'src/Builder4/MainWindow.vala', + 'src/Builder4/PopoverAddObject.vala', + 'src/Builder4/PopoverProperty.vala', + 'src/Builder4/StandardErrorDialog.vala', + 'src/Builder4/RooProjectSettings.vala', + 'src/Builder4/ValaCompileErrors.vala', + 'src/Builder4/ValaCompileResults.vala', + 'src/Builder4/ValaProjectSettingsPopover.vala', + 'src/Builder4/WindowLeftProps.vala', + 'src/Builder4/WindowRooView.vala', + 'src/Builder4/WindowState.vala', + 'src/Palete/GirObject.vala', + 'src/Palete/Gir.vala', + 'src/codegen/valaccodearraymodule.vala', + 'src/codegen/valaccodeassignmentmodule.vala', + 'src/codegen/valaccodeattribute.vala', + 'src/codegen/valaccodebasemodule.vala', + 'src/codegen/valaccodecompiler.vala', + 'src/codegen/valaccodecontrolflowmodule.vala', + 'src/codegen/valaccodedelegatemodule.vala', + 'src/codegen/valaccodememberaccessmodule.vala', + 'src/codegen/valaccodemethodcallmodule.vala', + 'src/codegen/valaccodemethodmodule.vala', + 'src/codegen/valaccodestructmodule.vala', + 'src/codegen/valaccode.vala', + 'src/codegen/valaclassregisterfunction.vala', + 'src/codegen/valactype.vala', + 'src/codegen/valaenumregisterfunction.vala', + 'src/codegen/valagasyncmodule.vala', + 'src/codegen/valagdbusclientmodule.vala', + 'src/codegen/valagdbusservermodule.vala', + 'src/codegen/valagdbusmodule.vala', + 'src/codegen/valagerrormodule.vala', + 'src/codegen/valagirwriter.vala', + 'src/codegen/valaglibvalue.vala', + 'src/codegen/valagobjectmodule.vala', + 'src/codegen/valagsignalmodule.vala', + 'src/codegen/valagtkmodule.vala', + 'src/codegen/valagtypemodule.vala', + 'src/codegen/valagvaluemodule.vala', + 'src/codegen/valagvariantmodule.vala', + 'src/codegen/valainterfaceregisterfunction.vala', + 'src/codegen/valastructregisterfunction.vala', + 'src/codegen/valatyperegisterfunction.vala', + 'src/JsRender/Dir.vala', + 'src/JsRender/Gtk.vala', + 'src/JsRender/JsonGen.vala', + 'src/JsRender/JsRender.vala', + 'src/JsRender/Lang.vala', + 'src/JsRender/NodeProp.vala', + 'src/JsRender/NodeToGlade.vala', + 'src/JsRender/Roo.vala', + 'src/JsRender/Node.vala', + 'src/JsRender/PlainFile.vala', + 'src/JsRender/NodeToVala.vala', + 'src/JsRender/NodeToJs.vala', + 'src/Palete/CompileError.vala', + 'src/Palete/CompletionProvider.vala', + 'src/Palete/Gtk.vala', + 'src/Palete/Palete.vala', + 'src/Palete/Roo.vala', + 'src/Palete/ValaSourceCompiler.vala', + 'src/Palete/ValaSource.vala', + 'src/Palete/VapiParser.vala', + 'src/Builder4/WindowLeftTree.vala', + 'src/Builder4/PopoverAddProp.vala', + 'src/Builder4/PopoverFileDetails.vala', + 'src/ccode/valaccode.vala', + 'src/ccode/valaccodeassignment.vala', + 'src/ccode/valaccodebinaryexpression.vala', + 'src/ccode/valaccodeblock.vala', + 'src/ccode/valaccodebreakstatement.vala', + 'src/ccode/valaccodecasestatement.vala', + 'src/ccode/valaccodecastexpression.vala', + 'src/ccode/valaccodecommaexpression.vala', + 'src/ccode/valaccodecomment.vala', + 'src/ccode/valaccodeconditionalexpression.vala', + 'src/ccode/valaccodeconstant.vala', + 'src/ccode/valaccodeconstantidentifier.vala', + 'src/ccode/valaccodecontinuestatement.vala', + 'src/ccode/valaccodedeclaration.vala', + 'src/ccode/valaccodedeclarator.vala', + 'src/ccode/valaccodedefine.vala', + 'src/ccode/valaccodedostatement.vala', + 'src/ccode/valaccodeelementaccess.vala', + 'src/ccode/valaccodeemptystatement.vala', + 'src/ccode/valaccodeenum.vala', + 'src/ccode/valaccodeenumvalue.vala', + 'src/ccode/valaccodeexpression.vala', + 'src/ccode/valaccodeexpressionstatement.vala', + 'src/ccode/valaccodefile.vala', + 'src/ccode/valaccodeforstatement.vala', + 'src/ccode/valaccodefragment.vala', + 'src/ccode/valaccodefunction.vala', + 'src/ccode/valaccodefunctioncall.vala', + 'src/ccode/valaccodefunctiondeclarator.vala', + 'src/ccode/valaccodeggnucsection.vala', + 'src/ccode/valaccodegotostatement.vala', + 'src/ccode/valaccodeidentifier.vala', + 'src/ccode/valaccodeifsection.vala', + 'src/ccode/valaccodeifstatement.vala', + 'src/ccode/valaccodeincludedirective.vala', + 'src/ccode/valaccodeinitializerlist.vala', + 'src/ccode/valaccodeinvalidexpression.vala', + 'src/ccode/valaccodelabel.vala', + 'src/ccode/valaccodelinedirective.vala', + 'src/ccode/valaccodemacroreplacement.vala', + 'src/ccode/valaccodememberaccess.vala', + 'src/ccode/valaccodemodifiers.vala', + 'src/ccode/valaccodenewline.vala', + 'src/ccode/valaccodenode.vala', + 'src/ccode/valaccodeoncesection.vala', + 'src/ccode/valaccodeparameter.vala', + 'src/ccode/valaccodeparenthesizedexpression.vala', + 'src/ccode/valaccodereturnstatement.vala', + 'src/ccode/valaccodestatement.vala', + 'src/ccode/valaccodestruct.vala', + 'src/ccode/valaccodeswitchstatement.vala', + 'src/ccode/valaccodetypedefinition.vala', + 'src/ccode/valaccodeunaryexpression.vala', + 'src/ccode/valaccodevariabledeclarator.vala', + 'src/ccode/valaccodewhilestatement.vala', + 'src/ccode/valaccodewriter.vala', + 'src/Project/GtkValaSettings.vala', + 'src/Project/Project.vala', + 'src/Project/Gtk.vala', + 'src/Project/Roo.vala', + 'src/Project/VapiSelection.vala', + 'src/Main.vala', + 'src/Resources.vala', + 'src/Spawn.vala', + 'src/Application.vala', + 'src/Palete/ValaCompileRequest.vala', + 'src/Palete/ValaCompileQueue.vala', + 'src/Palete/Javascript.vala', + 'src/Project/Meson.vala', +]) + +roobuilder = executable('roobuilder', + dependencies: deps, + sources: [ roobuilder_src ], + install: true +) + + diff --git a/src/Builder4/DialogTemplateSelect.bjs b/src/Builder4/DialogTemplateSelect.bjs index 66b261e05..0b0f289eb 100644 --- a/src/Builder4/DialogTemplateSelect.bjs +++ b/src/Builder4/DialogTemplateSelect.bjs @@ -1,5 +1,6 @@ { "build_module" : "builder", + "gen_extended" : false, "items" : [ { "# JsRender.Node node" : "", @@ -299,13 +300,13 @@ "\t_this.model.loadData(opts);", "\t_this.combo.el.set_active(-1);", "", - "", + "/*", "\tvar db = new Palete.RooDatabase.from_project((Project.Roo) project);", "\t_this.dbmodel.loadData(db.readTablesGee());", "", "", "\t_this.dbcombo.el.set_active(-1);", - "", + "*/", "\tthis.window = mwindow;", "\tthis.palete = pal;", "\tthis.node = node;", @@ -316,10 +317,5 @@ ] } ], - "modOrder" : "", - "name" : "DialogTemplateSelect", - "parent" : "", - "path" : "/home/alan/gitlive/roobuilder/src/Builder4/DialogTemplateSelect.bjs", - "permname" : "", - "title" : "" + "name" : "DialogTemplateSelect" } \ No newline at end of file diff --git a/src/Builder4/DialogTemplateSelect.vala b/src/Builder4/DialogTemplateSelect.vala index 1ee36a108..f1feffab9 100644 --- a/src/Builder4/DialogTemplateSelect.vala +++ b/src/Builder4/DialogTemplateSelect.vala @@ -1,596 +1,590 @@ -static DialogTemplateSelect _DialogTemplateSelect; + static DialogTemplateSelect _DialogTemplateSelect; -public class DialogTemplateSelect : Object -{ - public Gtk.Dialog el; - private DialogTemplateSelect _this; - - public static DialogTemplateSelect singleton() - { - if (_DialogTemplateSelect == null) { - _DialogTemplateSelect= new DialogTemplateSelect(); - } - return _DialogTemplateSelect; - } - public Xcls_combo combo; - public Xcls_cellrenderer cellrenderer; - public Xcls_model model; - public Xcls_dbcombo dbcombo; - public Xcls_dbcellrenderer dbcellrenderer; - public Xcls_dbmodel dbmodel; - - // my vars (def) - public Xcls_MainWindow window; - public signal void complete (JsRender.Node? node); - public Palete.Palete palete; - public Project.Project project; - public JsRender.Node node; - - // ctor - public DialogTemplateSelect() - { - _this = this; - this.el = new Gtk.Dialog(); - - // my vars (dec) - - // set gobject values - this.el.title = "Add an Object"; - this.el.default_height = 200; - this.el.default_width = 400; - this.el.modal = true; - var child_0 = new Xcls_Box2( _this ); - child_0.ref(); - this.el.get_content_area().append ( child_0.el ); - var child_1 = new Xcls_Button13( _this ); - child_1.ref(); - this.el.add_action_widget ( child_1.el , 0 ); - var child_2 = new Xcls_Button14( _this ); - child_2.ref(); - this.el.add_action_widget ( child_2.el , 1 ); - var child_3 = new Xcls_Button15( _this ); - child_3.ref(); - this.el.add_action_widget ( child_3.el , 2 ); - - //listeners - this.el.close_request.connect( ( ) => { - - this.el.hide(); - return true;; - }); - this.el.response.connect( (res) => { - - //var node = _this.node; - //var project = _this.project; - return; - /* - - if (this.plugin == null) { - this.plugin = new Xcls_DialogPluginWebkit(); - this.plugin.complete.connect((json_str) => { - print("json_str = %s\n", json_str); - if (json_str.length < 1) { - this.complete(_this.node); - return; - } - var pa = new Json.Parser(); - try { - - pa.load_from_data(json_str); - } catch(Error e) { - this.complete(node); - return; // 1 = just add it.. - } - var new_node = pa.get_root(); - - if (new_node.get_node_type () != Json.NodeType.OBJECT) { - this.complete(node); - return; - } - var obj = new_node.get_object (); - - var ret = new JsRender.Node(); - - ret.loadFromJson(obj, 1); - this.complete(ret); - }); - - } - - - - - this.el.hide(); - //var ix = _this.combo.el.get_active(); - if (res < 1 ) { - this.complete(null); - return; // 0 = cancel. - } - if (res < 2 ) { - this.complete(node); - return; // 1 = just add it.. - } - - - // have they selected a table?? - - Gtk.TreeIter iter; - Value vfname; - if (_this.dbcombo.el.get_active_iter (out iter)) { - this.dbmodel.el.get_value (iter, 0, out vfname); - if (((string)vfname).length > 0 && this.plugin.has_plugin(node.fqn())) { - this.plugin.showIt(this.window.el, project, node.fqn(), (string)vfname); - return; - } - this.complete(node); - return; // 1 = just add it.. - - - } - - if (!_this.combo.el.get_active_iter (out iter)) { - - this.complete(node); - return; // 1 = just add it../ nothing selected... - } - - this.model.el.get_value (iter, 0, out vfname); - - this.complete(this.palete.loadTemplate((string)vfname)); - return; // 1 = just add it.. - - */ - }); - } - - // user defined functions - public void showIt ( - Xcls_MainWindow mwindow, - Palete.Palete pal, - JsRender.Node node, - Project.Project project - ) { - - this.el.show(); - - var opts = pal.listTemplates(node); - if (opts.length() < 1) { - this.el.hide(); - this.complete(node); - return; - } - this.el.set_transient_for( mwindow.el); - - //opts.unshift({ path: '' , name :'Just add Element' }); - _this.model.loadData(opts); - _this.combo.el.set_active(-1); - - - var db = new Palete.RooDatabase.from_project((Project.Roo) project); - _this.dbmodel.loadData(db.readTablesGee()); - - - _this.dbcombo.el.set_active(-1); - - this.window = mwindow; - this.palete = pal; - this.node = node; - this.project = project; - - } - public class Xcls_Box2 : Object + public class DialogTemplateSelect : Object { - public Gtk.Box el; + public Gtk.Dialog el; private DialogTemplateSelect _this; + public static DialogTemplateSelect singleton() + { + if (_DialogTemplateSelect == null) { + _DialogTemplateSelect= new DialogTemplateSelect(); + } + return _DialogTemplateSelect; + } + public Xcls_combo combo; + public Xcls_cellrenderer cellrenderer; + public Xcls_model model; + public Xcls_dbcombo dbcombo; + public Xcls_dbcellrenderer dbcellrenderer; + public Xcls_dbmodel dbmodel; // my vars (def) + public Xcls_MainWindow window; + public signal void complete (JsRender.Node? node); + public Palete.Palete palete; + public JsRender.Node node; + public Project.Project project; // ctor - public Xcls_Box2(DialogTemplateSelect _owner ) + public DialogTemplateSelect() { - _this = _owner; - this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 ); + _this = this; + this.el = new Gtk.Dialog(); // my vars (dec) // set gobject values - var child_0 = new Xcls_Box3( _this ); - child_0.ref(); - this.el.append ( child_0.el ); - var child_1 = new Xcls_Box8( _this ); + this.el.title = "Add an Object"; + this.el.default_height = 200; + this.el.default_width = 400; + this.el.modal = true; + var child_1 = new Xcls_Box2( _this ); child_1.ref(); - this.el.append ( child_1.el ); + this.el.get_content_area().append ( child_1.el ); + var child_2 = new Xcls_Button13( _this ); + child_2.ref(); + this.el.add_action_widget ( child_2.el , 0 ); + var child_3 = new Xcls_Button14( _this ); + child_3.ref(); + this.el.add_action_widget ( child_3.el , 1 ); + var child_4 = new Xcls_Button15( _this ); + child_4.ref(); + this.el.add_action_widget ( child_4.el , 2 ); + + //listeners + this.el.close_request.connect( ( ) => { + + this.el.hide(); + return true;; + }); + this.el.response.connect( (res) => { + + //var node = _this.node; + //var project = _this.project; + return; + /* + + if (this.plugin == null) { + this.plugin = new Xcls_DialogPluginWebkit(); + this.plugin.complete.connect((json_str) => { + print("json_str = %s\n", json_str); + if (json_str.length < 1) { + this.complete(_this.node); + return; + } + var pa = new Json.Parser(); + try { + + pa.load_from_data(json_str); + } catch(Error e) { + this.complete(node); + return; // 1 = just add it.. + } + var new_node = pa.get_root(); + + if (new_node.get_node_type () != Json.NodeType.OBJECT) { + this.complete(node); + return; + } + var obj = new_node.get_object (); + + var ret = new JsRender.Node(); + + ret.loadFromJson(obj, 1); + this.complete(ret); + }); + + } + + + + + this.el.hide(); + //var ix = _this.combo.el.get_active(); + if (res < 1 ) { + this.complete(null); + return; // 0 = cancel. + } + if (res < 2 ) { + this.complete(node); + return; // 1 = just add it.. + } + + + // have they selected a table?? + + Gtk.TreeIter iter; + Value vfname; + if (_this.dbcombo.el.get_active_iter (out iter)) { + this.dbmodel.el.get_value (iter, 0, out vfname); + if (((string)vfname).length > 0 && this.plugin.has_plugin(node.fqn())) { + this.plugin.showIt(this.window.el, project, node.fqn(), (string)vfname); + return; + } + this.complete(node); + return; // 1 = just add it.. + + + } + + if (!_this.combo.el.get_active_iter (out iter)) { + + this.complete(node); + return; // 1 = just add it../ nothing selected... + } + + this.model.el.get_value (iter, 0, out vfname); + + this.complete(this.palete.loadTemplate((string)vfname)); + return; // 1 = just add it.. + + */ + }); } // user defined functions - } - public class Xcls_Box3 : Object - { - public Gtk.Box el; - private DialogTemplateSelect _this; + public void showIt ( + Xcls_MainWindow mwindow, + Palete.Palete pal, + JsRender.Node node, + Project.Project project + ) { + + this.el.show(); + + var opts = pal.listTemplates(node); + if (opts.length() < 1) { + this.el.hide(); + this.complete(node); + return; + } + this.el.set_transient_for( mwindow.el); + + //opts.unshift({ path: '' , name :'Just add Element' }); + _this.model.loadData(opts); + _this.combo.el.set_active(-1); + + /* + var db = new Palete.RooDatabase.from_project((Project.Roo) project); + _this.dbmodel.loadData(db.readTablesGee()); + + + _this.dbcombo.el.set_active(-1); + */ + this.window = mwindow; + this.palete = pal; + this.node = node; + this.project = project; + + } + public class Xcls_Box2 : Object + { + public Gtk.Box el; + private DialogTemplateSelect _this; - // my vars (def) + // my vars (def) - // ctor - public Xcls_Box3(DialogTemplateSelect _owner ) - { - _this = _owner; - this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 ); + // ctor + public Xcls_Box2(DialogTemplateSelect _owner ) + { + _this = _owner; + this.el = new Gtk.Box( Gtk.Orientation.VERTICAL, 0 ); - // my vars (dec) + // my vars (dec) - // set gobject values - this.el.margin_end = 3; - this.el.margin_start = 3; - var child_0 = new Xcls_Label4( _this ); - child_0.ref(); - this.el.append ( child_0.el ); - var child_1 = new Xcls_combo( _this ); - child_1.ref(); - this.el.append ( child_1.el ); + // set gobject values + var child_1 = new Xcls_Box3( _this ); + child_1.ref(); + this.el.append ( child_1.el ); + var child_2 = new Xcls_Box8( _this ); + child_2.ref(); + this.el.append ( child_2.el ); + } + + // user defined functions } + public class Xcls_Box3 : Object + { + public Gtk.Box el; + private DialogTemplateSelect _this; - // user defined functions - } - public class Xcls_Label4 : Object - { - public Gtk.Label el; - private DialogTemplateSelect _this; + // my vars (def) - // my vars (def) + // ctor + public Xcls_Box3(DialogTemplateSelect _owner ) + { + _this = _owner; + this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 ); - // ctor - public Xcls_Label4(DialogTemplateSelect _owner ) - { - _this = _owner; - this.el = new Gtk.Label( "Select Template : " ); + // my vars (dec) - // my vars (dec) + // set gobject values + this.el.margin_end = 3; + this.el.margin_start = 3; + var child_1 = new Xcls_Label4( _this ); + child_1.ref(); + this.el.append ( child_1.el ); + new Xcls_combo( _this ); + this.el.append ( _this.combo.el ); + } - // set gobject values + // user defined functions } + public class Xcls_Label4 : Object + { + public Gtk.Label el; + private DialogTemplateSelect _this; - // user defined functions - } - public class Xcls_combo : Object - { - public Gtk.ComboBox el; - private DialogTemplateSelect _this; + // my vars (def) + // ctor + public Xcls_Label4(DialogTemplateSelect _owner ) + { + _this = _owner; + this.el = new Gtk.Label( "Select Template : " ); - // my vars (def) + // my vars (dec) - // ctor - public Xcls_combo(DialogTemplateSelect _owner ) + // set gobject values + } + + // user defined functions + } + + public class Xcls_combo : Object { - _this = _owner; - _this.combo = this; - this.el = new Gtk.ComboBox(); + public Gtk.ComboBox el; + private DialogTemplateSelect _this; - // my vars (dec) - // set gobject values - var child_0 = new Xcls_cellrenderer( _this ); - child_0.ref(); - this.el.pack_start ( child_0.el , true ); - var child_1 = new Xcls_model( _this ); - child_1.ref(); - this.el.set_model ( child_1.el ); + // my vars (def) - // init method + // ctor + public Xcls_combo(DialogTemplateSelect _owner ) + { + _this = _owner; + _this.combo = this; + this.el = new Gtk.ComboBox(); - this.el.add_attribute(_this.cellrenderer.el , "markup", 1 ); - } + // my vars (dec) - // user defined functions - } - public class Xcls_cellrenderer : Object - { - public Gtk.CellRendererText el; - private DialogTemplateSelect _this; + // set gobject values + new Xcls_cellrenderer( _this ); + this.el.pack_start ( _this.cellrenderer.el , true ); + new Xcls_model( _this ); + this.el.set_model ( _this.model.el ); + // init method - // my vars (def) + this.el.add_attribute(_this.cellrenderer.el , "markup", 1 ); + } - // ctor - public Xcls_cellrenderer(DialogTemplateSelect _owner ) + // user defined functions + } + public class Xcls_cellrenderer : Object { - _this = _owner; - _this.cellrenderer = this; - this.el = new Gtk.CellRendererText(); + public Gtk.CellRendererText el; + private DialogTemplateSelect _this; - // my vars (dec) - // set gobject values - } + // my vars (def) - // user defined functions - } + // ctor + public Xcls_cellrenderer(DialogTemplateSelect _owner ) + { + _this = _owner; + _this.cellrenderer = this; + this.el = new Gtk.CellRendererText(); - public class Xcls_model : Object - { - public Gtk.ListStore el; - private DialogTemplateSelect _this; + // my vars (dec) + // set gobject values + } - // my vars (def) + // user defined functions + } - // ctor - public Xcls_model(DialogTemplateSelect _owner ) + public class Xcls_model : Object { - _this = _owner; - _this.model = this; - this.el = new Gtk.ListStore.newv( { typeof(string),typeof(string) } ); + public Gtk.ListStore el; + private DialogTemplateSelect _this; - // my vars (dec) - // set gobject values - } + // my vars (def) - // user defined functions - public void loadData (GLib.List data) { - this.el.clear(); - Gtk.TreeIter iter; - var el = this.el; - - /// el.append(out iter); - - - // el.set_value(iter, 0, ""); - // el.set_value(iter, 1, "aaa - Just add Element - aaa"); - - for (var i = 0; i < data.length();i++) { - - - el.append(out iter); - var str = data.nth_data(i); - var fn = Path.get_basename (str); - fn.replace(".json", ""); + // ctor + public Xcls_model(DialogTemplateSelect _owner ) + { + _this = _owner; + _this.model = this; + this.el = new Gtk.ListStore.newv( { typeof(string),typeof(string) } ); + + // my vars (dec) + + // set gobject values + } + + // user defined functions + public void loadData (GLib.List data) { + this.el.clear(); + Gtk.TreeIter iter; + var el = this.el; - el.set_value(iter, 0, str); - el.set_value(iter, 1, fn); + /// el.append(out iter); + + // el.set_value(iter, 0, ""); + // el.set_value(iter, 1, "aaa - Just add Element - aaa"); + + for (var i = 0; i < data.length();i++) { + + + el.append(out iter); + var str = data.nth_data(i); + var fn = Path.get_basename (str); + fn.replace(".json", ""); + + el.set_value(iter, 0, str); + el.set_value(iter, 1, fn); + + } + this.el.set_sort_column_id(1, Gtk.SortType.ASCENDING); + } - this.el.set_sort_column_id(1, Gtk.SortType.ASCENDING); - } - } - public class Xcls_Box8 : Object - { - public Gtk.Box el; - private DialogTemplateSelect _this; + public class Xcls_Box8 : Object + { + public Gtk.Box el; + private DialogTemplateSelect _this; - // my vars (def) + // my vars (def) - // ctor - public Xcls_Box8(DialogTemplateSelect _owner ) - { - _this = _owner; - this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 ); + // ctor + public Xcls_Box8(DialogTemplateSelect _owner ) + { + _this = _owner; + this.el = new Gtk.Box( Gtk.Orientation.HORIZONTAL, 0 ); - // my vars (dec) + // my vars (dec) - // set gobject values - this.el.margin_end = 3; - this.el.margin_start = 3; - var child_0 = new Xcls_Label9( _this ); - child_0.ref(); - this.el.append ( child_0.el ); - var child_1 = new Xcls_dbcombo( _this ); - child_1.ref(); - this.el.append ( child_1.el ); + // set gobject values + this.el.margin_end = 3; + this.el.margin_start = 3; + var child_1 = new Xcls_Label9( _this ); + child_1.ref(); + this.el.append ( child_1.el ); + new Xcls_dbcombo( _this ); + this.el.append ( _this.dbcombo.el ); + } + + // user defined functions } + public class Xcls_Label9 : Object + { + public Gtk.Label el; + private DialogTemplateSelect _this; - // user defined functions - } - public class Xcls_Label9 : Object - { - public Gtk.Label el; - private DialogTemplateSelect _this; + // my vars (def) - // my vars (def) + // ctor + public Xcls_Label9(DialogTemplateSelect _owner ) + { + _this = _owner; + this.el = new Gtk.Label( "Select Database Table : " ); - // ctor - public Xcls_Label9(DialogTemplateSelect _owner ) - { - _this = _owner; - this.el = new Gtk.Label( "Select Database Table : " ); + // my vars (dec) - // my vars (dec) + // set gobject values + } - // set gobject values + // user defined functions } - // user defined functions - } + public class Xcls_dbcombo : Object + { + public Gtk.ComboBox el; + private DialogTemplateSelect _this; - public class Xcls_dbcombo : Object - { - public Gtk.ComboBox el; - private DialogTemplateSelect _this; + // my vars (def) - // my vars (def) + // ctor + public Xcls_dbcombo(DialogTemplateSelect _owner ) + { + _this = _owner; + _this.dbcombo = this; + this.el = new Gtk.ComboBox(); - // ctor - public Xcls_dbcombo(DialogTemplateSelect _owner ) - { - _this = _owner; - _this.dbcombo = this; - this.el = new Gtk.ComboBox(); + // my vars (dec) - // my vars (dec) + // set gobject values + new Xcls_dbcellrenderer( _this ); + this.el.pack_start ( _this.dbcellrenderer.el , true ); + new Xcls_dbmodel( _this ); + this.el.set_model ( _this.dbmodel.el ); - // set gobject values - var child_0 = new Xcls_dbcellrenderer( _this ); - child_0.ref(); - this.el.pack_start ( child_0.el , true ); - var child_1 = new Xcls_dbmodel( _this ); - child_1.ref(); - this.el.set_model ( child_1.el ); + // init method - // init method + this.el.add_attribute(_this.dbcellrenderer.el , "markup", 1 ); + } - this.el.add_attribute(_this.dbcellrenderer.el , "markup", 1 ); + // user defined functions } + public class Xcls_dbcellrenderer : Object + { + public Gtk.CellRendererText el; + private DialogTemplateSelect _this; - // user defined functions - } - public class Xcls_dbcellrenderer : Object - { - public Gtk.CellRendererText el; - private DialogTemplateSelect _this; + // my vars (def) - // my vars (def) + // ctor + public Xcls_dbcellrenderer(DialogTemplateSelect _owner ) + { + _this = _owner; + _this.dbcellrenderer = this; + this.el = new Gtk.CellRendererText(); - // ctor - public Xcls_dbcellrenderer(DialogTemplateSelect _owner ) - { - _this = _owner; - _this.dbcellrenderer = this; - this.el = new Gtk.CellRendererText(); + // my vars (dec) - // my vars (dec) + // set gobject values + } - // set gobject values + // user defined functions } - // user defined functions - } - - public class Xcls_dbmodel : Object - { - public Gtk.ListStore el; - private DialogTemplateSelect _this; + public class Xcls_dbmodel : Object + { + public Gtk.ListStore el; + private DialogTemplateSelect _this; - // my vars (def) + // my vars (def) - // ctor - public Xcls_dbmodel(DialogTemplateSelect _owner ) - { - _this = _owner; - _this.dbmodel = this; - this.el = new Gtk.ListStore.newv( { typeof(string),typeof(string) } ); + // ctor + public Xcls_dbmodel(DialogTemplateSelect _owner ) + { + _this = _owner; + _this.dbmodel = this; + this.el = new Gtk.ListStore.newv( { typeof(string),typeof(string) } ); - // my vars (dec) + // my vars (dec) - // set gobject values - } + // set gobject values + } - // user defined functions - public void loadData (Gee.ArrayList data) { - this.el.clear(); - Gtk.TreeIter iter; - var el = this.el; - - /// el.append(out iter); - - - // el.set_value(iter, 0, ""); - // el.set_value(iter, 1, "aaa - Just add Element - aaa"); - - el.append(out iter); - - - el.set_value(iter, 0, ""); - el.set_value(iter, 1, "-- select a table --"); - - - for (var i = 0; i < data.size;i++) { + // user defined functions + public void loadData (Gee.ArrayList data) { + this.el.clear(); + Gtk.TreeIter iter; + var el = this.el; + + /// el.append(out iter); + + + // el.set_value(iter, 0, ""); + // el.set_value(iter, 1, "aaa - Just add Element - aaa"); - el.append(out iter); + + + el.set_value(iter, 0, ""); + el.set_value(iter, 1, "-- select a table --"); - el.set_value(iter, 0, data.get(i)); - el.set_value(iter, 1, data.get(i)); + for (var i = 0; i < data.size;i++) { + + + el.append(out iter); + + el.set_value(iter, 0, data.get(i)); + el.set_value(iter, 1, data.get(i)); + + } + this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING); + } - this.el.set_sort_column_id(0, Gtk.SortType.ASCENDING); - } - } - public class Xcls_Button13 : Object - { - public Gtk.Button el; - private DialogTemplateSelect _this; + public class Xcls_Button13 : Object + { + public Gtk.Button el; + private DialogTemplateSelect _this; - // my vars (def) + // my vars (def) - // ctor - public Xcls_Button13(DialogTemplateSelect _owner ) - { - _this = _owner; - this.el = new Gtk.Button(); + // ctor + public Xcls_Button13(DialogTemplateSelect _owner ) + { + _this = _owner; + this.el = new Gtk.Button(); - // my vars (dec) + // my vars (dec) - // set gobject values - this.el.label = "Cancel"; + // set gobject values + this.el.label = "Cancel"; + } + + // user defined functions } - // user defined functions - } + public class Xcls_Button14 : Object + { + public Gtk.Button el; + private DialogTemplateSelect _this; - public class Xcls_Button14 : Object - { - public Gtk.Button el; - private DialogTemplateSelect _this; + // my vars (def) - // my vars (def) + // ctor + public Xcls_Button14(DialogTemplateSelect _owner ) + { + _this = _owner; + this.el = new Gtk.Button(); - // ctor - public Xcls_Button14(DialogTemplateSelect _owner ) - { - _this = _owner; - this.el = new Gtk.Button(); + // my vars (dec) - // my vars (dec) + // set gobject values + this.el.label = "Just add it"; + } - // set gobject values - this.el.label = "Just add it"; + // user defined functions } - // user defined functions - } + public class Xcls_Button15 : Object + { + public Gtk.Button el; + private DialogTemplateSelect _this; - public class Xcls_Button15 : Object - { - public Gtk.Button el; - private DialogTemplateSelect _this; + // my vars (def) - // my vars (def) + // ctor + public Xcls_Button15(DialogTemplateSelect _owner ) + { + _this = _owner; + this.el = new Gtk.Button(); - // ctor - public Xcls_Button15(DialogTemplateSelect _owner ) - { - _this = _owner; - this.el = new Gtk.Button(); + // my vars (dec) - // my vars (dec) + // set gobject values + this.el.label = "OK"; + } - // set gobject values - this.el.label = "OK"; + // user defined functions } - // user defined functions } - -} diff --git a/src/Builder4/RooProjectSettings.bjs b/src/Builder4/RooProjectSettings.bjs index 6a8ea1a98..8f99c72d8 100644 --- a/src/Builder4/RooProjectSettings.bjs +++ b/src/Builder4/RooProjectSettings.bjs @@ -462,6 +462,7 @@ "", "", " _this.database_ERROR.el.label = \"\";", + " /*", " Gda.Connection cnc;", " try {", " // assumes localhost...", @@ -480,6 +481,7 @@ " } ", " _this.database_ERROR.el.label = \"Connection Succeeded\";", " cnc.close();", + " */", "}" ] }, diff --git a/src/Builder4/RooProjectSettings.vala b/src/Builder4/RooProjectSettings.vala index 7545a38d0..a82a4c7c0 100644 --- a/src/Builder4/RooProjectSettings.vala +++ b/src/Builder4/RooProjectSettings.vala @@ -1227,6 +1227,7 @@ _this.database_ERROR.el.label = ""; + /* Gda.Connection cnc; try { // assumes localhost... @@ -1245,6 +1246,7 @@ } _this.database_ERROR.el.label = "Connection Succeeded"; cnc.close(); + */ }); } diff --git a/src/JsRender/JsRender.vala b/src/JsRender/JsRender.vala index 04f590b37..3c446885a 100644 --- a/src/JsRender/JsRender.vala +++ b/src/JsRender/JsRender.vala @@ -685,7 +685,11 @@ namespace JsRender { } } + public string relTargetName() + { + return this.targetName().substring(this.project.path.length +1); + } public abstract void save(); public abstract void saveHTML(string html); diff --git a/src/Makefile.am b/src/Makefile.am index 67ff09db9..0c53e8de5 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -200,10 +200,11 @@ BUIDERPROJECT = Project/Gtk.vala \ Project/Project.vala \ Project/Roo.vala \ Project/VapiSelection.vala \ + Project/Meson.vala \ Project/GtkValaSettings.vala -BUIDERUI = Builder4/About.vala \ +BUIDERUI = Builder4/About.vala \ Builder4/DialogConfirm.vala \ Builder4/StandardErrorDialog.vala \ Builder4/DialogSaveTemplate.vala \ diff --git a/src/Project/Gtk.vala b/src/Project/Gtk.vala index f0d1dd22f..b44208d53 100644 --- a/src/Project/Gtk.vala +++ b/src/Project/Gtk.vala @@ -46,6 +46,7 @@ namespace Project public GtkValaSettings? active_cg = null; public Gee.HashMap compilegroups; + public Meson meson; public Palete.Gtk gpalete { @@ -72,6 +73,7 @@ namespace Project this.packages = new Gee.ArrayList(); //this.hidden = new Gee.ArrayList(); this.compilegroups = new Gee.HashMap(); + this.meson = new Meson(this); } @@ -145,6 +147,10 @@ namespace Project this.gir_cache = null; } + public override void onSave() + { + this.meson.save(); + } /** * perhaps we should select the default in the window somewhere... diff --git a/src/Project/Meson.vala b/src/Project/Meson.vala new file mode 100644 index 000000000..427b826e2 --- /dev/null +++ b/src/Project/Meson.vala @@ -0,0 +1,122 @@ +/** + write meson build so that the language server works.. +*/ + +namespace Project { + + public class Meson : Object { + + Gtk project; + public Meson(Gtk project) + { + this.project = project; + } + + public void save() + { + + var project_name = this.project.name; + var project_version = "1.0"; //this.project.version; + var project_licence = "LGPL"; // this.project.licence + + var deps = ""; + foreach(var p in this.project.packages) { + if (p == "posix" ) { + deps += " valac.find_library('" + p + "'),\n"; + } else { + deps += " dependency('" + p + "'),\n"; + } + } + /* + dependency('glib-2.0'), + dependency('gobject-2.0'), << for others.. ut will this wrok using find_lib for all? + valac.find_library('posix'), << for posix + */ + + // ?? why use subdir ?? seems pointless? + + //subdir('src') + + var addvapidir = ""; + foreach(var p in this.project.vapidirs()) { + addvapidir += "add_project_arguments(['--vapidir', meson.current_source_dir() / '" + p + "'], language: 'vala')\n"; + } + //vapi_dir = meson.current_source_dir() / 'vapi' + //add_project_arguments(['--vapidir', vapi_dir], language: 'vala') + + var targets = ""; + foreach(var cg in this.project.compilegroups.values) { + targets += this.addTarget(cg); + } + var data = + +@"project('$project_name', 'vala', 'c', + version: '$project_version', + license: '$project_licence', + default_options: [ + 'default_library=static', + 'c_std=gnu11' # for C subprojects + ] +) + +valac = meson.get_compiler('vala') + +extra_vala_sources = [] + +$addvapidir + +deps = [ +$deps +] + +# let Vala add the appropriate defines for GLIB_X_X +add_project_arguments(['--target-glib=auto'], language: 'vala') + + + +conf = configuration_data() +conf.set('PROJECT_NAME', meson.project_name()) + +$addvapidir + + +$targets +"; + + +// removed.. add_project_arguments(['--enable-gobject-tracing', '--fatal-warnings'], language: 'vala') + + try { + FileUtils.set_contents(this.project.path + "/meson.build", data, data.length); + } catch (GLib.Error e) { + GLib.error("failed to save file %s", e.message); + } + + } + + string addTarget(GtkValaSettings cg) + { + + var str = cg.name + "_src = files([\n"; + foreach(var s in cg.sources) { + var f= this.project.getByPath(this.project.path + "/" + s); + if (f == null) { + continue; + } + var add = f.relTargetName(); + if (add.length > 0) { + str += " '" + add + "',\n"; + } + } + str += "])\n\n"; + + str += cg.name +" = executable('" + cg.name + "',\n"+ + " dependencies: deps,\n"+ + " sources: [ " + cg.name + "_src ],\n"+ + " install: true\n" + + ")\n\n"; + + return str; + } + } +} \ No newline at end of file diff --git a/src/Project/Project.vala b/src/Project/Project.vala index 7213b225c..361648b6a 100644 --- a/src/Project/Project.vala +++ b/src/Project/Project.vala @@ -410,14 +410,7 @@ namespace Project { public void save() { - // fixme.. - - - - - - //var dirname = GLib.Environment.get_home_dir() + "/.Builder"; - + var s = this.toJSON(); GLib.debug("Save Project %s\n%s", this.name, s); try { @@ -426,6 +419,7 @@ namespace Project { } catch (GLib.Error e) { GLib.error("failed to save file %s", e.message); } + this.onSave(); } @@ -523,8 +517,6 @@ namespace Project { } - public abstract void loadJson(Json.Object obj); - public abstract void saveJson(Json.Object obj); /* @@ -815,7 +807,7 @@ namespace Project { } // calle dfrom new file dialog - // add files to dires + // add files to dires (and main file list) // update @@ -995,9 +987,11 @@ namespace Project { return ret; } - - public abstract void initDatabase(); - public abstract void initialize(); // for new projects (make dirs?); + public abstract void onSave(); // write meson? + public abstract void initDatabase(); + public abstract void initialize(); // for new projects (make dirs?); + public abstract void loadJson(Json.Object obj); + public abstract void saveJson(Json.Object obj); } } diff --git a/src/Project/Roo.vala b/src/Project/Roo.vala index 639b96f73..632c158f6 100644 --- a/src/Project/Roo.vala +++ b/src/Project/Roo.vala @@ -4,7 +4,7 @@ public class Project.Roo : Project { - public Palete.RooDatabase roo_database; + //public Palete.RooDatabase roo_database; public string runhtml = ""; public string base_template = ""; @@ -27,7 +27,7 @@ public class Project.Roo : Project { } public override void initDatabase() { - this.roo_database = new Palete.RooDatabase.from_project(this); + //this.roo_database = new Palete.RooDatabase.from_project(this); } public override void loadJson(Json.Object obj) { @@ -81,7 +81,10 @@ public class Project.Roo : Project { public override void initialize() { // ?? what kind of files can we set up a project ? } - + public override void onSave() + { + // nope + } } -- 2.39.2