diff options
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/genruby.rb | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/tools/genruby.rb b/tools/genruby.rb index 8bb4513..7347a1d 100755 --- a/tools/genruby.rb +++ b/tools/genruby.rb @@ -354,21 +354,31 @@ libs.each do |lib| reqs = ( lib[:requires].nil? ? '' : lib[:requires].inject('') {|s,e| s+="\nrequire '#{e}'"}) f << HEADER.gsub(/MNAME/,lib[:modname]).sub(/MY_FCT_PREFIX/,lib[:prefix]).sub(/REQUIRES/,reqs) f << "#{INDENT}#\n#{INDENT}ffi_lib '#{lib[:lib]}'" - f << "\n#{INDENT}#\n#{INDENT}# ENUMS" print "enums, " - f << "\n"+lib[:enums].collect { |t| ( t.is_a?(Array) ? t[1] : t ) }.compact.join("\n") unless lib[:enums].empty? - f << "\n#{INDENT}#\n#{INDENT}# TYPEDEFS" + if not lib[:enums].empty? + f << "\n#{INDENT}#\n#{INDENT}# ENUMS" + f << "\n"+lib[:enums].collect { |t| ( t.is_a?(Array) ? t[1] : t ) }.compact.join("\n") + end print "typedefs, " - f << "\n"+lib[:typedefs].collect { |t| ( t.is_a?(Array) ? t[1] : t ) }.compact.join("\n") unless lib[:typedefs].empty? - f << "\n#{INDENT}#\n#{INDENT}# CALLBACKS" + if not lib[:typedefs].empty? + f << "\n#{INDENT}#\n#{INDENT}# TYPEDEFS" + f << "\n"+lib[:typedefs].collect { |t| ( t.is_a?(Array) ? t[1] : t ) }.compact.join("\n") + end print "callbacks, " - f << "\n"+lib[:callbacks].join("\n") unless lib[:callbacks].empty? - f << "\n#{INDENT}#\n#{INDENT}# VARIABLES" + if not lib[:callbacks].empty? + f << "\n#{INDENT}#\n#{INDENT}# CALLBACKS" + f << "\n"+lib[:callbacks].join("\n") + end print "variables, " - f << "\n"+lib[:variables].join("\n") unless lib[:variables].empty? - f << "\n#{INDENT}#\n#{INDENT}# FUNCTIONS" + if not lib[:variables].empty? + f << "\n#{INDENT}#\n#{INDENT}# VARIABLES" + f << "\n"+lib[:variables].join("\n") + end puts "functions." - f << "\n"+lib[:functions].join("\n") unless lib[:functions].empty? + if not lib[:functions].empty? + f << "\n#{INDENT}#\n#{INDENT}# FUNCTIONS" + f << "\n"+lib[:functions].join("\n") + end f << "\n#{INDENT}#\n#{INDENT}attach_fcts fcts\n#{INDENT}#\n" f << FOOTER end |