Project

General

Profile

Bug #10651

pkg_config does not report required include headers

Added by anatolik (Anatol Pomozov) almost 3 years ago. Updated almost 3 years ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux]
[ruby-core:67137]

Description

pkg_config behavior seems incorrect in 2.2.0. I am testing following script in Linux Arch:

require 'mkmf'
puts pkg_config("xft")

In 2.1.5 it gives
["-I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz", "", "-lXft"]

In 2.2.0 it gives
["", "", "-lXft"]

pkg-config command line tool gives.

$ pkg-config --cflags xft
-I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz

So it points that new pkg_config implementation is incorrect.

Here is content of the pc file itself:

$ cat /usr/lib/pkgconfig/xft.pc
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: Xft
Description: X FreeType library
Version: 2.3.2
Requires: xproto
Requires.private: xrender, fontconfig, freetype2
Cflags: -I${includedir}
Libs: -L${libdir} -lXft

History

#1 [ruby-core:67166] Updated by anatolik (Anatol Pomozov) almost 3 years ago

The commit that produced this behavior change is 097c3e9cbbf23718371f08c24b2d2297b039f63f in particular this part:

     orig_ldflags = $LDFLAGS
     if get and option
       get[option]
     elsif get and try_ldflags(ldflags = get['libs'])
-      cflags = get['cflags']
+      if incflags = get['cflags-only-I']
+        $INCFLAGS << " " << incflags
+        cflags = get['cflags-only-other']
+      else
+        cflags = get['cflags']
+      end
       libs = get['libs-only-l']
       ldflags = (Shellwords.shellwords(ldflags) - Shellwords.shellwords(libs)).quote.join(" ")
       $CFLAGS += " " << cflags

Could anyone explain what this change tries to do?

Also available in: Atom PDF