pkg-config 1.6.4 → 1.6.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1aa00fc6e840f6d61f9d63a7455da3a9a6fd4febfb4d9909508aa5f32fcbd838
4
- data.tar.gz: 318ecf2df122cbaa86fc972fbd32017d8afe938cc0b0dc492cf75c6d0706aaa6
3
+ metadata.gz: e2e29eff2da53b36ec5eb75c9592ed4870d7a73a516cd729422a457fe70ad7da
4
+ data.tar.gz: 26c8d162c9278406471ba4b80a8362453eaafef00250fc081e083df590e69718
5
5
  SHA512:
6
- metadata.gz: 077e55fa2ddf6791ae05f24012c29bb3cdb126e713d5f07c58e204facc62885a33901cea3fd5985f4e64adfa3acab2e40a893250a0095675fea416c0b302b186
7
- data.tar.gz: 5b0fc63366cd7dd3e41185fb35338547b407ad6a0ba0e2018e59e072a5cbc2a83ed22a23ab172e0b5a0506d07e29ce256aee5528a1c7cec01787240554483377
6
+ metadata.gz: 9ca2fec23f2f9a20cb7e78e8c89125a49193b2683d351281893c348e763321dce2dfa216db9b22c867a703b090df420bed6668d1880c4cf9464fce1eec29da57
7
+ data.tar.gz: e978241d3ad1e15438c0dfa7d5abc28c596dd1b000a1572baa09788eb4b4c097b49d200872780538a4c77ca7f5d71f83cf211e4a9271b26ab7d024c58e3edd7c
data/NEWS.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # NEWS
2
2
 
3
+ ## 1.6.6 - 2026-10-19
4
+
5
+ ### Improvements
6
+
7
+ * Added support for clang-cl.
8
+ * [ruby-gnome/pkg-config#56](https://github.com/ruby-gnome/pkg-config/issues/56)
9
+ * Patch by Hiroshi SHIBATA
10
+
11
+ ### Thanks
12
+
13
+ * Hiroshi SHIBATA
14
+
15
+ ## 1.6.5 - 2025-12-01
16
+
17
+ ### Improvements
18
+
19
+ * Improved pkgconf compatibility: Removed duplicated `-D`/`-W` flags.
20
+ * [ruby-gnome/pkg-config#43](https://github.com/ruby-gnome/pkg-config/issues/43)
21
+ * Patch by takuya kodama
22
+
23
+ ### Thanks
24
+
25
+ * takuya kodama
26
+
3
27
  ## 1.6.4 - 2025-09-03
4
28
 
5
29
  ### Improvements
data/lib/pkg-config.rb CHANGED
@@ -19,7 +19,7 @@ require "rbconfig"
19
19
  require "shellwords"
20
20
 
21
21
  module PKGConfig
22
- VERSION = "1.6.4"
22
+ VERSION = "1.6.6"
23
23
 
24
24
  @@paths = []
25
25
  @@override_variables = {}
@@ -34,7 +34,8 @@ module PKGConfig
34
34
  end
35
35
 
36
36
  def msvc?
37
- /mswin/.match(RUBY_PLATFORM) and /^cl\b/.match(RbConfig::CONFIG["CC"])
37
+ /mswin/.match(RUBY_PLATFORM) and
38
+ /\A(?:clang-)?cl\b/.match(RbConfig::CONFIG["CC"])
38
39
  end
39
40
 
40
41
  def package_config(package)
@@ -545,6 +546,7 @@ class PackageConfig
545
546
  flag.gsub(/\A-I/, "/I")
546
547
  end
547
548
  end
549
+ other_flags = merge_back_cflags(other_flags)
548
550
  [path_flags, other_flags]
549
551
  end
550
552
 
@@ -579,6 +581,32 @@ class PackageConfig
579
581
  normalized_cflags
580
582
  end
581
583
 
584
+ # Implementing behavior compatible with pkgconf's pkgconf_fragment_copy().
585
+ # This is not a complete reproduction yet, but the goal is to stay compatible.
586
+ # https://github.com/pkgconf/pkgconf/blob/pkgconf-2.5.1/libpkgconf/fragment.c#L381-L416
587
+ def merge_back_cflags(cflags)
588
+ merge_backed_cflags = []
589
+ cflags.each do |cflag|
590
+ if mergeable_flag?(cflag)
591
+ # NOTE: This may be slow because this checks merge_back_cflags N times
592
+ # (where N is the number of mergeable flags).
593
+ merge_backed_cflags.delete(cflag)
594
+ end
595
+ merge_backed_cflags << cflag
596
+ end
597
+ merge_backed_cflags
598
+ end
599
+
600
+ def mergeable_flag?(flag)
601
+ return false unless flag.start_with?("-")
602
+ return true if flag.start_with?("-D")
603
+ if flag.start_with?("-W")
604
+ return false if flag.start_with?("-Wa,", "-Wl,", "-Wp,")
605
+ return true
606
+ end
607
+ false
608
+ end
609
+
582
610
  def collect_libs
583
611
  target_packages = [*required_packages, self]
584
612
  libs_set = []
@@ -314,4 +314,34 @@ Cflags: -I${includedir}/my-package
314
314
  parse_requires("fribidi = 1.0"))
315
315
  end
316
316
  end
317
+
318
+ sub_test_case("#merge_back_cflags") do
319
+ def merge_back_cflags(cflags)
320
+ @glib.__send__(:merge_back_cflags, cflags)
321
+ end
322
+
323
+ def test_d
324
+ assert_equal(["-DFOO"],
325
+ merge_back_cflags(["-DFOO", "-DFOO"]))
326
+ end
327
+
328
+ def test_w
329
+ assert_equal(["-Wno-unknown-warning-option"],
330
+ merge_back_cflags(["-Wno-unknown-warning-option",
331
+ "-Wno-unknown-warning-option"]))
332
+ end
333
+
334
+ def test_wa_wl_wp
335
+ assert_equal(["-Wa,--noexecstack", "-Wl,--as-needed", "-Wp,-DFOO",
336
+ "-Wa,--noexecstack", "-Wl,--as-needed", "-Wp,-DFOO"],
337
+ merge_back_cflags(["-Wa,--noexecstack", "-Wl,--as-needed", "-Wp,-DFOO",
338
+ "-Wa,--noexecstack", "-Wl,--as-needed", "-Wp,-DFOO"]))
339
+ end
340
+
341
+ def test_mixed
342
+ assert_equal(["-Wl,--as-needed", "-DFOO", "-Wall", "-Wl,--as-needed"],
343
+ merge_back_cflags(["-DFOO", "-Wall", "-Wl,--as-needed",
344
+ "-DFOO", "-Wall", "-Wl,--as-needed"]))
345
+ end
346
+ end
317
347
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pkg-config
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.4
4
+ version: 1.6.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sutou Kouhei
@@ -29,7 +29,7 @@ homepage: https://github.com/ruby-gnome/pkg-config
29
29
  licenses:
30
30
  - LGPLv2+
31
31
  metadata:
32
- msys2_mingw_dependencies: pkg-config
32
+ msys2_mingw_dependencies: pkgconf
33
33
  rdoc_options: []
34
34
  require_paths:
35
35
  - lib
@@ -44,7 +44,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
46
  requirements: []
47
- rubygems_version: 3.6.9
47
+ rubygems_version: 4.0.20
48
48
  specification_version: 4
49
49
  summary: A pkg-config implementation for Ruby
50
50
  test_files: