Add a gtk testcase to provide something with complex interactions

The pkg-config testsuite has pretty good coverage of the implementation,
but it lacks a complex case that tests the interactions of non-trivial
.pc files. gtk is a very common package that meets this goal. This is a
snapshot from my F16 system, and it should provide a good way to see how
changes in the implementation regress a real world case.
This commit is contained in:
Dan Nicholson 2012-11-21 10:50:17 -08:00
parent f5b93bf1b1
commit 160177d8d2
28 changed files with 406 additions and 2 deletions

View file

@ -24,7 +24,8 @@ TESTS = \
check-path \
check-sysroot \
check-uninstalled \
check-debug
check-debug \
check-gtk
EXTRA_DIST = \
$(TESTS) \
@ -64,4 +65,30 @@ EXTRA_DIST = \
sort/sort-order-2-3.pc \
sort/sort/sort-order-3-3.pc \
flag-dup-1.pc \
flag-dup-2.pc
flag-dup-2.pc \
gtk/atk.pc \
gtk/cairo-gobject.pc \
gtk/cairo.pc \
gtk/fontconfig.pc \
gtk/freetype2.pc \
gtk/gdk-3.0.pc \
gtk/gdk-pixbuf-2.0.pc \
gtk/gio-2.0.pc \
gtk/glib-2.0.pc \
gtk/gmodule-no-export-2.0.pc \
gtk/gobject-2.0.pc \
gtk/gthread-2.0.pc \
gtk/gtk+-3.0.pc \
gtk/kbproto.pc \
gtk/libpng12.pc \
gtk/libpng.pc \
gtk/pangocairo.pc \
gtk/pangoft2.pc \
gtk/pango.pc \
gtk/pixman-1.pc \
gtk/renderproto.pc \
gtk/x11.pc \
gtk/xau.pc \
gtk/xcb.pc \
gtk/xproto.pc \
gtk/xrender.pc

58
check/check-gtk Executable file
View file

@ -0,0 +1,58 @@
#! /bin/sh
set -e
. ${srcdir}/common
# Limit pkg-config files to gtk subdir
PKG_CONFIG_LIBDIR=${srcdir}/gtk
# Fetch Cflags of gtk+-3.0. Prior results to check for regressions.
# pkg-config-0.21 - pkg-config-0.27.1
# -DGSEAL_ENABLE -pthread -I/gtk/include/gtk-3.0 -I/gtk/include/atk-1.0 \
# -I/gtk/include/cairo -I/gtk/include/gdk-pixbuf-2.0 -I/gtk/include/pango-1.0 \
# -I/gtk/include/glib-2.0 -I/gtk/lib/glib-2.0/include -I/gtk/include/pixman-1 \
# -I/gtk/include -I/gtk/include/freetype2
RESULT="-DGSEAL_ENABLE -pthread -I/gtk/include/gtk-3.0 \
-I/gtk/include/pango-1.0 -I/gtk/include -I/gtk/include/freetype2 \
-I/gtk/include/glib-2.0 -I/gtk/lib/glib-2.0/include \
-I/gtk/include/gdk-pixbuf-2.0 -I/gtk/include/cairo -I/gtk/include/pixman-1 \
-I/gtk/include/atk-1.0"
run_test --cflags gtk+-3.0
run_test --cflags --static gtk+-3.0
# Fetch Libs of gtk+-3.0. Prior results to check for regressions.
# pkg-config-0.21 - pkg-config-0.27.1
# -pthread -L/gtk/lib -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 \
# -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lpango-1.0 \
# -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt \
# -lglib-2.0
RESULT="-pthread -L/gtk/lib -lgtk-3 -lpangoft2-1.0 -lfontconfig -lfreetype \
-lgio-2.0 -latk-1.0 -lgdk-3 -lcairo-gobject -lgdk_pixbuf-2.0 -lpangocairo-1.0 \
-lcairo -lpango-1.0 -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lrt -lglib-2.0"
if [ "$list_indirect_deps" = no ]; then
run_test --libs gtk+-3.0
fi
# Fetch static Libs of gtk+-3.0. Prior results to check for regressions.
# pkg-config-0.21
# -pthread -L/gtk/lib -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lresolv \
# -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo \
# -lpixman-1 -lXrender -lX11 -lpthread -lpng12 -lz -lm -lpango-1.0 \
# -lfontconfig -lexpat -lfreetype -lgobject-2.0 -lffi -lgmodule-2.0 -ldl \
# -lgthread-2.0 -lglib-2.0 -lrt
# pkg-config-0.22 - pkg-config-0.27.1
# -pthread -L/gtk/lib -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lresolv \
# -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo \
# -lpixman-1 -lXrender -lX11 -lpthread -lxcb -lXau -lpng12 -lz -lm \
# -lpango-1.0 -lfontconfig -lexpat -lfreetype -lgobject-2.0 -lffi \
# -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0 -lrt
RESULT="-pthread -L/gtk/lib -lgtk-3 -lpangoft2-1.0 -lgio-2.0 -lresolv \
-latk-1.0 -lgdk-3 -lcairo-gobject -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo \
-lXrender -lX11 -lpthread -lxcb -lXau -lpng12 -lz -lm -lfontconfig -lexpat \
-lfreetype -lpixman-1 -lpango-1.0 -lgmodule-2.0 -ldl -lgobject-2.0 -lffi \
-lgthread-2.0 -lglib-2.0 -lrt"
if [ "$list_indirect_deps" = yes ]; then
run_test --libs gtk+-3.0
fi
run_test --libs --static gtk+-3.0

