From f9531ce9fe9ceae8f230afc0a6a58a486e04df51 Mon Sep 17 00:00:00 2001 From: Ariadne Conill Date: Thu, 18 Mar 2021 05:59:54 -0600 Subject: [PATCH] add support for pkgconf_cross_personality_t.want_default_pure --- cli/main.c | 2 +- libpkgconf/libpkgconf.h | 1 + libpkgconf/personality.c | 1 + man/pkgconf-personality.5 | 3 +++ 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cli/main.c b/cli/main.c index 7d16f48..f32b06c 100644 --- a/cli/main.c +++ b/cli/main.c @@ -1040,7 +1040,7 @@ main(int argc, char *argv[]) * this allows for a --static which searches private modules, but has the same fragment behaviour as if * --static were disabled. see for rationale. */ - if ((want_flags & PKG_PURE) == PKG_PURE || getenv("PKG_CONFIG_PURE_DEPGRAPH") != NULL) + if ((want_flags & PKG_PURE) == PKG_PURE || getenv("PKG_CONFIG_PURE_DEPGRAPH") != NULL || personality->want_default_pure) want_client_flags &= ~PKGCONF_PKG_PKGF_MERGE_PRIVATE_FRAGMENTS; if ((want_flags & PKG_ENV_ONLY) == PKG_ENV_ONLY) diff --git a/libpkgconf/libpkgconf.h b/libpkgconf/libpkgconf.h index ca448eb..6f188de 100644 --- a/libpkgconf/libpkgconf.h +++ b/libpkgconf/libpkgconf.h @@ -204,6 +204,7 @@ struct pkgconf_cross_personality_ { char *sysroot_dir; bool want_default_static; + bool want_default_pure; }; /* client.c */ diff --git a/libpkgconf/personality.c b/libpkgconf/personality.c index ab9ef74..32798fa 100644 --- a/libpkgconf/personality.c +++ b/libpkgconf/personality.c @@ -156,6 +156,7 @@ static const personality_keyword_pair_t personality_keyword_pairs[] = { {"SystemIncludePaths", personality_fragment_func, offsetof(pkgconf_cross_personality_t, filter_includedirs)}, {"SystemLibraryPaths", personality_fragment_func, offsetof(pkgconf_cross_personality_t, filter_libdirs)}, {"Triplet", personality_copy_func, offsetof(pkgconf_cross_personality_t, name)}, + {"WantDefaultPure", personality_bool_func, offsetof(pkgconf_cross_personality_t, want_default_pure)}, {"WantDefaultStatic", personality_bool_func, offsetof(pkgconf_cross_personality_t, want_default_static)}, }; diff --git a/man/pkgconf-personality.5 b/man/pkgconf-personality.5 index d0eccd0..9b0abd6 100644 --- a/man/pkgconf-personality.5 +++ b/man/pkgconf-personality.5 @@ -76,6 +76,9 @@ include files. A list of directories that are included by default in the search path for libraries. (mandatory; fragment list) +.It WantDefaultPure +If true, pkgconf will default to preferring a pure dependency graph. +(optional; boolean; default is false) .It WantDefaultStatic If true, pkgconf will default to operating in static linking mode. (optional; boolean; default is false)