diff --git a/gi-find-deps.sh b/gi-find-deps.sh index 36d85df..8915011 100644 --- a/gi-find-deps.sh +++ b/gi-find-deps.sh @@ -40,21 +40,19 @@ done } function find_requires { -# FIXME: There are multiple ways gi bindings can be imported. We only catch the 'basic' one # Currently, we detect: # - in python: # . from gi.repository import foo [Unversioned requirement of 'foo'] # . from gi.repository import foo-1.0 [versioned requirement] +# . gi.require_version('Gtk', '3.0') (To specify a version.. there is still an import needed) # . And we do not stumble over: # from gi.repository import foo as _bar # from gi.repository import foo, bar # - in JS: # . imports.gi.foo; [unversioned requirement of 'foo'] # . imports.gi.goo-1.0; [versioned requirement] +# . imports.gi.versions.Gtk = '3.0'; # . The imports can be listed on one line, and we catch them. -# Forms currently not detected: -# - js: imports.gi.versions.Gtk = '3.0'; -# - py: gi.require_version('Gtk', '3.0') while read file; do case $file in @@ -69,8 +67,12 @@ while read file; do print_req_prov done ;; - *.py) - for module in $(grep -h -P "from gi.repository import (\w+)" $file | sed -e 's:#.*::' -e 's:raise ImportError.*::' | sed -e 's,from gi.repository import,,' -r -e 's:\s+$::g' -e 's:\s+as\s+\w+::g' -e 's:,: :g'); do + *.py) + for module in $(grep -h -P "from gi.repository import (\w+)" $file | sed -e 's:#.*::' -e 's:raise ImportError.*::' | sed -e 's,from gi.repository import,,' -r -e 's:\s+$::g' -e 's:\s+as\s+\w+::g' -e 's:,: :g'); do + split_name_version $module + print_req_prov + done + for module in $(grep -h -P -o "(gi.require_version\(['\"][^'\"]+['\"],\s*['\"][^'\"]+['\"]\))" $file | sed -e 's:gi.require_version::' -e "s:[()\"' ]::g" -e 's:,:-:'); do split_name_version $module print_req_prov done diff --git a/gobject-introspection.changes b/gobject-introspection.changes index afc1956..3c3da85 100644 --- a/gobject-introspection.changes +++ b/gobject-introspection.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Tue Oct 16 20:50:56 UTC 2012 - dimstar@opensuse.org + +- Extend gi-find-deps.sh to understand gi.require_version in python + code. This was the last know format not yet supported. + ------------------------------------------------------------------- Tue Oct 2 16:13:01 UTC 2012 - dimstar@opensuse.org