forked from ariadne/pkgconf
if no cflags or libs are defined in .pc just return 0 and output nothing
parent
fbf13563ab
commit
4eedb041ed
28
main.c
28
main.c
|
@ -306,15 +306,19 @@ static bool
|
|||
apply_cflags(pkg_t *world, void *list_head, int maxdepth, unsigned int flags)
|
||||
{
|
||||
pkg_fragment_t **head = list_head;
|
||||
pkg_fragment_t *list;
|
||||
int eflag;
|
||||
|
||||
list = pkg_cflags(world, head, maxdepth, flags | PKGF_SEARCH_PRIVATE);
|
||||
if (list == NULL)
|
||||
eflag = pkg_cflags(world, head, maxdepth, flags | PKGF_SEARCH_PRIVATE);
|
||||
if (eflag != PKG_ERRF_OK)
|
||||
return false;
|
||||
|
||||
print_cflags(list);
|
||||
if (*head == NULL)
|
||||
return true;
|
||||
|
||||
print_cflags(*head);
|
||||
|
||||
pkg_fragment_free(*head);
|
||||
|
||||
pkg_fragment_free(list);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -322,14 +326,18 @@ static bool
|
|||
apply_libs(pkg_t *world, void *list_head, int maxdepth, unsigned int flags)
|
||||
{
|
||||
pkg_fragment_t **head = list_head;
|
||||
pkg_fragment_t *list;
|
||||
int eflag;
|
||||
|
||||
list = pkg_libs(world, head, maxdepth, flags);
|
||||
if (list == NULL)
|
||||
eflag = pkg_libs(world, head, maxdepth, flags);
|
||||
if (eflag != PKG_ERRF_OK)
|
||||
return false;
|
||||
print_libs(list);
|
||||
|
||||
pkg_fragment_free(list);
|
||||
if (*head == NULL)
|
||||
return true;
|
||||
|
||||
print_libs(*head);
|
||||
|
||||
pkg_fragment_free(*head);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
15
pkg.c
15
pkg.c
|
@ -853,7 +853,7 @@ pkg_cflags_collect(pkg_t *pkg, void *data, unsigned int flags)
|
|||
*list = pkg_fragment_copy(*list, frag);
|
||||
}
|
||||
|
||||
pkg_fragment_t *
|
||||
int
|
||||
pkg_cflags(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags)
|
||||
{
|
||||
int eflag;
|
||||
|
@ -863,10 +863,10 @@ pkg_cflags(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags)
|
|||
if (eflag != PKG_ERRF_OK)
|
||||
{
|
||||
pkg_fragment_free(*list);
|
||||
return NULL;
|
||||
*list = NULL;
|
||||
}
|
||||
|
||||
return *list;
|
||||
return eflag;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -891,7 +891,7 @@ pkg_libs_private_collect(pkg_t *pkg, void *data, unsigned int flags)
|
|||
*list = pkg_fragment_copy(*list, frag);
|
||||
}
|
||||
|
||||
pkg_fragment_t *
|
||||
int
|
||||
pkg_libs(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags)
|
||||
{
|
||||
int eflag;
|
||||
|
@ -901,7 +901,8 @@ pkg_libs(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags)
|
|||
if (eflag != PKG_ERRF_OK)
|
||||
{
|
||||
pkg_fragment_free(*list);
|
||||
return NULL;
|
||||
*list = NULL;
|
||||
return eflag;
|
||||
}
|
||||
|
||||
if (flags & PKGF_MERGE_PRIVATE_FRAGMENTS)
|
||||
|
@ -910,9 +911,9 @@ pkg_libs(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags)
|
|||
if (eflag != PKG_ERRF_OK)
|
||||
{
|
||||
pkg_fragment_free(*list);
|
||||
return NULL;
|
||||
*list = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return *list;
|
||||
return eflag;
|
||||
}
|
||||
|
|
4
pkg.h
4
pkg.h
|
@ -134,8 +134,8 @@ unsigned int pkg_verify_graph(pkg_t *root, int depth, unsigned int flags);
|
|||
int pkg_compare_version(const char *a, const char *b);
|
||||
pkg_t *pkg_verify_dependency(pkg_dependency_t *pkgdep, unsigned int flags, unsigned int *eflags);
|
||||
const char *pkg_get_comparator(pkg_dependency_t *pkgdep);
|
||||
pkg_fragment_t *pkg_cflags(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags);
|
||||
pkg_fragment_t *pkg_libs(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags);
|
||||
int pkg_cflags(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags);
|
||||
int pkg_libs(pkg_t *root, pkg_fragment_t **list, int maxdepth, unsigned int flags);
|
||||
|
||||
/* parse.c */
|
||||
pkg_t *pkg_new_from_file(const char *path, FILE *f);
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
prefix=/usr
|
||||
exec_prefix=${prefix}
|
||||
libdir=${prefix}/lib
|
||||
includedir=${prefix}/include
|
||||
|
||||
Name: foo
|
||||
Description: A testing pkg-config file
|
||||
Version: 1.2.3
|
||||
Libs: -L${libdir} -lfoo
|
|
@ -0,0 +1,9 @@
|
|||
prefix=/usr
|
||||
exec_prefix=${prefix}
|
||||
libdir=${prefix}/lib
|
||||
includedir=${prefix}/include
|
||||
|
||||
Name: foo
|
||||
Description: A testing pkg-config file
|
||||
Version: 1.2.3
|
||||
Cflags: -fPIC -I${includedir}/foo
|
|
@ -171,6 +171,12 @@ run_test "PKG_CONFIG_PATH=${selfdir}/lib1 ${1} --cflags missing-require; echo \$
|
|||
run_test "PKG_CONFIG_PATH=${selfdir}/lib1 ${1} --cflags quotes" \
|
||||
"-DQUOTED=\\\"bla\\\""
|
||||
|
||||
run_test "PKG_CONFIG_PATH=${selfdir}/lib1 ${1} --libs nolib; echo \$?" \
|
||||
'0'
|
||||
|
||||
run_test "PKG_CONFIG_PATH=${selfdir}/lib1 ${1} --libs nocflag; echo \$?" \
|
||||
'0'
|
||||
|
||||
# 10) tests for internal getopt implementation with options at the end
|
||||
if [ "x@STRICT_MODE@" = "xno" ]; then
|
||||
run_test "PKG_CONFIG_PATH=${selfdir}/lib1 ${1} foo --libs" \
|
||||
|
|
Loading…
Reference in New Issue