main: add --keep-system-cflags and --keep-system-libs (and also pkg-config env vars for this)

feature/tap-sh
William Pitcock 2012-05-06 19:56:19 -05:00
parent 857d36b642
commit 69c5925ba2
1 changed files with 15 additions and 2 deletions

17
main.c
View File

@ -55,6 +55,8 @@ static int want_digraph = 0;
static int want_env_only = 0; static int want_env_only = 0;
static int want_uninstalled = 0; static int want_uninstalled = 0;
static int want_no_uninstalled = 0; static int want_no_uninstalled = 0;
static int want_keep_system_cflags = 0;
static int want_keep_system_libs = 0;
static int maximum_traverse_depth = -1; static int maximum_traverse_depth = -1;
static char *required_pkgconfig_version = NULL; static char *required_pkgconfig_version = NULL;
@ -64,13 +66,14 @@ static char *want_variable = NULL;
static bool static bool
fragment_has_system_dir(pkg_fragment_t *frag) fragment_has_system_dir(pkg_fragment_t *frag)
{ {
switch (frag->type) switch (frag->type)
{ {
case 'L': case 'L':
if (!strcasecmp(LIBDIR, frag->data)) if (!want_keep_system_libs && !strcasecmp(LIBDIR, frag->data))
return true; return true;
case 'I': case 'I':
if (!strcasecmp(INCLUDEDIR, frag->data)) if (!want_keep_system_cflags && !strcasecmp(INCLUDEDIR, frag->data))
return true; return true;
default: default:
break; break;
@ -439,6 +442,8 @@ usage(void)
printf(" linking to stdout\n"); printf(" linking to stdout\n");
printf(" --print-variables print all known variables in module to stdout\n"); printf(" --print-variables print all known variables in module to stdout\n");
printf(" --digraph print entire dependency graph in graphviz 'dot' format\n"); printf(" --digraph print entire dependency graph in graphviz 'dot' format\n");
printf(" --keep-system-cflags keep -I%s entries in cflags output\n", INCLUDEDIR);
printf(" --keep-system-libs keep -L%s entries in cflags output\n", LIBDIR);
printf("\nreport bugs to <%s>.\n", PACKAGE_BUGREPORT); printf("\nreport bugs to <%s>.\n", PACKAGE_BUGREPORT);
} }
@ -476,6 +481,8 @@ main(int argc, char *argv[])
{ "libs-only-other", no_argument, &want_libs, WANT_LIBS_ONLY_OTHER, }, { "libs-only-other", no_argument, &want_libs, WANT_LIBS_ONLY_OTHER, },
{ "uninstalled", no_argument, &want_uninstalled, 24, }, { "uninstalled", no_argument, &want_uninstalled, 24, },
{ "no-uninstalled", no_argument, &want_no_uninstalled, 25, }, { "no-uninstalled", no_argument, &want_no_uninstalled, 25, },
{ "keep-system-cflags", no_argument, &want_keep_system_cflags, 26, },
{ "keep-system-libs", no_argument, &want_keep_system_libs, 26, },
{ NULL, 0, NULL, 0 } { NULL, 0, NULL, 0 }
}; };
@ -521,6 +528,12 @@ main(int argc, char *argv[])
if (want_no_uninstalled || getenv("PKG_CONFIG_DISABLE_UNINSTALLED") != NULL) if (want_no_uninstalled || getenv("PKG_CONFIG_DISABLE_UNINSTALLED") != NULL)
global_traverse_flags |= PKGF_NO_UNINSTALLED; global_traverse_flags |= PKGF_NO_UNINSTALLED;
if (getenv("PKG_CONFIG_ALLOW_SYSTEM_CFLAGS") != NULL)
want_keep_system_cflags = 1;
if (getenv("PKG_CONFIG_ALLOW_SYSTEM_LIBS") != NULL)
want_keep_system_libs = 1;
if (required_pkgconfig_version != NULL) if (required_pkgconfig_version != NULL)
{ {
if (pkg_compare_version(PKG_PKGCONFIG_VERSION_EQUIV, required_pkgconfig_version) >= 0) if (pkg_compare_version(PKG_PKGCONFIG_VERSION_EQUIV, required_pkgconfig_version) >= 0)