diff options
-rw-r--r-- | tasks/ffi.rake | 2 | ||||
-rwxr-xr-x | tools/extract-api.sh | 5 | ||||
-rwxr-xr-x | tools/genruby.rb | 6 |
3 files changed, 9 insertions, 4 deletions
diff --git a/tasks/ffi.rake b/tasks/ffi.rake index 7ab3ffb..0ade669 100644 --- a/tasks/ffi.rake +++ b/tasks/ffi.rake @@ -12,7 +12,7 @@ namespace :ffi do # desc "generate ffi bindings" task :ruby do - sh 'ruby ./tools/genruby.rb' + sh './tools/genruby.rb' end end # diff --git a/tools/extract-api.sh b/tools/extract-api.sh index 29844aa..254a693 100755 --- a/tools/extract-api.sh +++ b/tools/extract-api.sh @@ -37,6 +37,11 @@ for header in \ "${INCLUDE}/elementary-0/Elementary.h" \ ; do # + if [ ! -e "$header" ]; then + echo "$header not found, we won't generate bindings for this header." + continue + fi + # DIR=$(dirname $header) FILE=$(basename $header) # diff --git a/tools/genruby.rb b/tools/genruby.rb index fafa6a9..4177447 100755 --- a/tools/genruby.rb +++ b/tools/genruby.rb @@ -157,7 +157,7 @@ def gen_enums path, indent r = [] open(path+'-enums','r').readlines.each do |l| l.strip! - if not l=~/(typedef enum(?: \w+)?) {([A-Z0-9_ (\s*=\s*-?[\d+]),]+)} (\w+);/ + if not l=~/(typedef enum(?: \w+)?) \{([-A-Z0-9_=, ]+)\} (\w+);/ r << indent+"# #{l}\n#{indent}# FIXME" next end @@ -239,12 +239,12 @@ def gen_functions path, indent r end # -Dir.mkdir lib_path unless Dir.exists? lib_path +Dir.mkdir lib_path unless (File.exists? lib_path) # libraries.collect do |header,module_name,fct_prefix,lib, output| base = File.join path, 'api', header output = File.join lib_path, output - Dir.mkdir File.dirname output unless Dir.exists? File.dirname output + Dir.mkdir File.dirname(output) unless File.exists? File.dirname(output) printf "%-60s", "parse #{base}-*" r = [lib, output, module_name, fct_prefix ] print "enums, " |