Fix #7962 - meson write
authorAlan <alan@roojs.com>
Mon, 8 Jan 2024 08:30:51 +0000 (16:30 +0800)
committerAlan <alan@roojs.com>
Mon, 8 Jan 2024 08:30:51 +0000 (16:30 +0800)
12 files changed:
.roobuilder.jcfg
meson.build [new file with mode: 0644]
src/Builder4/DialogTemplateSelect.bjs
src/Builder4/DialogTemplateSelect.vala
src/Builder4/RooProjectSettings.bjs
src/Builder4/RooProjectSettings.vala
src/JsRender/JsRender.vala
src/Makefile.am
src/Project/Gtk.vala
src/Project/Meson.vala [new file with mode: 0644]
src/Project/Project.vala
src/Project/Roo.vala

index 514c4c5..9c68f1d 100644 (file)
@@ -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",
                 "src/Palete/ValalCompileQueue.vala",
                 "src/Palete/ValaCompileRequest.vala",
                 "src/Palete/ValaCompileQueue.vala",
-                "src/Palete/Javascript.vala"
+                "src/Palete/Javascript.vala",
+                "src/Project/Meson.vala"
             ]
         }
     ],
         "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 (file)
index 0000000..0d27704
--- /dev/null
@@ -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
+)
+
+
index 66b261e..0b0f289 100644 (file)
@@ -1,5 +1,6 @@
 {
  "build_module" : "builder",
+ "gen_extended" : false,
  "items" : [
   {
    "# JsRender.Node node" : "",
     "\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;",
    ]
   }
  ],
- "modOrder" : "",
- "name" : "DialogTemplateSelect",
- "parent" : "",
- "path" : "/home/alan/gitlive/roobuilder/src/Builder4/DialogTemplateSelect.bjs",
- "permname" : "",
- "title" : ""
+ "name" : "DialogTemplateSelect"
 }
\ No newline at end of file
index 1ee36a1..f1feffa 100644 (file)
-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<string> 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<string> 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<string> 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<string> 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
     }
-
-}
index 6a8ea1a..8f99c72 100644 (file)
              "",
              "",
              "  _this.database_ERROR.el.label    = \"\";",
+             "  /*",
              "    Gda.Connection cnc;",
              "    try {",
              "        // assumes localhost...",
              "   }  ",
              "  _this.database_ERROR.el.label = \"Connection Succeeded\";",
              "   cnc.close();",
+             "   */",
              "}"
             ]
            },
index 7545a38..a82a4c7 100644 (file)
                 
                 
                   _this.database_ERROR.el.label    = "";
+                  /*
                     Gda.Connection cnc;
                     try {
                         // assumes localhost...
                    }  
                   _this.database_ERROR.el.label = "Connection Succeeded";
                    cnc.close();
+                   */
                 });
             }
 
index 04f590b..3c44688 100644 (file)
@@ -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);
index 67ff09d..0c53e8d 100644 (file)
@@ -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 \
index f0d1dd2..b44208d 100644 (file)
@@ -46,6 +46,7 @@ namespace Project
                
                public GtkValaSettings? active_cg = null;
                public Gee.HashMap<string,GtkValaSettings> compilegroups;
+               public Meson meson;
                
                
                public Palete.Gtk gpalete {
@@ -72,6 +73,7 @@ namespace Project
                        this.packages = new Gee.ArrayList<string>();
                        //this.hidden = new Gee.ArrayList<string>();
                        this.compilegroups = new  Gee.HashMap<string,GtkValaSettings>();
+                       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 (file)
index 0000000..427b826
--- /dev/null
@@ -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
index 7213b22..361648b 100644 (file)
@@ -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);
                  
        }
 }
index 639b96f..632c158 100644 (file)
@@ -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
+       }
 
 }