summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tasks/ffi.rake2
-rwxr-xr-xtools/extract-api.sh5
-rwxr-xr-xtools/genruby.rb6
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, "