diff --git a/lib/utilrb/pkgconfig.rb b/lib/utilrb/pkgconfig.rb index 933bd55..d87e3f0 100644 --- a/lib/utilrb/pkgconfig.rb +++ b/lib/utilrb/pkgconfig.rb @@ -466,8 +466,8 @@ def self.each_package(regex = nil) end - FOUND_PATH_RX = /Scanning directory '(.*\/)((?:lib|lib64|share)\/.*)'$/ - NONEXISTENT_PATH_RX = /Cannot open directory '.*\/((?:lib|lib64|share)\/.*)' in package search path:.*/ + FOUND_PATH_RX = /Scanning directory (?:#\d+ )?'(.*\/)((?:lib|lib64|share)\/.*)'$/ + NONEXISTENT_PATH_RX = /Cannot open directory (?:#\d+ )?'.*\/((?:lib|lib64|share)\/.*)' in package search path:.*/ # Returns the system-wide search path that is embedded in pkg-config def self.default_search_path diff --git a/test/test_pkgconfig.rb b/test/test_pkgconfig.rb index 12d708c..594b03f 100644 --- a/test/test_pkgconfig.rb +++ b/test/test_pkgconfig.rb @@ -19,6 +19,20 @@ def test_find_package PkgConfig.new('test_pkgconfig') end + def test_path_autodetection_regexp + # PkgConfig 0.26 + assert("Scanning directory '/usr/share/pkgconfig'" =~ Utilrb::PkgConfig::FOUND_PATH_RX) + assert_equal '/usr/share/pkgconfig', "#{$1}#{$2}" + assert("Cannot open directory '/usr/share/pkgconfig' in package search path:" =~ Utilrb::PkgConfig::NONEXISTENT_PATH_RX) + assert_equal 'share/pkgconfig', $1 + + # PkgConfig 0.29.1 + assert("Scanning directory #10 '/usr/share/pkgconfig'" =~ Utilrb::PkgConfig::FOUND_PATH_RX) + assert_equal '/usr/share/pkgconfig', "#{$1}#{$2}" + assert("Cannot open directory #10 '/usr/share/pkgconfig' in package search path:" =~ Utilrb::PkgConfig::NONEXISTENT_PATH_RX) + assert_equal 'share/pkgconfig', $1 + end + def test_load pkg = PkgConfig.new('test_pkgconfig') assert_equal('test_pkgconfig', pkg.name)