|
2 | 2 | require "pkg-config" |
3 | 3 |
|
4 | 4 | class PkgConfigTest < Test::Unit::TestCase |
| 5 | + def find_program(name) |
| 6 | + exeext = RbConfig::CONFIG["EXEEXT"] |
| 7 | + ENV["PATH"].split(File::PATH_SEPARATOR).each do |path| |
| 8 | + program = File.join(path, name) |
| 9 | + return name if File.exist?(program) |
| 10 | + return name if File.exist?("#{program}.#{exeext}") |
| 11 | + end |
| 12 | + nil |
| 13 | + end |
| 14 | + |
5 | 15 | def setup |
| 16 | + @pkgconf = find_program("pkgconf") || "pkg-config" |
6 | 17 | @custom_libdir = "/tmp/local/lib" |
7 | 18 | options = {:override_variables => {"libdir" => @custom_libdir}} |
8 | 19 | @cairo = PackageConfig.new("cairo", options) |
9 | 20 | @cairo_png = PackageConfig.new("cairo-png", options) |
10 | 21 | end |
11 | 22 |
|
12 | 23 | def only_pkg_config_version(major, minor) |
13 | | - pkg_config_version = `pkg-config --version`.chomp |
| 24 | + pkg_config_version = `#{@pkgconf} --version`.chomp |
14 | 25 | current_major, current_minor = pkg_config_version.split(".").collect(&:to_i) |
15 | 26 | return if ([major, minor] <=> [current_major, current_minor]) <= 0 |
16 | | - omit("Require pkg-config #{pkg_config_version} or later") |
| 27 | + omit("Require #{@pkgconf} #{pkg_config_version} or later") |
17 | 28 | end |
18 | 29 |
|
19 | 30 | def test_exist? |
20 | | - assert(system("pkg-config --exists cairo")) |
| 31 | + assert(system("#{@pkgconf} --exists cairo")) |
21 | 32 | assert(@cairo.exist?) |
22 | 33 |
|
23 | | - assert(system("pkg-config --exists cairo-png")) |
| 34 | + assert(system("#{@pkgconf} --exists cairo-png")) |
24 | 35 | assert(@cairo_png.exist?) |
25 | 36 | end |
26 | 37 |
|
@@ -177,7 +188,7 @@ def test_not_found |
177 | 188 | def pkg_config(package, *args) |
178 | 189 | args.unshift("--define-variable=libdir=#{@custom_libdir}") |
179 | 190 | args = args.collect {|arg| arg.dump}.join(" ") |
180 | | - normalize_pkg_config_result(`pkg-config #{args} #{package}`.strip) |
| 191 | + normalize_pkg_config_result(`#{@pkgconf} #{args} #{package}`.strip) |
181 | 192 | end |
182 | 193 |
|
183 | 194 | def normalize_pkg_config_result(result) |
|
0 commit comments