[libgda] Vala: fix libgda bindings generation
- From: Daniel Espinosa Ortiz <despinosa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgda] Vala: fix libgda bindings generation
- Date: Thu, 12 Jul 2018 03:01:21 +0000 (UTC)
commit 9aa5c38f58f0fa1a25234e8a5364189dab3fcbbc
Author: Daniel Espinosa <esodan gmail com>
Date: Wed Jul 11 19:36:12 2018 -0500
Vala: fix libgda bindings generation
Fixed structs as abstract compact classes with
custom code due to issue: https://gitlab.gnome.org/GNOME/vala/issues/652
Fixed GdaSqlStatementContentsInfo convertion to GBoxed.
libgda/{Gda-6.0.custom => Gda-6.0-custom.vala} | 45 ++++++++++++++------------
libgda/Gda-6.0.metadata | 2 ++
libgda/meson.build | 27 +++++++++++++++-
libgda/sql-parser/gda-statement-struct-decl.h | 4 +--
libgda/sql-parser/gda-statement-struct.c | 6 ++--
5 files changed, 58 insertions(+), 26 deletions(-)
---
diff --git a/libgda/Gda-6.0.custom b/libgda/Gda-6.0-custom.vala
similarity index 76%
rename from libgda/Gda-6.0.custom
rename to libgda/Gda-6.0-custom.vala
index 4411fe375..d046c5c24 100644
--- a/libgda/Gda-6.0.custom
+++ b/libgda/Gda-6.0-custom.vala
@@ -1,7 +1,7 @@
namespace Gda {
[CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
[Compact]
- public class BlobOpFunctions {
+ public abstract class BlobOpFunctions {
public abstract long get_length (BlobOp op);
public abstract long read (BlobOp op, Blob blob, long offset, long size);
public abstract long write (BlobOp op, Blob blob, long offset);
@@ -10,7 +10,7 @@ namespace Gda {
[CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
[Compact]
- public class ServerProviderBase {
+ public abstract class ServerProviderBase {
public abstract string get_name (ServerProvider provider);
public abstract string get_version (ServerProvider provider);
public abstract string get_server_version (ServerProvider provider, Connection cnc);
@@ -20,8 +20,8 @@ namespace Gda {
public abstract Connection create_connection (ServerProvider provider);
public abstract SqlParser create_parser (ServerProvider provider, Connection cnc);
public abstract DataHandler get_data_handler (ServerProvider provider, Connection? cnc,
- Type g_type, string dbms_type);
- public abstract string get_def_dbms_type (ServerProvider provider, Connection cnc, Type
g_type);
+ GLib.Type g_type, string dbms_type);
+ public abstract string get_def_dbms_type (ServerProvider provider, Connection cnc, GLib.Type
g_type);
public abstract bool supports_operation (ServerProvider provider, Connection cnc,
ServerOperationType type, Set options);
public abstract ServerOperation create_operation (ServerProvider provider, Connection cnc,
@@ -30,7 +30,7 @@ namespace Gda {
ServerOperation op) throws GLib.Error;
public abstract string statement_to_sql (ServerProvider provider, Connection cnc,
Statement stmt, Set params, StatementSqlFlag
flags,
- ref SList params_used) throws GLib.Error;
+ ref GLib.SList params_used) throws
GLib.Error;
public abstract string identifier_quote (ServerProvider provider, Connection? cnc,
string id,
bool for_meta_store, bool force_quotes);
@@ -50,32 +50,32 @@ namespace Gda {
string name, TransactionIsolation level) throws
GLib.Error;
public abstract bool commit_transaction (ServerProvider provider, Connection cnc,
string name) throws GLib.Error;
- public abstract bool rollback_transaction) (ServerProvider provider, Connection cnc,
+ public abstract bool rollback_transaction (ServerProvider provider, Connection cnc,
string name) throws GLib.Error;
public abstract bool add_savepoint (ServerProvider provider, Connection cnc,
string name) throws GLib.Error;
public abstract bool rollback_savepoint (ServerProvider provider, Connection cnc,
string name) throws GLib.Error;
public abstract bool delete_savepoint (ServerProvider provider, Connection cnc,
- strin gname) throws GLib.Error;
+ string name) throws GLib.Error;
public abstract bool statement_prepare (ServerProvider provider, Connection cnc,
Statement stmt) throws GLib.Error;
- public abstract Object statement_execute (ServerProvider provider, Connection cnc,
+ public abstract GLib.Object statement_execute (ServerProvider provider, Connection cnc,
Statement stmt, Set params,
StatementModelUsage model_usage,
- Type[] col_types, ref Set last_inserted_row) throws
GLib.Error;
+ GLib.Type[] col_types, ref Set last_inserted_row)
throws GLib.Error;
/*< private >*/
/* Padding for future expansion */
- public virtual void _gda_reserved11 () {};
- public virtual void _gda_reserved12 () {};
- public virtual void _gda_reserved13 () {};
- public virtual void _gda_reserved14 () {};
+ public abstract void _gda_reserved11 ();
+ public abstract void _gda_reserved12 ();
+ public abstract void _gda_reserved13 ();
+ public abstract void _gda_reserved14 ();
}
-
+
[CCode (cheader_filename = "libgda/libgda.h", has_type_id = false)]
[Compact]
- public class SqlStatementContentsInfo {
+ public abstract class SqlStatementContentsInfo {
public Gda.SqlStatementType type;
public weak string name;
public abstract void* construct ();
@@ -84,10 +84,15 @@ namespace Gda {
public abstract string serialize (void* stm);
public weak Gda.SqlForeachFunc check_structure_func;
public weak Gda.SqlForeachFunc check_validity_func;
- public virtual void* _gda_reserved1 () {};
- public virtual void* _gda_reserved2 () {};
- public virtual void* _gda_reserved3 () {};
- public virtual void* _gda_reserved4 () {};
+ public abstract void* _gda_reserved1 ();
+ public abstract void* _gda_reserved2 ();
+ public abstract void* _gda_reserved3 ();
+ public abstract void* _gda_reserved4 ();
}
-
+ [CCode (cheader_filename = "libgda.h", copy_function = "g_boxed_copy", free_function =
"g_boxed_free", type_id = "gda_sql_statement_get_type ()")]
+ [Compact]
+ public class SqlStatement {
+ public static Gda.SqlStatementContentsInfo get_contents_infos (Gda.SqlStatementType type);
+ }
+
}
diff --git a/libgda/Gda-6.0.metadata b/libgda/Gda-6.0.metadata
index e4cc8c025..2a29b2219 100644
--- a/libgda/Gda-6.0.metadata
+++ b/libgda/Gda-6.0.metadata
@@ -44,4 +44,6 @@ Connection
// skipping
BlobOpFunctions skip=true
ServerProviderBase skip=true
+sql_statement_get_contents_infos skip=true
SqlStatementContentsInfo skip=true
+
diff --git a/libgda/meson.build b/libgda/meson.build
index 89f2cab12..92a893bba 100644
--- a/libgda/meson.build
+++ b/libgda/meson.build
@@ -258,7 +258,7 @@ gi_sources += threadwrapper_gi_sources
gi_sources += sql_parser_gi_sources
gi_sources += libgda_handlers_sources
-gnome_module.generate_gir(libgda,
+libgda_gir = gnome_module.generate_gir(libgda,
sources: gi_sources,
namespace: 'Gda',
identifier_prefix: 'Gda',
@@ -276,6 +276,31 @@ gnome_module.generate_gir(libgda,
install_dir_typelib: join_paths(get_option('libdir'), 'girepository-1.0')
)
+vapigen = find_program('vapigen')
+libgda_vapi = custom_target(project_package,
+ command: [vapigen,
+ '--girdir='+meson.current_source_dir(),
+ '--metadatadir='+meson.current_source_dir(),
+ '--library='+project_package,
+ '--directory='+meson.current_build_dir(),
+ '--pkg=libxml-2.0',
+ '--pkg=gio-2.0',
+ '@INPUT0@', '@INPUT1@'
+ ],
+ input: [libgda_gir[0],'Gda-'+project_api_version+'-custom.vala'],
+ output: project_package+'.vapi',
+ install: true,
+ install_dir: join_paths(get_option('datadir'),'vala','vapi')
+ )
+
+# gnome_module.generate_vapi(project_package,
+# gir_dirs: meson.current_build_dir(),
+# install: true,
+# metadata_dirs: join_paths(meson.source_root(),'libgda'),
+# packages: ['gio-2.0', 'libxml-2.0'],
+# sources: libgda_gir[0]
+# )
+
# Tests
tco = executable('test_cnc_open', 'test-cnc-open.c',
dependencies: [
diff --git a/libgda/sql-parser/gda-statement-struct-decl.h b/libgda/sql-parser/gda-statement-struct-decl.h
index 00fd69c12..44afdbc58 100644
--- a/libgda/sql-parser/gda-statement-struct-decl.h
+++ b/libgda/sql-parser/gda-statement-struct-decl.h
@@ -267,8 +267,8 @@ typedef struct {
gpointer _gda_reserved3;
gpointer _gda_reserved4;
} GdaSqlStatementContentsInfo;
-#define GDA_TYPE_SQL_STATEMENT_CONTENTS_INFO gda_sql_statement_get_contents_info_get_type()
-GType gda_sql_statement_get_contents_info_get_type (void) G_GNUC_CONST;
+#define GDA_TYPE_SQL_STATEMENT_CONTENTS_INFO gda_sql_statement_contents_info_get_type()
+GType gda_sql_statement_contents_info_get_type (void) G_GNUC_CONST;
/**
* GdaSqlStatementCheckValidityData:
diff --git a/libgda/sql-parser/gda-statement-struct.c b/libgda/sql-parser/gda-statement-struct.c
index ca2765a90..0dc9cbf27 100644
--- a/libgda/sql-parser/gda-statement-struct.c
+++ b/libgda/sql-parser/gda-statement-struct.c
@@ -50,7 +50,7 @@ gda_sql_error_quark (void)
}
GdaSqlStatementContentsInfo *
-gda_sql_statement_get_contents_info_copy (GdaSqlStatementContentsInfo *src) {
+gda_sql_statement_contents_info_copy (GdaSqlStatementContentsInfo *src) {
GdaSqlStatementContentsInfo *cp = g_new0(GdaSqlStatementContentsInfo, 1);
cp->name = src->name;
cp->construct = src->construct;
@@ -64,11 +64,11 @@ gda_sql_statement_get_contents_info_copy (GdaSqlStatementContentsInfo *src) {
return cp;
}
void
-gda_sql_statement_get_contents_info_free (GdaSqlStatementContentsInfo *cinfo) {
+gda_sql_statement_contents_info_free (GdaSqlStatementContentsInfo *cinfo) {
g_free (cinfo);
}
-G_DEFINE_BOXED_TYPE(GdaSqlStatementContentsInfo, gda_sql_statement_get_contents_info,
gda_sql_statement_get_contents_info_copy, gda_sql_statement_get_contents_info_free)
+G_DEFINE_BOXED_TYPE(GdaSqlStatementContentsInfo, gda_sql_statement_contents_info,
gda_sql_statement_contents_info_copy, gda_sql_statement_contents_info_free)
/*
* statement's infos retrieval
*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]