Bugzilla – Attachment 640 Details for
Bug 1526
libsigrok Ruby bindings fail to build with Ruby 2.7
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Fix ruby bindings
0001-Fix-ruby-SWIG-bindings-generation.patch (text/plain), 3.01 KB, created by
Anatol
on 2020-06-09 06:01:51 CEST
(
hide
)
Description:
Fix ruby bindings
Filename:
MIME Type:
Creator:
Anatol
Created:
2020-06-09 06:01:51 CEST
Size:
3.01 KB
patch
obsolete
>From bae9308ec157378bd22ce4f4a0226f1e7ef23594 Mon Sep 17 00:00:00 2001 >From: Anatol Pomozov <anatol.pomozov@gmail.com> >Date: Mon, 8 Jun 2020 20:46:44 -0700 >Subject: [PATCH] Fix ruby SWIG bindings generation > >bindings/swig/doc.py generates a swig interface file for ruby bindings >that includes docstrings with comments braces ( /* and */ ) like this: > > %feature("docstring") sigrok::Channel::type "/* Type of this channel. */\n"; > %feature("docstring") sigrok::Channel::enabled "/* Enabled status of this channel. */\n"; > >SWIG generates *.cxx and adds its own braces to the docstring: > >/*/* Document-class: Sigrok::Error >Exception thrown when an error code is returned by any libsigrok call. */ >*/ > >this causes compilation error for Ruby bindings. > >To fix the error we should not add extra braces to the docstring. >With this patch libsigrok compiles fine with with ruby 2.7 and swig 4.0.2. > >Fixes bug #1526 > >Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com> >--- > bindings/swig/doc.py | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > >diff --git a/bindings/swig/doc.py b/bindings/swig/doc.py >index e8767af8..182f5477 100644 >--- a/bindings/swig/doc.py >+++ b/bindings/swig/doc.py >@@ -46,7 +46,7 @@ for compound in index.findall('compound'): > if language == 'python': > print('%%feature("docstring") %s "%s";' % (class_name, brief)) > elif language == 'ruby': >- print('%%feature("docstring") %s "/* Document-class: %s\\n%s */\\n";' % (class_name, class_name.replace("sigrok", "Sigrok", 1), brief)) >+ print('%%feature("docstring") %s "Document-class: %s\\n%s\\n";' % (class_name, class_name.replace("sigrok", "Sigrok", 1), brief)) > elif language == 'java': > print('%%typemap(javaclassmodifiers) %s "/** %s */\npublic class"' % ( > class_name, brief)) >@@ -77,10 +77,10 @@ for compound in index.findall('compound'): > for name, desc in parameters.items()]) + '";') > if language == 'ruby' and kind == 'public-func': > print(str.join('\n', [ >- '%%feature("docstring") %s::%s "/* %s' % ( >+ '%%feature("docstring") %s::%s "%s' % ( > class_name, member_name, brief)] + [ > '@param %s %s' % (name, desc) >- for name, desc in parameters.items()]) + ' */\\n";') >+ for name, desc in parameters.items()]) + '\\n";') > elif language == 'java' and kind == 'public-func': > print(str.join('\n', [ > '%%javamethodmodifiers %s::%s "/** %s' % ( >@@ -111,4 +111,4 @@ for compound in index.findall('compound'): > print('%}') > elif language == 'ruby' and constants: > for member_name, brief in constants: >- print('%%feature("docstring") %s::%s "/* %s */\\n";' % (class_name, member_name, brief)) >+ print('%%feature("docstring") %s::%s "%s\\n";' % (class_name, member_name, brief)) >-- >2.27.0 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 1526
: 640