11
check/gtk/atk.pc Normal file
View file

@ -0,0 +1,11 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Atk
Description: Accessibility Toolkit
Version: 2.2.0
Requires: gobject-2.0
Libs: -L${libdir} -latk-1.0
Cflags: -I${includedir}/atk-1.0

View file

@ -0,0 +1,12 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: cairo-gobject
Description: gobject functions for cairo graphics library
Version: 1.10.2
Requires: cairo gobject-2.0 glib-2.0
Libs: -L${libdir} -lcairo-gobject
Cflags: -I${includedir}/cairo

13
check/gtk/cairo.pc Normal file
View file

@ -0,0 +1,13 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: cairo
Description: Multi-platform 2D graphics library
Version: 1.10.2
Requires.private: gobject-2.0 glib-2.0 pixman-1 >= 0.18.4 fontconfig >= 2.2.95 freetype2 >= 9.7.3 libpng xrender >= 0.6 x11
Libs: -L${libdir} -lcairo
Libs.private: -lz -lz
Cflags: -I${includedir}/cairo

11
check/gtk/fontconfig.pc Normal file
View file

@ -0,0 +1,11 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Fontconfig
Description: Font configuration and customization library
Version: 2.8.0
Libs: -L${libdir} -lfontconfig
Libs.private: -lexpat -lfreetype
Cflags: -I${includedir}

12
check/gtk/freetype2.pc Normal file
View file

@ -0,0 +1,12 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: FreeType 2
Description: A free, high-quality, and portable font engine.
Version: 13.1.7
Requires:
Libs: -L${libdir} -lfreetype
Libs.private:
Cflags: -I${includedir}/freetype2 -I${includedir}

12
check/gtk/gdk-3.0.pc Normal file
View file

@ -0,0 +1,12 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
targets=x11
Name: GDK
Description: GTK+ Drawing Kit
Version: 3.2.4
Requires: pango pangocairo gdk-pixbuf-2.0 cairo-gobject
Libs: -L${libdir} -lgdk-3
Cflags: -I${includedir}/gtk-3.0

View file

@ -0,0 +1,19 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
gdk_pixbuf_binary_version=2.10.0
gdk_pixbuf_binarydir=${libdir}/gdk-pixbuf-2.0/2.10.0
gdk_pixbuf_moduledir=${gdk_pixbuf_binarydir}/loaders
gdk_pixbuf_cache_file=${gdk_pixbuf_binarydir}/loaders.cache
Name: GdkPixbuf
Description: Image loading and scaling
Version: 2.24.1
Requires: gobject-2.0
Requires.private: gmodule-no-export-2.0 libpng12
Libs: -L${libdir} -lgdk_pixbuf-2.0
Libs.private: -lm
Cflags: -I${includedir}/gdk-pixbuf-2.0

15
check/gtk/gio-2.0.pc Normal file
View file

@ -0,0 +1,15 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
giomoduledir=${libdir}/gio/modules
glib_compile_schemas=${exec_prefix}/bin/glib-compile-schemas
Name: GIO
Description: glib I/O library
Version: 2.30.3
Requires: glib-2.0,gobject-2.0,gmodule-no-export-2.0
Libs: -L${libdir} -lgio-2.0
Libs.private: -lz -lresolv
Cflags:

15
check/gtk/glib-2.0.pc Normal file
View file

@ -0,0 +1,15 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
glib_genmarshal=glib-genmarshal
gobject_query=gobject-query
glib_mkenums=glib-mkenums
Name: GLib
Description: C Utility Library
Version: 2.30.3
Libs: -L${libdir} -lglib-2.0
Libs.private: -lrt
Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include

View file

@ -0,0 +1,14 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
gmodule_supported=true
Name: GModule
Description: Dynamic module loader for GLib
Requires: glib-2.0
Version: 2.30.3
Libs: -L${libdir} -lgmodule-2.0 -pthread -lrt
Libs.private: -ldl
Cflags: -pthread

12
check/gtk/gobject-2.0.pc Normal file
View file

