diff options
-rwxr-xr-x | check/check-gtk | 21 | ||||
-rwxr-xr-x | check/check-non-l-flags | 4 | ||||
-rwxr-xr-x | check/check-requires-private | 8 | ||||
-rw-r--r-- | pkg.c | 25 |
4 files changed, 26 insertions, 32 deletions
diff --git a/check/check-gtk b/check/check-gtk index 3f9aae7..7ad565f 100755 --- a/check/check-gtk +++ b/check/check-gtk @@ -15,8 +15,8 @@ PKG_CONFIG_LIBDIR=${srcdir}/gtk # -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/atk-1.0 -I/gtk/include/cairo \ --I/gtk/include/gdk-pixbuf-2.0 -I/gtk/include -I/gtk/include/freetype2 \ --I/gtk/include/pixman-1 -I/gtk/include/glib-2.0 -I/gtk/lib/glib-2.0/include" +-I/gtk/include/pixman-1 -I/gtk/include -I/gtk/include/gdk-pixbuf-2.0 \ +-I/gtk/include/glib-2.0 -I/gtk/lib/glib-2.0/include -I/gtk/include/freetype2" run_test --cflags gtk+-3.0 run_test --cflags --static gtk+-3.0 @@ -26,9 +26,10 @@ run_test --cflags --static gtk+-3.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" +RESULT="-pthread -L/gtk/lib -lgtk-3 -lgdk-3 -lpangocairo-1.0 -latk-1.0 \ +-lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 \ +-lpango-1.0 -lgobject-2.0 -lgthread-2.0 -lgmodule-2.0 -lrt -lglib-2.0 \ +-lfreetype -lfontconfig" if [ "$list_indirect_deps" = no ]; then run_test --libs gtk+-3.0 fi @@ -46,11 +47,11 @@ fi # -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" +RESULT="-pthread -L/gtk/lib -lgtk-3 -lgdk-3 -lpangocairo-1.0 -latk-1.0 \ +-lcairo-gobject -lcairo -lpixman-1 -lXrender -lX11 -lpthread -lxcb -lXau \ +-lgdk_pixbuf-2.0 -lpng12 -lm -lgio-2.0 -lz -lresolv -lpangoft2-1.0 \ +-lpango-1.0 -lgobject-2.0 -lffi -lgthread-2.0 -lgmodule-2.0 -ldl -lglib-2.0 \ +-lrt -lfontconfig -lexpat -lfreetype" if [ "$list_indirect_deps" = yes ]; then run_test --libs gtk+-3.0 fi diff --git a/check/check-non-l-flags b/check/check-non-l-flags index f4a4271..dc615e9 100755 --- a/check/check-non-l-flags +++ b/check/check-non-l-flags @@ -6,12 +6,8 @@ set -e RESULT="-I/non-l/include -I/non-l-required/include" run_test --cflags non-l-required non-l - -RESULT="-I/non-l/include -I/non-l-required/include" run_test --cflags --static non-l-required non-l RESULT="/non-l.a /non-l-required.a -pthread" run_test --libs non-l-required non-l - -RESULT="/non-l.a /non-l-required.a -pthread" run_test --libs --static non-l-required non-l diff --git a/check/check-requires-private b/check/check-requires-private index 6924188..dc69baf 100755 --- a/check/check-requires-private +++ b/check/check-requires-private @@ -5,11 +5,8 @@ set -e . ${srcdir}/common # expect cflags from requires-test and public-dep -RESULT="-I/requires-test/include -I/public-dep/include -I/private-dep/include" +RESULT="-I/requires-test/include -I/private-dep/include -I/public-dep/include" run_test --cflags requires-test - -# still expect those cflags for static linking case -RESULT="-I/requires-test/include -I/public-dep/include -I/private-dep/include" run_test --static --cflags requires-test # expect libs for just requires-test and public-dep @@ -19,7 +16,8 @@ if [ "$list_indirect_deps" = no ]; then fi # expect libs for requires-test, public-dep and private-dep in static case -RESULT="-L/requires-test/lib -L/public-dep/lib -L/private-dep/lib -lrequires-test -lpublic-dep -lprivate-dep" +RESULT="-L/requires-test/lib -L/private-dep/lib -L/public-dep/lib \ +-lrequires-test -lprivate-dep -lpublic-dep" if [ "$list_indirect_deps" = yes ]; then run_test --libs requires-test fi @@ -633,7 +633,10 @@ recursive_fill_list (Package *pkg, GetListFunc func, GList **listp) /* record this package in the dependency chain */ chain = g_list_prepend (chain, pkg); - for (tmp = (*func) (pkg); tmp != NULL; tmp = g_list_next (tmp)) + /* Start from the end of the required package list to maintain order since + * the recursive list is built by prepending. */ + for (tmp = g_list_last ((*func) (pkg)); tmp != NULL; + tmp = g_list_previous (tmp)) recursive_fill_list (tmp->data, func, listp); *listp = g_list_prepend (*listp, pkg); @@ -708,18 +711,14 @@ fill_list (GList *packages, GetListFunc func, GList **listp, gboolean in_path_order, gboolean include_private) { GList *tmp; - GList *expanded; - - expanded = NULL; - tmp = packages; - while (tmp != NULL) - { - recursive_fill_list (tmp->data, - include_private ? get_requires_private : get_requires, - &expanded); - - tmp = tmp->next; - } + GList *expanded = NULL; + + /* Start from the end of the requested package list to maintain order since + * the recursive list is built by prepending. */ + for (tmp = g_list_last (packages); tmp != NULL; tmp = g_list_previous (tmp)) + recursive_fill_list (tmp->data, + include_private ? get_requires_private : get_requires, + &expanded); /* Remove duplicate packages from the recursive list. This should provide a * serialized package list where all interdependencies are resolved |