pkg-config 1.3.7 → 1.4.2
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 +47 -0
- data/README.rdoc +2 -8
- data/lib/pkg-config.rb +117 -55
- data/lib/pkg-config/version.rb +2 -2
- data/test/test_pkg_config.rb +61 -6
- metadata +4 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ca2690b236cb0845ff444ae843a41f4ad77532dc47eb65c984616398605510ed
|
|
4
|
+
data.tar.gz: 8434a6be7c364013b1a497406e797bebac4f7cb911764024bdd596e0b4c38f08
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 067f058cf005a0c6835d9648f0dbbc224873ee1fc3b7596988a93866389c487d33059abf6d94ed0d81ac326371db66c5c755362efb2292e74ad5701adcc4cb99
|
|
7
|
+
data.tar.gz: 78b5ec42683dd4e87f07221f84ae634e535aacab38fba199de6f72e8b197662cb80ac4ac23a950d9795c559f3d8628ab28e975d0a0bd753dd187ad3dfbf10ffd
|
data/NEWS
CHANGED
|
@@ -1,5 +1,52 @@
|
|
|
1
1
|
= NEWS
|
|
2
2
|
|
|
3
|
+
== 1.4.2 - 2020-08-10
|
|
4
|
+
|
|
5
|
+
=== Improvements
|
|
6
|
+
|
|
7
|
+
* Added support for detecting pkgconfig path on RubyInstaller
|
|
8
|
+
without "ridk exec".
|
|
9
|
+
|
|
10
|
+
== 1.4.1 - 2020-02-10
|
|
11
|
+
|
|
12
|
+
=== Improvements
|
|
13
|
+
|
|
14
|
+
* Added support for cycled depended .pc such as freetype2.pc and
|
|
15
|
+
harfbuzz.pc on PLD Linux.
|
|
16
|
+
[Reported by Jakub Bogusz]
|
|
17
|
+
|
|
18
|
+
=== Thanks
|
|
19
|
+
|
|
20
|
+
* Jakub Bogusz
|
|
21
|
+
|
|
22
|
+
== 1.4.0 - 2019-10-24
|
|
23
|
+
|
|
24
|
+
=== Improvements
|
|
25
|
+
|
|
26
|
+
* Improved Homebrew detection.
|
|
27
|
+
|
|
28
|
+
== 1.3.9 - 2019-09-28
|
|
29
|
+
|
|
30
|
+
=== Improvements
|
|
31
|
+
|
|
32
|
+
* Added support for absolute path in Requires.
|
|
33
|
+
[GitHub#18][Reported by Josh Huckabee]
|
|
34
|
+
|
|
35
|
+
=== Thanks
|
|
36
|
+
|
|
37
|
+
* Josh Huckabee
|
|
38
|
+
|
|
39
|
+
== 1.3.8 - 2019-08-13
|
|
40
|
+
|
|
41
|
+
=== Improvements
|
|
42
|
+
|
|
43
|
+
* Added support for -framework on macOS.
|
|
44
|
+
[GitHub:ruby-gnome2/ruby-gnome2#1287][Reported by Viko]
|
|
45
|
+
|
|
46
|
+
=== Thanks
|
|
47
|
+
|
|
48
|
+
* Viko
|
|
49
|
+
|
|
3
50
|
== 1.3.7 - 2019-03-17
|
|
4
51
|
|
|
5
52
|
=== Improvements
|
data/README.rdoc
CHANGED
|
@@ -14,14 +14,8 @@ A pkg-config implementation by Ruby.
|
|
|
14
14
|
|
|
15
15
|
== Install
|
|
16
16
|
|
|
17
|
-
=== Package
|
|
18
|
-
|
|
19
17
|
# gem install pkg-config
|
|
20
18
|
|
|
21
|
-
=== No package
|
|
22
|
-
|
|
23
|
-
# ruby setup.rb
|
|
24
|
-
|
|
25
19
|
== Documents
|
|
26
20
|
|
|
27
21
|
* TODO
|
|
@@ -29,11 +23,11 @@ A pkg-config implementation by Ruby.
|
|
|
29
23
|
== Source
|
|
30
24
|
|
|
31
25
|
There is the pkg-config repository at GitHub:
|
|
32
|
-
http://github.com/
|
|
26
|
+
http://github.com/ruby-gnome/pkg-config
|
|
33
27
|
|
|
34
28
|
== Copyright
|
|
35
29
|
|
|
36
|
-
Copyright 2008-
|
|
30
|
+
Copyright 2008-2019 Kouhei Sutou <kou@clear-code.com>
|
|
37
31
|
|
|
38
32
|
This library is free software; you can redistribute it and/or
|
|
39
33
|
modify it under the terms of the GNU Lesser General Public
|
data/lib/pkg-config.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2008-
|
|
1
|
+
# Copyright 2008-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,15 +15,14 @@
|
|
|
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
|
|
29
28
|
SEPARATOR = File::PATH_SEPARATOR
|
|
@@ -122,6 +121,7 @@ class PackageConfig
|
|
|
122
121
|
def compute_native_pkg_config_prefix
|
|
123
122
|
pkg_config = native_pkg_config
|
|
124
123
|
return nil unless pkg_config.absolute?
|
|
124
|
+
return nil unless pkg_config.exist?
|
|
125
125
|
|
|
126
126
|
pkg_config_prefix = pkg_config.parent.parent
|
|
127
127
|
if File::ALT_SEPARATOR
|
|
@@ -134,10 +134,19 @@ class PackageConfig
|
|
|
134
134
|
end
|
|
135
135
|
end
|
|
136
136
|
|
|
137
|
+
attr_reader :name
|
|
137
138
|
attr_reader :paths
|
|
138
139
|
attr_accessor :msvc_syntax
|
|
139
140
|
def initialize(name, options={})
|
|
140
|
-
|
|
141
|
+
if Pathname(name).absolute?
|
|
142
|
+
@pc_path = name
|
|
143
|
+
@path_position = 0
|
|
144
|
+
@name = File.basename(@pc_path, ".*")
|
|
145
|
+
else
|
|
146
|
+
@pc_path = nil
|
|
147
|
+
@path_position = nil
|
|
148
|
+
@name = name
|
|
149
|
+
end
|
|
141
150
|
@options = options
|
|
142
151
|
path = @options[:path] || ENV["PKG_CONFIG_PATH"]
|
|
143
152
|
@paths = [path, guess_default_path].compact.join(SEPARATOR).split(SEPARATOR)
|
|
@@ -220,29 +229,63 @@ class PackageConfig
|
|
|
220
229
|
end
|
|
221
230
|
|
|
222
231
|
def pc_path
|
|
223
|
-
@
|
|
224
|
-
|
|
225
|
-
|
|
232
|
+
if @pc_path
|
|
233
|
+
return @pc_path if File.exist?(@pc_path)
|
|
234
|
+
else
|
|
235
|
+
@paths.each_with_index do |path, i|
|
|
236
|
+
_pc_path = File.join(path, "#{@name}.pc")
|
|
237
|
+
if File.exist?(_pc_path)
|
|
238
|
+
@path_position = i + 1
|
|
239
|
+
return _pc_path
|
|
240
|
+
end
|
|
241
|
+
end
|
|
226
242
|
end
|
|
227
243
|
nil
|
|
228
244
|
end
|
|
229
245
|
|
|
246
|
+
protected
|
|
247
|
+
def path_position
|
|
248
|
+
@path_position
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
def collect_requires(processed_packages={}, &block)
|
|
252
|
+
packages = []
|
|
253
|
+
targets = yield(self)
|
|
254
|
+
targets.each do |name|
|
|
255
|
+
next if processed_packages.key?(name)
|
|
256
|
+
package = self.class.new(name, @options)
|
|
257
|
+
processed_packages[name] = package
|
|
258
|
+
packages << package
|
|
259
|
+
packages.concat(package.collect_requires(processed_packages, &block))
|
|
260
|
+
end
|
|
261
|
+
packages_without_self = packages.reject do |package|
|
|
262
|
+
package.name == @name
|
|
263
|
+
end
|
|
264
|
+
packages_without_self.uniq do |package|
|
|
265
|
+
package.name
|
|
266
|
+
end
|
|
267
|
+
end
|
|
268
|
+
|
|
230
269
|
private
|
|
231
|
-
def
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
self.class.new(package, @options).cflags
|
|
270
|
+
def sort_packages(packages)
|
|
271
|
+
packages.sort_by.with_index do |package, i|
|
|
272
|
+
[package.path_position, i]
|
|
235
273
|
end
|
|
236
|
-
|
|
237
|
-
|
|
274
|
+
end
|
|
275
|
+
|
|
276
|
+
def collect_cflags
|
|
277
|
+
target_packages = sort_packages([self, *all_required_packages])
|
|
278
|
+
cflags_set = []
|
|
279
|
+
target_packages.each do |package|
|
|
280
|
+
cflags_set << package.declaration("Cflags")
|
|
238
281
|
end
|
|
239
282
|
all_cflags = normalize_cflags(Shellwords.split(cflags_set.join(" ")))
|
|
240
283
|
path_flags, other_flags = all_cflags.partition {|flag| /\A-I/ =~ flag}
|
|
241
284
|
path_flags = normalize_path_flags(path_flags, "-I")
|
|
242
|
-
path_flags = remove_duplicated_include_paths(path_flags)
|
|
243
285
|
path_flags = path_flags.reject do |flag|
|
|
244
286
|
flag == "-I/usr/include"
|
|
245
287
|
end
|
|
288
|
+
path_flags = path_flags.uniq
|
|
246
289
|
if @msvc_syntax
|
|
247
290
|
path_flags = path_flags.collect do |flag|
|
|
248
291
|
flag.gsub(/\A-I/, "/I")
|
|
@@ -284,21 +327,19 @@ class PackageConfig
|
|
|
284
327
|
normalized_cflags
|
|
285
328
|
end
|
|
286
329
|
|
|
287
|
-
def remove_duplicated_include_paths(path_flags)
|
|
288
|
-
path_flags.uniq
|
|
289
|
-
end
|
|
290
|
-
|
|
291
330
|
def collect_libs
|
|
292
|
-
|
|
293
|
-
|
|
331
|
+
target_packages = sort_packages(required_packages + [self])
|
|
332
|
+
libs_set = []
|
|
333
|
+
target_packages.each do |package|
|
|
334
|
+
libs_set << package.declaration("Libs")
|
|
294
335
|
end
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
path_flags, other_flags = all_libs.partition {|flag| /\A-L/ =~ flag}
|
|
336
|
+
all_flags = split_lib_flags(libs_set.join(" "))
|
|
337
|
+
path_flags, other_flags = all_flags.partition {|flag| /\A-L/ =~ flag}
|
|
298
338
|
path_flags = normalize_path_flags(path_flags, "-L")
|
|
299
339
|
path_flags = path_flags.reject do |flag|
|
|
300
340
|
/\A-L\/usr\/lib(?:64|x32)?\z/ =~ flag
|
|
301
341
|
end
|
|
342
|
+
path_flags = path_flags.uniq
|
|
302
343
|
if @msvc_syntax
|
|
303
344
|
path_flags = path_flags.collect do |flag|
|
|
304
345
|
flag.gsub(/\A-L/, "/libpath:")
|
|
@@ -314,6 +355,29 @@ class PackageConfig
|
|
|
314
355
|
[path_flags, other_flags]
|
|
315
356
|
end
|
|
316
357
|
|
|
358
|
+
def split_lib_flags(libs_command_line)
|
|
359
|
+
all_flags = {}
|
|
360
|
+
flags = []
|
|
361
|
+
in_option = false
|
|
362
|
+
libs_command_line.gsub(/-([Ll]) /, "\\1").split.each do |arg|
|
|
363
|
+
if in_option
|
|
364
|
+
flags << arg
|
|
365
|
+
in_option = false
|
|
366
|
+
else
|
|
367
|
+
case arg
|
|
368
|
+
when /-[lL]/
|
|
369
|
+
next if all_flags.key?(arg)
|
|
370
|
+
all_flags[arg] = true
|
|
371
|
+
flags << arg
|
|
372
|
+
in_option = true
|
|
373
|
+
else
|
|
374
|
+
flags << arg
|
|
375
|
+
end
|
|
376
|
+
end
|
|
377
|
+
end
|
|
378
|
+
flags
|
|
379
|
+
end
|
|
380
|
+
|
|
317
381
|
IDENTIFIER_RE = /[a-zA-Z\d_\.]+/
|
|
318
382
|
def parse_pc
|
|
319
383
|
raise ".pc for #{@name} doesn't exist." unless exist?
|
|
@@ -321,7 +385,7 @@ class PackageConfig
|
|
|
321
385
|
@declarations = {}
|
|
322
386
|
File.open(pc_path) do |input|
|
|
323
387
|
input.each_line do |line|
|
|
324
|
-
line = line.gsub(/#.*/,
|
|
388
|
+
line = line.gsub(/#.*/, "").strip
|
|
325
389
|
next if line.empty?
|
|
326
390
|
case line
|
|
327
391
|
when /^(#{IDENTIFIER_RE})=/
|
|
@@ -335,7 +399,7 @@ class PackageConfig
|
|
|
335
399
|
|
|
336
400
|
def parse_requires(requires)
|
|
337
401
|
return [] if requires.nil?
|
|
338
|
-
requires_without_version = requires.gsub(/[<>]?=\s*[\d.a-zA-Z_-]+\s*/,
|
|
402
|
+
requires_without_version = requires.gsub(/[<>]?=\s*[\d.a-zA-Z_-]+\s*/, "")
|
|
339
403
|
requires_without_version.split(/[,\s]+/)
|
|
340
404
|
end
|
|
341
405
|
|
|
@@ -375,6 +439,11 @@ class PackageConfig
|
|
|
375
439
|
"/opt/X11/lib/pkgconfig",
|
|
376
440
|
"/usr/share/pkgconfig",
|
|
377
441
|
]
|
|
442
|
+
if Object.const_defined?(:RubyInstaller)
|
|
443
|
+
mingw_bin_path = RubyInstaller::Runtime.msys2_installation.mingw_bin_path
|
|
444
|
+
mingw_pkgconfig_path = Pathname.new(mingw_bin_path) + "../lib/pkgconfig"
|
|
445
|
+
default_paths.unshift(mingw_pkgconfig_path.cleanpath.to_s)
|
|
446
|
+
end
|
|
378
447
|
libdir = ENV["PKG_CONFIG_LIBDIR"]
|
|
379
448
|
default_paths.unshift(libdir) if libdir
|
|
380
449
|
|
|
@@ -403,14 +472,13 @@ class PackageConfig
|
|
|
403
472
|
homebrew_repository_candidates << pkg_config_prefix + "Homebrew"
|
|
404
473
|
homebrew_repository_candidates << pkg_config_prefix
|
|
405
474
|
end
|
|
406
|
-
else
|
|
407
|
-
brew = self.class.__send__(:search_executable_from_path, "brew")
|
|
408
|
-
if brew
|
|
409
|
-
homebrew_repository = `brew --repository`.chomp
|
|
410
|
-
homebrew_repository_candidates << Pathname(homebrew_repository)
|
|
411
|
-
end
|
|
412
475
|
end
|
|
413
|
-
|
|
476
|
+
brew = self.class.__send__(:search_executable_from_path, "brew")
|
|
477
|
+
if brew
|
|
478
|
+
homebrew_repository = `brew --repository`.chomp
|
|
479
|
+
homebrew_repository_candidates << Pathname(homebrew_repository)
|
|
480
|
+
end
|
|
481
|
+
homebrew_repository_candidates.uniq.each do |candidate|
|
|
414
482
|
path = candidate + "Library/Homebrew/os/mac/pkgconfig/#{mac_os_version}"
|
|
415
483
|
paths << path.to_s if path.exist?
|
|
416
484
|
end
|
|
@@ -420,21 +488,15 @@ class PackageConfig
|
|
|
420
488
|
end
|
|
421
489
|
|
|
422
490
|
def required_packages
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
end
|
|
426
|
-
end
|
|
427
|
-
|
|
428
|
-
def private_required_packages
|
|
429
|
-
requires_private.reject do |package|
|
|
430
|
-
@name == package
|
|
431
|
-
end.uniq
|
|
491
|
+
collect_requires do |package|
|
|
492
|
+
package.requires
|
|
493
|
+
end
|
|
432
494
|
end
|
|
433
495
|
|
|
434
496
|
def all_required_packages
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
end
|
|
497
|
+
collect_requires do |package|
|
|
498
|
+
package.requires_private + package.requires
|
|
499
|
+
end
|
|
438
500
|
end
|
|
439
501
|
|
|
440
502
|
def normalize_paths(paths)
|
|
@@ -458,7 +520,7 @@ module PKGConfig
|
|
|
458
520
|
end
|
|
459
521
|
|
|
460
522
|
def msvc?
|
|
461
|
-
/mswin/.match(RUBY_PLATFORM) and /^cl\b/.match(RbConfig::CONFIG[
|
|
523
|
+
/mswin/.match(RUBY_PLATFORM) and /^cl\b/.match(RbConfig::CONFIG["CC"])
|
|
462
524
|
end
|
|
463
525
|
|
|
464
526
|
def package_config(package)
|
|
@@ -533,18 +595,18 @@ module PKGConfig
|
|
|
533
595
|
dldflags = libs(pkg)
|
|
534
596
|
dldflags = (Shellwords.shellwords(dldflags) -
|
|
535
597
|
Shellwords.shellwords(libraries))
|
|
536
|
-
dldflags = dldflags.map {|s| /\s/ =~ s ? "\"#{s}\"" : s }.join(
|
|
537
|
-
$libs +=
|
|
598
|
+
dldflags = dldflags.map {|s| /\s/ =~ s ? "\"#{s}\"" : s }.join(" ")
|
|
599
|
+
$libs += " " + libraries
|
|
538
600
|
if /mswin/ =~ RUBY_PLATFORM
|
|
539
|
-
$DLDFLAGS +=
|
|
601
|
+
$DLDFLAGS += " " + dldflags
|
|
540
602
|
else
|
|
541
|
-
$LDFLAGS +=
|
|
603
|
+
$LDFLAGS += " " + dldflags
|
|
542
604
|
end
|
|
543
|
-
$CFLAGS +=
|
|
605
|
+
$CFLAGS += " " + cflags_only_other(pkg)
|
|
544
606
|
if defined?($CXXFLAGS)
|
|
545
|
-
$CXXFLAGS +=
|
|
607
|
+
$CXXFLAGS += " " + cflags_only_other(pkg)
|
|
546
608
|
end
|
|
547
|
-
$INCFLAGS +=
|
|
609
|
+
$INCFLAGS += " " + cflags_only_I(pkg)
|
|
548
610
|
end
|
|
549
611
|
enough_version
|
|
550
612
|
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.
|
|
18
|
+
VERSION = "1.4.2"
|
|
19
19
|
end
|
data/test/test_pkg_config.rb
CHANGED
|
@@ -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
|
|
|
@@ -36,14 +36,65 @@ class PkgConfigTest < Test::Unit::TestCase
|
|
|
36
36
|
assert_pkg_config("cairo-png", ["--cflags-only-I"], @cairo_png.cflags_only_I)
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
+
def split_lib_flags(libs_command_line)
|
|
40
|
+
@cairo.__send__(:split_lib_flags, libs_command_line)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def test_split_libs
|
|
44
|
+
assert_equal([
|
|
45
|
+
"-L/usr/local/Cellar/gtk+3/3.24.10/lib",
|
|
46
|
+
"-L/usr/local/Cellar/pango/1.44.3/lib",
|
|
47
|
+
"-L/usr/local/Cellar/harfbuzz/2.5.3/lib",
|
|
48
|
+
"-L/usr/local/Cellar/gdk-pixbuf/2.38.1_1/lib",
|
|
49
|
+
"-L/usr/local/Cellar/cairo/1.16.0_2/lib",
|
|
50
|
+
"-L/usr/local/Cellar/glib/2.60.6/lib",
|
|
51
|
+
"-L/usr/local/opt/gettext/lib",
|
|
52
|
+
"-lgdk-3",
|
|
53
|
+
"-framework", "Cocoa",
|
|
54
|
+
"-framework", "Carbon",
|
|
55
|
+
"-framework", "CoreGraphics",
|
|
56
|
+
"-lpangocairo-1.0",
|
|
57
|
+
"-lpango-1.0",
|
|
58
|
+
"-lharfbuzz",
|
|
59
|
+
"-lgdk_pixbuf-2.0",
|
|
60
|
+
"-lcairo-gobject",
|
|
61
|
+
"-lcairo",
|
|
62
|
+
"-lgobject-2.0",
|
|
63
|
+
"-lglib-2.0",
|
|
64
|
+
"-lintl"
|
|
65
|
+
],
|
|
66
|
+
split_lib_flags("-L/usr/local/Cellar/gtk+3/3.24.10/lib " +
|
|
67
|
+
"-L/usr/local/Cellar/pango/1.44.3/lib " +
|
|
68
|
+
"-L/usr/local/Cellar/harfbuzz/2.5.3/lib " +
|
|
69
|
+
"-L/usr/local/Cellar/gdk-pixbuf/2.38.1_1/lib " +
|
|
70
|
+
"-L/usr/local/Cellar/cairo/1.16.0_2/lib " +
|
|
71
|
+
"-L/usr/local/Cellar/glib/2.60.6/lib " +
|
|
72
|
+
"-L/usr/local/opt/gettext/lib " +
|
|
73
|
+
"-lgdk-3 " +
|
|
74
|
+
"-framework Cocoa " +
|
|
75
|
+
"-framework Carbon " +
|
|
76
|
+
"-framework CoreGraphics " +
|
|
77
|
+
"-lpangocairo-1.0 " +
|
|
78
|
+
"-lpango-1.0 " +
|
|
79
|
+
"-lharfbuzz " +
|
|
80
|
+
"-lgdk_pixbuf-2.0 " +
|
|
81
|
+
"-lcairo-gobject " +
|
|
82
|
+
"-lcairo " +
|
|
83
|
+
"-lgobject-2.0 " +
|
|
84
|
+
"-lglib-2.0 " +
|
|
85
|
+
"-lintl"))
|
|
86
|
+
end
|
|
87
|
+
|
|
39
88
|
def test_libs
|
|
40
89
|
assert_pkg_config("cairo", ["--libs"], @cairo.libs)
|
|
41
90
|
assert_pkg_config("cairo-png", ["--libs"], @cairo_png.libs)
|
|
91
|
+
end
|
|
42
92
|
|
|
93
|
+
def test_libs_msvc
|
|
43
94
|
@cairo.msvc_syntax = true
|
|
44
95
|
result = pkg_config("cairo", "--libs")
|
|
45
96
|
msvc_result = result.gsub(/-lcairo\b/, "cairo.lib")
|
|
46
|
-
msvc_result = msvc_result.gsub(/-L/,
|
|
97
|
+
msvc_result = msvc_result.gsub(/-L/, "/libpath:")
|
|
47
98
|
assert_not_equal(msvc_result, result)
|
|
48
99
|
assert_equal(msvc_result, @cairo.libs)
|
|
49
100
|
end
|
|
@@ -51,10 +102,12 @@ class PkgConfigTest < Test::Unit::TestCase
|
|
|
51
102
|
def test_libs_only_l
|
|
52
103
|
assert_pkg_config("cairo", ["--libs-only-l"], @cairo.libs_only_l)
|
|
53
104
|
assert_pkg_config("cairo-png", ["--libs-only-l"], @cairo_png.libs_only_l)
|
|
105
|
+
end
|
|
54
106
|
|
|
107
|
+
def test_libs_only_l_msvc
|
|
55
108
|
@cairo_png.msvc_syntax = true
|
|
56
109
|
result = pkg_config("cairo-png", "--libs-only-l")
|
|
57
|
-
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")
|
|
58
111
|
assert_not_equal(msvc_result, result)
|
|
59
112
|
assert_equal(msvc_result, @cairo_png.libs_only_l)
|
|
60
113
|
end
|
|
@@ -62,10 +115,12 @@ class PkgConfigTest < Test::Unit::TestCase
|
|
|
62
115
|
def test_libs_only_L
|
|
63
116
|
assert_pkg_config("cairo", ["--libs-only-L"], @cairo.libs_only_L)
|
|
64
117
|
assert_pkg_config("cairo-png", ["--libs-only-L"], @cairo_png.libs_only_L)
|
|
118
|
+
end
|
|
65
119
|
|
|
120
|
+
def test_libs_only_L_msvc
|
|
66
121
|
@cairo_png.msvc_syntax = true
|
|
67
122
|
result = pkg_config("cairo-png", "--libs-only-L")
|
|
68
|
-
msvc_result = result.gsub(/-L/,
|
|
123
|
+
msvc_result = result.gsub(/-L/, "/libpath:")
|
|
69
124
|
assert_not_equal(msvc_result, result)
|
|
70
125
|
assert_equal(msvc_result, @cairo_png.libs_only_L)
|
|
71
126
|
end
|
|
@@ -112,7 +167,7 @@ class PkgConfigTest < Test::Unit::TestCase
|
|
|
112
167
|
private
|
|
113
168
|
def pkg_config(package, *args)
|
|
114
169
|
args.unshift("--define-variable=libdir=#{@custom_libdir}")
|
|
115
|
-
args = args.collect {|arg| arg.dump}.join(
|
|
170
|
+
args = args.collect {|arg| arg.dump}.join(" ")
|
|
116
171
|
`pkg-config #{args} #{package}`.strip
|
|
117
172
|
end
|
|
118
173
|
|
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
|
+
version: 1.4.2
|
|
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: 2020-08-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: test-unit
|
|
@@ -69,7 +69,7 @@ files:
|
|
|
69
69
|
- lib/pkg-config/version.rb
|
|
70
70
|
- test/run-test.rb
|
|
71
71
|
- test/test_pkg_config.rb
|
|
72
|
-
homepage: https://github.com/ruby-
|
|
72
|
+
homepage: https://github.com/ruby-gnome/pkg-config
|
|
73
73
|
licenses:
|
|
74
74
|
- LGPLv2+
|
|
75
75
|
metadata:
|
|
@@ -89,8 +89,7 @@ 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
|
|
92
|
+
rubygems_version: 3.2.0.rc.1
|
|
94
93
|
signing_key:
|
|
95
94
|
specification_version: 4
|
|
96
95
|
summary: A pkg-config implementation for Ruby
|