@ -0,0 +1,12 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: GObject
Description: GLib Type, Object, Parameter and Signal Library
Requires: glib-2.0,gthread-2.0
Version: 2.30.3
Libs: -L${libdir} -lgobject-2.0
Libs.private: -lffi
Cflags:

11
check/gtk/gthread-2.0.pc Normal file
View file

@ -0,0 +1,11 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: GThread
Description: Thread support for GLib
Requires: glib-2.0
Version: 2.30.3
Libs: -L${libdir} -lgthread-2.0 -pthread -lrt
Cflags: -pthread

15
check/gtk/gtk+-3.0.pc Normal file
View file

@ -0,0 +1,15 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
targets=x11
gtk_binary_version=3.0.0
gtk_host=x86_64-redhat-linux-gnu
Name: GTK+
Description: GTK+ Graphical UI Library
Version: 3.2.4
Requires: gdk-3.0 atk cairo cairo-gobject gdk-pixbuf-2.0 gio-2.0 pangoft2
Libs: -L${libdir} -lgtk-3
Cflags: -I${includedir}/gtk-3.0 -DGSEAL_ENABLE

9
check/gtk/kbproto.pc Normal file
View file

@ -0,0 +1,9 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: KBProto
Description: KB extension headers
Version: 1.0.5
Cflags: -I${includedir}

11
check/gtk/libpng.pc Normal file
View file

@ -0,0 +1,11 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: libpng
Description: Loads and saves PNG files
Version: 1.2.49
Libs: -L${libdir} -lpng12
Libs.private: -lz -lm
Cflags: -I${includedir}

11
check/gtk/libpng12.pc Normal file
View file

@ -0,0 +1,11 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: libpng
Description: Loads and saves PNG files
Version: 1.2.49
Libs: -L${libdir} -lpng12
Libs.private: -lz -lm
Cflags: -I${includedir}

13
check/gtk/pango.pc Normal file
View file

@ -0,0 +1,13 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
pango_module_version=1.6.0
Name: Pango
Description: Internationalized text handling
Version: 1.29.4
Requires: glib-2.0,gobject-2.0,gmodule-no-export-2.0
Libs: -L${libdir} -lpango-1.0
Cflags: -I${includedir}/pango-1.0

11
check/gtk/pangocairo.pc Normal file
View file

@ -0,0 +1,11 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Pango Cairo
Description: Cairo rendering support for Pango
Version: 1.29.4
Requires: pango cairo
Libs: -L${libdir} -lpangocairo-1.0
Cflags: -I${includedir}/pango-1.0

11
check/gtk/pangoft2.pc Normal file
View file

@ -0,0 +1,11 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Pango FT2 and Pango Fc
Description: Freetype 2.0 and fontconfig font support for Pango
Version: 1.29.4
Requires: pango freetype2 fontconfig
Libs: -L${libdir} -lpangoft2-1.0
Cflags: -I${includedir}/pango-1.0

11
check/gtk/pixman-1.pc Normal file
View file

@ -0,0 +1,11 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Pixman
Description: The pixman library (version 1)
Version: 0.24.4
Cflags: -I${includedir}/pixman-1
Libs: -L${libdir} -lpixman-1

9
check/gtk/renderproto.pc Normal file
View file

@ -0,0 +1,9 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: RenderProto
Description: Render extension headers
Version: 0.11.1
Cflags: -I${includedir}

15
check/gtk/x11.pc Normal file
View file

@ -0,0 +1,15 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
xthreadlib=-lpthread
Name: X11
Description: X Library
Version: 1.4.3
Requires: xproto kbproto
Requires.private: xcb >= 1.1.92
Cflags: -I${includedir}
Libs: -L${libdir} -lX11
Libs.private: -lpthread

11
check/gtk/xau.pc Normal file
View file

@ -0,0 +1,11 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Xau
Description: X authorization file management libary
Version: 1.0.6
Requires: xproto
Cflags: -I${includedir}
Libs: -L${libdir} -lXau

13
check/gtk/xcb.pc Normal file
View file

@ -0,0 +1,13 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
xcbproto_version=1.6
Name: XCB
Description: X-protocol C Binding
Version: 1.7
Requires.private: xau >= 0.99.2
Libs: -L${libdir} -lxcb
Libs.private:
Cflags: -I${includedir}

10
check/gtk/xproto.pc Normal file
View file

@ -0,0 +1,10 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
includex11dir=${includedir}/X11
Name: Xproto
Description: Xproto headers
Version: 7.0.22
Cflags: -I${includedir}

12
check/gtk/xrender.pc Normal file
View file

@ -0,0 +1,12 @@
prefix=/gtk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Xrender
Description: X Render Library
Version: 0.9.6
Requires: xproto renderproto >= 0.9 x11
Requires.private: x11
Cflags: -I${includedir}
Libs: -L${libdir} -lXrender