pkg-config 1.4.0 → 1.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/NEWS +49 -0
- data/README.rdoc +2 -10
- data/lib/pkg-config.rb +37 -21
- data/lib/pkg-config/version.rb +2 -2
- data/test/run-test.rb +0 -3
- data/test/{test_pkg_config.rb → test-pkg-config.rb} +13 -6
- metadata +5 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c534d5c0df96e67e72a0571920884897446ee0f744a16396826c97556bad064d
|
|
4
|
+
data.tar.gz: 3f98e05ee7a23b4e849caf6fe122b9efd25da4dd905cbe12bd2885333c679156
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a1974ba13aa57590a7608a0baded10dd18f22dde4a0c242c81d1adba0dd1809bd2ec03fa3fdb03e57bb63acc94957a14da856b048baf4aa41eca38a98e37d61e
|
|
7
|
+
data.tar.gz: 40383987f314bacb2e8e9d39fca02bd0f9f4b60c1670fc7270e9757f6836bbd2c84001f07329882ef0713381e91054bf10bd06edea51b0fdb8e0eb3f97481ab4
|
data/NEWS
CHANGED
|
@@ -1,5 +1,54 @@
|
|
|
1
1
|
= NEWS
|
|
2
2
|
|
|
3
|
+
== 1.4.5 - 2021-02-04
|
|
4
|
+
|
|
5
|
+
=== Improvements
|
|
6
|
+
|
|
7
|
+
* Added support for macOS 11.2.
|
|
8
|
+
[Reported by Ludovic Moutury][GitHub:rcairo/rcairo#69]
|
|
9
|
+
|
|
10
|
+
=== Thanks
|
|
11
|
+
|
|
12
|
+
* Ludovic Moutury
|
|
13
|
+
|
|
14
|
+
== 1.4.4 - 2020-09-23
|
|
15
|
+
|
|
16
|
+
=== Fixes
|
|
17
|
+
|
|
18
|
+
* Fixed a bug that NoMethodError instead of
|
|
19
|
+
PackageConfig::NotFoundError is raised.
|
|
20
|
+
[GitHub#21][Fixed by kojix2]
|
|
21
|
+
|
|
22
|
+
=== Thanks
|
|
23
|
+
|
|
24
|
+
* kojix2
|
|
25
|
+
|
|
26
|
+
== 1.4.3 - 2020-09-15
|
|
27
|
+
|
|
28
|
+
=== Improvements
|
|
29
|
+
|
|
30
|
+
* Changed to use PackageConfig::NotFoundError instead of RuntimeError
|
|
31
|
+
for exception on no .pc is found.
|
|
32
|
+
|
|
33
|
+
== 1.4.2 - 2020-08-10
|
|
34
|
+
|
|
35
|
+
=== Improvements
|
|
36
|
+
|
|
37
|
+
* Added support for detecting pkgconfig path on RubyInstaller
|
|
38
|
+
without "ridk exec".
|
|
39
|
+
|
|
40
|
+
== 1.4.1 - 2020-02-10
|
|
41
|
+
|
|
42
|
+
=== Improvements
|
|
43
|
+
|
|
44
|
+
* Added support for cycled depended .pc such as freetype2.pc and
|
|
45
|
+
harfbuzz.pc on PLD Linux.
|
|
46
|
+
[Reported by Jakub Bogusz]
|
|
47
|
+
|
|
48
|
+
=== Thanks
|
|
49
|
+
|
|
50
|
+
* Jakub Bogusz
|
|
51
|
+
|
|
3
52
|
== 1.4.0 - 2019-10-24
|
|
4
53
|
|
|
5
54
|
=== Improvements
|
data/README.rdoc
CHANGED
|
@@ -8,17 +8,13 @@ pkg-config
|
|
|
8
8
|
|
|
9
9
|
A pkg-config implementation by Ruby.
|
|
10
10
|
|
|
11
|
-
== Dependencies
|
|
12
|
-
|
|
13
|
-
* ruby >= 1.8 (1.9.2 is also supported!)
|
|
14
|
-
|
|
15
11
|
== Install
|
|
16
12
|
|
|
17
13
|
# gem install pkg-config
|
|
18
14
|
|
|
19
15
|
== Documents
|
|
20
16
|
|
|
21
|
-
*
|
|
17
|
+
* https://rubydoc.info/gems/pkg-config
|
|
22
18
|
|
|
23
19
|
== Source
|
|
24
20
|
|
|
@@ -27,7 +23,7 @@ http://github.com/ruby-gnome/pkg-config
|
|
|
27
23
|
|
|
28
24
|
== Copyright
|
|
29
25
|
|
|
30
|
-
Copyright 2008-
|
|
26
|
+
Copyright 2008-2020 Kouhei Sutou <kou@clear-code.com>
|
|
31
27
|
|
|
32
28
|
This library is free software; you can redistribute it and/or
|
|
33
29
|
modify it under the terms of the GNU Lesser General Public
|
|
@@ -45,10 +41,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
45
41
|
|
|
46
42
|
See LGPL-2.1 file for details.
|
|
47
43
|
|
|
48
|
-
== Mailing list
|
|
49
|
-
|
|
50
|
-
TODO
|
|
51
|
-
|
|
52
44
|
== Thanks
|
|
53
45
|
|
|
54
46
|
* Funky Bibimbap
|
data/lib/pkg-config.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2008-
|
|
1
|
+
# Copyright 2008-2021 Sutou Kouhei <kou@cozmixng.org>
|
|
2
2
|
#
|
|
3
3
|
# This library is free software; you can redistribute it and/or
|
|
4
4
|
# modify it under the terms of the GNU Lesser General Public
|
|
@@ -15,17 +15,22 @@
|
|
|
15
15
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
16
16
|
|
|
17
17
|
begin
|
|
18
|
-
|
|
18
|
+
require_relative "pkg-config/version"
|
|
19
19
|
rescue LoadError
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
+
require "English"
|
|
23
|
+
require "pathname"
|
|
22
24
|
require "rbconfig"
|
|
23
|
-
|
|
24
|
-
require 'shellwords'
|
|
25
|
-
require 'English'
|
|
26
|
-
require 'pathname'
|
|
25
|
+
require "shellwords"
|
|
27
26
|
|
|
28
27
|
class PackageConfig
|
|
28
|
+
class Error < StandardError
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class NotFoundError < Error
|
|
32
|
+
end
|
|
33
|
+
|
|
29
34
|
SEPARATOR = File::PATH_SEPARATOR
|
|
30
35
|
|
|
31
36
|
class << self
|
|
@@ -249,13 +254,15 @@ class PackageConfig
|
|
|
249
254
|
@path_position
|
|
250
255
|
end
|
|
251
256
|
|
|
252
|
-
def collect_requires(&block)
|
|
257
|
+
def collect_requires(processed_packages={}, &block)
|
|
253
258
|
packages = []
|
|
254
259
|
targets = yield(self)
|
|
255
260
|
targets.each do |name|
|
|
261
|
+
next if processed_packages.key?(name)
|
|
256
262
|
package = self.class.new(name, @options)
|
|
263
|
+
processed_packages[name] = package
|
|
257
264
|
packages << package
|
|
258
|
-
packages.concat(package.collect_requires(&block))
|
|
265
|
+
packages.concat(package.collect_requires(processed_packages, &block))
|
|
259
266
|
end
|
|
260
267
|
packages_without_self = packages.reject do |package|
|
|
261
268
|
package.name == @name
|
|
@@ -358,7 +365,7 @@ class PackageConfig
|
|
|
358
365
|
all_flags = {}
|
|
359
366
|
flags = []
|
|
360
367
|
in_option = false
|
|
361
|
-
libs_command_line.gsub(/-([Ll]) /,
|
|
368
|
+
libs_command_line.gsub(/-([Ll]) /, "\\1").split.each do |arg|
|
|
362
369
|
if in_option
|
|
363
370
|
flags << arg
|
|
364
371
|
in_option = false
|
|
@@ -379,12 +386,12 @@ class PackageConfig
|
|
|
379
386
|
|
|
380
387
|
IDENTIFIER_RE = /[a-zA-Z\d_\.]+/
|
|
381
388
|
def parse_pc
|
|
382
|
-
raise ".pc
|
|
389
|
+
raise NotFoundError, ".pc doesn't exist: <#{@name}>" unless exist?
|
|
383
390
|
@variables = {}
|
|
384
391
|
@declarations = {}
|
|
385
392
|
File.open(pc_path) do |input|
|
|
386
393
|
input.each_line do |line|
|
|
387
|
-
line = line.gsub(/#.*/,
|
|
394
|
+
line = line.gsub(/#.*/, "").strip
|
|
388
395
|
next if line.empty?
|
|
389
396
|
case line
|
|
390
397
|
when /^(#{IDENTIFIER_RE})=/
|
|
@@ -398,7 +405,7 @@ class PackageConfig
|
|
|
398
405
|
|
|
399
406
|
def parse_requires(requires)
|
|
400
407
|
return [] if requires.nil?
|
|
401
|
-
requires_without_version = requires.gsub(/[<>]?=\s*[\d.a-zA-Z_-]+\s*/,
|
|
408
|
+
requires_without_version = requires.gsub(/[<>]?=\s*[\d.a-zA-Z_-]+\s*/, "")
|
|
402
409
|
requires_without_version.split(/[,\s]+/)
|
|
403
410
|
end
|
|
404
411
|
|
|
@@ -438,6 +445,11 @@ class PackageConfig
|
|
|
438
445
|
"/opt/X11/lib/pkgconfig",
|
|
439
446
|
"/usr/share/pkgconfig",
|
|
440
447
|
]
|
|
448
|
+
if Object.const_defined?(:RubyInstaller)
|
|
449
|
+
mingw_bin_path = RubyInstaller::Runtime.msys2_installation.mingw_bin_path
|
|
450
|
+
mingw_pkgconfig_path = Pathname.new(mingw_bin_path) + "../lib/pkgconfig"
|
|
451
|
+
default_paths.unshift(mingw_pkgconfig_path.cleanpath.to_s)
|
|
452
|
+
end
|
|
441
453
|
libdir = ENV["PKG_CONFIG_LIBDIR"]
|
|
442
454
|
default_paths.unshift(libdir) if libdir
|
|
443
455
|
|
|
@@ -473,7 +485,11 @@ class PackageConfig
|
|
|
473
485
|
homebrew_repository_candidates << Pathname(homebrew_repository)
|
|
474
486
|
end
|
|
475
487
|
homebrew_repository_candidates.uniq.each do |candidate|
|
|
476
|
-
|
|
488
|
+
pkgconfig_base_path = candidate + "Library/Homebrew/os/mac/pkgconfig"
|
|
489
|
+
path = pkgconfig_base_path + mac_os_version
|
|
490
|
+
unless path.exist?
|
|
491
|
+
path = pkgconfig_base_path + mac_os_version.gsub(/\.\d+\z/, "")
|
|
492
|
+
end
|
|
477
493
|
paths << path.to_s if path.exist?
|
|
478
494
|
end
|
|
479
495
|
end
|
|
@@ -514,7 +530,7 @@ module PKGConfig
|
|
|
514
530
|
end
|
|
515
531
|
|
|
516
532
|
def msvc?
|
|
517
|
-
/mswin/.match(RUBY_PLATFORM) and /^cl\b/.match(RbConfig::CONFIG[
|
|
533
|
+
/mswin/.match(RUBY_PLATFORM) and /^cl\b/.match(RbConfig::CONFIG["CC"])
|
|
518
534
|
end
|
|
519
535
|
|
|
520
536
|
def package_config(package)
|
|
@@ -589,18 +605,18 @@ module PKGConfig
|
|
|
589
605
|
dldflags = libs(pkg)
|
|
590
606
|
dldflags = (Shellwords.shellwords(dldflags) -
|
|
591
607
|
Shellwords.shellwords(libraries))
|
|
592
|
-
dldflags = dldflags.map {|s| /\s/ =~ s ? "\"#{s}\"" : s }.join(
|
|
593
|
-
$libs +=
|
|
608
|
+
dldflags = dldflags.map {|s| /\s/ =~ s ? "\"#{s}\"" : s }.join(" ")
|
|
609
|
+
$libs += " " + libraries
|
|
594
610
|
if /mswin/ =~ RUBY_PLATFORM
|
|
595
|
-
$DLDFLAGS +=
|
|
611
|
+
$DLDFLAGS += " " + dldflags
|
|
596
612
|
else
|
|
597
|
-
$LDFLAGS +=
|
|
613
|
+
$LDFLAGS += " " + dldflags
|
|
598
614
|
end
|
|
599
|
-
$CFLAGS +=
|
|
615
|
+
$CFLAGS += " " + cflags_only_other(pkg)
|
|
600
616
|
if defined?($CXXFLAGS)
|
|
601
|
-
$CXXFLAGS +=
|
|
617
|
+
$CXXFLAGS += " " + cflags_only_other(pkg)
|
|
602
618
|
end
|
|
603
|
-
$INCFLAGS +=
|
|
619
|
+
$INCFLAGS += " " + cflags_only_I(pkg)
|
|
604
620
|
end
|
|
605
621
|
enough_version
|
|
606
622
|
end
|
data/lib/pkg-config/version.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2012-
|
|
1
|
+
# Copyright 2012-2020 Sutou Kouhei <kou@cozmixng.org>
|
|
2
2
|
#
|
|
3
3
|
# This library is free software; you can redistribute it and/or
|
|
4
4
|
# modify it under the terms of the GNU Lesser General Public
|
|
@@ -15,5 +15,5 @@
|
|
|
15
15
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
16
16
|
|
|
17
17
|
module PKGConfig
|
|
18
|
-
VERSION = "1.4.
|
|
18
|
+
VERSION = "1.4.5"
|
|
19
19
|
end
|
data/test/run-test.rb
CHANGED
|
@@ -6,9 +6,6 @@ base_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
|
|
|
6
6
|
lib_dir = File.join(base_dir, "lib")
|
|
7
7
|
test_dir = File.join(base_dir, "test")
|
|
8
8
|
|
|
9
|
-
ENV["BUNDLE_GEMFILE"] ||= File.join(base_dir, "Gemfile")
|
|
10
|
-
require "bundler/setup"
|
|
11
|
-
|
|
12
9
|
require 'test-unit'
|
|
13
10
|
|
|
14
11
|
$LOAD_PATH.unshift(lib_dir)
|
|
@@ -17,10 +17,10 @@ class PkgConfigTest < Test::Unit::TestCase
|
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
def test_exist?
|
|
20
|
-
assert(system(
|
|
20
|
+
assert(system("pkg-config --exists cairo"))
|
|
21
21
|
assert(@cairo.exist?)
|
|
22
22
|
|
|
23
|
-
assert(system(
|
|
23
|
+
assert(system("pkg-config --exists cairo-png"))
|
|
24
24
|
assert(@cairo_png.exist?)
|
|
25
25
|
end
|
|
26
26
|
|
|
@@ -94,7 +94,7 @@ class PkgConfigTest < Test::Unit::TestCase
|
|
|
94
94
|
@cairo.msvc_syntax = true
|
|
95
95
|
result = pkg_config("cairo", "--libs")
|
|
96
96
|
msvc_result = result.gsub(/-lcairo\b/, "cairo.lib")
|
|
97
|
-
msvc_result = msvc_result.gsub(/-L/,
|
|
97
|
+
msvc_result = msvc_result.gsub(/-L/, "/libpath:")
|
|
98
98
|
assert_not_equal(msvc_result, result)
|
|
99
99
|
assert_equal(msvc_result, @cairo.libs)
|
|
100
100
|
end
|
|
@@ -107,7 +107,7 @@ class PkgConfigTest < Test::Unit::TestCase
|
|
|
107
107
|
def test_libs_only_l_msvc
|
|
108
108
|
@cairo_png.msvc_syntax = true
|
|
109
109
|
result = pkg_config("cairo-png", "--libs-only-l")
|
|
110
|
-
msvc_result = result.gsub(/-l(cairo|png[0-9]+|z)\b/,
|
|
110
|
+
msvc_result = result.gsub(/-l(cairo|png[0-9]+|z)\b/, "\\1.lib")
|
|
111
111
|
assert_not_equal(msvc_result, result)
|
|
112
112
|
assert_equal(msvc_result, @cairo_png.libs_only_l)
|
|
113
113
|
end
|
|
@@ -120,7 +120,7 @@ class PkgConfigTest < Test::Unit::TestCase
|
|
|
120
120
|
def test_libs_only_L_msvc
|
|
121
121
|
@cairo_png.msvc_syntax = true
|
|
122
122
|
result = pkg_config("cairo-png", "--libs-only-L")
|
|
123
|
-
msvc_result = result.gsub(/-L/,
|
|
123
|
+
msvc_result = result.gsub(/-L/, "/libpath:")
|
|
124
124
|
assert_not_equal(msvc_result, result)
|
|
125
125
|
assert_equal(msvc_result, @cairo_png.libs_only_L)
|
|
126
126
|
end
|
|
@@ -164,10 +164,17 @@ class PkgConfigTest < Test::Unit::TestCase
|
|
|
164
164
|
end
|
|
165
165
|
end
|
|
166
166
|
|
|
167
|
+
def test_not_found
|
|
168
|
+
message = ".pc doesn't exist: <nonexistent>"
|
|
169
|
+
assert_raise(PackageConfig::NotFoundError.new(message)) do
|
|
170
|
+
PKGConfig.modversion("nonexistent")
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
|
|
167
174
|
private
|
|
168
175
|
def pkg_config(package, *args)
|
|
169
176
|
args.unshift("--define-variable=libdir=#{@custom_libdir}")
|
|
170
|
-
args = args.collect {|arg| arg.dump}.join(
|
|
177
|
+
args = args.collect {|arg| arg.dump}.join(" ")
|
|
171
178
|
`pkg-config #{args} #{package}`.strip
|
|
172
179
|
end
|
|
173
180
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pkg-config
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.4.
|
|
4
|
+
version: 1.4.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kouhei Sutou
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-02-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: test-unit
|
|
@@ -68,7 +68,7 @@ files:
|
|
|
68
68
|
- lib/pkg-config.rb
|
|
69
69
|
- lib/pkg-config/version.rb
|
|
70
70
|
- test/run-test.rb
|
|
71
|
-
- test/
|
|
71
|
+
- test/test-pkg-config.rb
|
|
72
72
|
homepage: https://github.com/ruby-gnome/pkg-config
|
|
73
73
|
licenses:
|
|
74
74
|
- LGPLv2+
|
|
@@ -89,11 +89,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
89
89
|
- !ruby/object:Gem::Version
|
|
90
90
|
version: '0'
|
|
91
91
|
requirements: []
|
|
92
|
-
|
|
93
|
-
rubygems_version: 2.7.6.2
|
|
92
|
+
rubygems_version: 3.3.0.dev
|
|
94
93
|
signing_key:
|
|
95
94
|
specification_version: 4
|
|
96
95
|
summary: A pkg-config implementation for Ruby
|
|
97
96
|
test_files:
|
|
98
97
|
- test/run-test.rb
|
|
99
|
-
- test/
|
|
98
|
+
- test/test-pkg-config.rb
|