forked from ariadne/pkgconf
main: kill global_traverse_flags (ref #105)
parent
1ee3c12f53
commit
3c628084c5
53
main.c
53
main.c
|
@ -53,8 +53,6 @@
|
||||||
#define PKG_PURE (((uint64_t) 1) << 33)
|
#define PKG_PURE (((uint64_t) 1) << 33)
|
||||||
#define PKG_PATH (((uint64_t) 1) << 34)
|
#define PKG_PATH (((uint64_t) 1) << 34)
|
||||||
|
|
||||||
static unsigned int global_traverse_flags = PKGCONF_PKG_PKGF_NONE;
|
|
||||||
|
|
||||||
static pkgconf_client_t pkg_client;
|
static pkgconf_client_t pkg_client;
|
||||||
|
|
||||||
static uint64_t want_flags;
|
static uint64_t want_flags;
|
||||||
|
@ -635,6 +633,7 @@ main(int argc, char *argv[])
|
||||||
char *required_max_module_version = NULL;
|
char *required_max_module_version = NULL;
|
||||||
char *required_module_version = NULL;
|
char *required_module_version = NULL;
|
||||||
char *logfile_arg = NULL;
|
char *logfile_arg = NULL;
|
||||||
|
unsigned int want_client_flags = PKGCONF_PKG_PKGF_NONE;
|
||||||
|
|
||||||
want_flags = 0;
|
want_flags = 0;
|
||||||
|
|
||||||
|
@ -773,29 +772,29 @@ main(int argc, char *argv[])
|
||||||
error_msgout = fopen(PATH_DEV_NULL, "w");
|
error_msgout = fopen(PATH_DEV_NULL, "w");
|
||||||
|
|
||||||
if ((want_flags & PKG_IGNORE_CONFLICTS) == PKG_IGNORE_CONFLICTS || getenv("PKG_CONFIG_IGNORE_CONFLICTS") != NULL)
|
if ((want_flags & PKG_IGNORE_CONFLICTS) == PKG_IGNORE_CONFLICTS || getenv("PKG_CONFIG_IGNORE_CONFLICTS") != NULL)
|
||||||
global_traverse_flags |= PKGCONF_PKG_PKGF_SKIP_CONFLICTS;
|
want_client_flags |= PKGCONF_PKG_PKGF_SKIP_CONFLICTS;
|
||||||
|
|
||||||
if ((want_flags & PKG_STATIC) == PKG_STATIC)
|
if ((want_flags & PKG_STATIC) == PKG_STATIC)
|
||||||
global_traverse_flags |= (PKGCONF_PKG_PKGF_SEARCH_PRIVATE | PKGCONF_PKG_PKGF_MERGE_PRIVATE_FRAGMENTS);
|
want_client_flags |= (PKGCONF_PKG_PKGF_SEARCH_PRIVATE | PKGCONF_PKG_PKGF_MERGE_PRIVATE_FRAGMENTS);
|
||||||
|
|
||||||
/* if --static and --pure are both specified, then disable merge-back.
|
/* if --static and --pure are both specified, then disable merge-back.
|
||||||
* this allows for a --static which searches private modules, but has the same fragment behaviour as if
|
* this allows for a --static which searches private modules, but has the same fragment behaviour as if
|
||||||
* --static were disabled. see <https://github.com/pkgconf/pkgconf/issues/83> for rationale.
|
* --static were disabled. see <https://github.com/pkgconf/pkgconf/issues/83> 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)
|
||||||
global_traverse_flags &= ~PKGCONF_PKG_PKGF_MERGE_PRIVATE_FRAGMENTS;
|
want_client_flags &= ~PKGCONF_PKG_PKGF_MERGE_PRIVATE_FRAGMENTS;
|
||||||
|
|
||||||
if ((want_flags & PKG_ENV_ONLY) == PKG_ENV_ONLY)
|
if ((want_flags & PKG_ENV_ONLY) == PKG_ENV_ONLY)
|
||||||
global_traverse_flags |= PKGCONF_PKG_PKGF_ENV_ONLY;
|
want_client_flags |= PKGCONF_PKG_PKGF_ENV_ONLY;
|
||||||
|
|
||||||
if ((want_flags & PKG_NO_CACHE) == PKG_NO_CACHE)
|
if ((want_flags & PKG_NO_CACHE) == PKG_NO_CACHE)
|
||||||
global_traverse_flags |= PKGCONF_PKG_PKGF_NO_CACHE;
|
want_client_flags |= PKGCONF_PKG_PKGF_NO_CACHE;
|
||||||
|
|
||||||
if ((want_flags & PKG_NO_UNINSTALLED) == PKG_NO_UNINSTALLED || getenv("PKG_CONFIG_DISABLE_UNINSTALLED") != NULL)
|
if ((want_flags & PKG_NO_UNINSTALLED) == PKG_NO_UNINSTALLED || getenv("PKG_CONFIG_DISABLE_UNINSTALLED") != NULL)
|
||||||
global_traverse_flags |= PKGCONF_PKG_PKGF_NO_UNINSTALLED;
|
want_client_flags |= PKGCONF_PKG_PKGF_NO_UNINSTALLED;
|
||||||
|
|
||||||
if ((want_flags & PKG_NO_PROVIDES) == PKG_NO_PROVIDES)
|
if ((want_flags & PKG_NO_PROVIDES) == PKG_NO_PROVIDES)
|
||||||
global_traverse_flags |= PKGCONF_PKG_PKGF_SKIP_PROVIDES;
|
want_client_flags |= PKGCONF_PKG_PKGF_SKIP_PROVIDES;
|
||||||
|
|
||||||
if (getenv("PKG_CONFIG_ALLOW_SYSTEM_CFLAGS") != NULL)
|
if (getenv("PKG_CONFIG_ALLOW_SYSTEM_CFLAGS") != NULL)
|
||||||
want_flags |= PKG_KEEP_SYSTEM_CFLAGS;
|
want_flags |= PKG_KEEP_SYSTEM_CFLAGS;
|
||||||
|
@ -809,8 +808,8 @@ main(int argc, char *argv[])
|
||||||
if ((sysroot_dir = getenv("PKG_CONFIG_SYSROOT_DIR")) != NULL)
|
if ((sysroot_dir = getenv("PKG_CONFIG_SYSROOT_DIR")) != NULL)
|
||||||
pkgconf_client_set_sysroot_dir(&pkg_client, sysroot_dir);
|
pkgconf_client_set_sysroot_dir(&pkg_client, sysroot_dir);
|
||||||
|
|
||||||
/* at this point, global_traverse_flags should be set, so build the dir list */
|
/* at this point, want_client_flags should be set, so build the dir list */
|
||||||
pkgconf_pkg_dir_list_build(&pkg_client, global_traverse_flags);
|
pkgconf_pkg_dir_list_build(&pkg_client, want_client_flags);
|
||||||
|
|
||||||
if (required_pkgconfig_version != NULL)
|
if (required_pkgconfig_version != NULL)
|
||||||
{
|
{
|
||||||
|
@ -857,7 +856,7 @@ main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
pkgconf_dependency_t *pkgiter = node->data;
|
pkgconf_dependency_t *pkgiter = node->data;
|
||||||
|
|
||||||
pkg = pkgconf_pkg_find(&pkg_client, pkgiter->package, global_traverse_flags);
|
pkg = pkgconf_pkg_find(&pkg_client, pkgiter->package, want_client_flags);
|
||||||
if (pkg == NULL)
|
if (pkg == NULL)
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
|
|
||||||
|
@ -884,7 +883,7 @@ main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
pkgconf_dependency_t *pkgiter = node->data;
|
pkgconf_dependency_t *pkgiter = node->data;
|
||||||
|
|
||||||
pkg = pkgconf_pkg_find(&pkg_client, pkgiter->package, global_traverse_flags);
|
pkg = pkgconf_pkg_find(&pkg_client, pkgiter->package, want_client_flags);
|
||||||
if (pkg == NULL)
|
if (pkg == NULL)
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
|
|
||||||
|
@ -911,7 +910,7 @@ main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
pkgconf_dependency_t *pkgiter = node->data;
|
pkgconf_dependency_t *pkgiter = node->data;
|
||||||
|
|
||||||
pkg = pkgconf_pkg_find(&pkg_client, pkgiter->package, global_traverse_flags);
|
pkg = pkgconf_pkg_find(&pkg_client, pkgiter->package, want_client_flags);
|
||||||
if (pkg == NULL)
|
if (pkg == NULL)
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
|
|
||||||
|
@ -966,14 +965,14 @@ main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
||||||
|
|
||||||
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_simulate, -1, global_traverse_flags | PKGCONF_PKG_PKGF_SKIP_ERRORS, NULL))
|
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_simulate, -1, want_client_flags | PKGCONF_PKG_PKGF_SKIP_ERRORS, NULL))
|
||||||
{
|
{
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pkgconf_queue_validate(&pkg_client, &pkgq, maximum_traverse_depth, global_traverse_flags))
|
if (!pkgconf_queue_validate(&pkg_client, &pkgq, maximum_traverse_depth, want_client_flags))
|
||||||
{
|
{
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -985,7 +984,7 @@ main(int argc, char *argv[])
|
||||||
if ((want_flags & PKG_UNINSTALLED) == PKG_UNINSTALLED)
|
if ((want_flags & PKG_UNINSTALLED) == PKG_UNINSTALLED)
|
||||||
{
|
{
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
pkgconf_queue_apply(&pkg_client, &pkgq, apply_uninstalled, maximum_traverse_depth, global_traverse_flags, &ret);
|
pkgconf_queue_apply(&pkg_client, &pkgq, apply_uninstalled, maximum_traverse_depth, want_client_flags, &ret);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -993,7 +992,7 @@ main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
||||||
|
|
||||||
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_provides, maximum_traverse_depth, global_traverse_flags, NULL))
|
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_provides, maximum_traverse_depth, want_client_flags, NULL))
|
||||||
{
|
{
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -1004,7 +1003,7 @@ main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
||||||
|
|
||||||
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_digraph, maximum_traverse_depth, global_traverse_flags, NULL))
|
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_digraph, maximum_traverse_depth, want_client_flags, NULL))
|
||||||
{
|
{
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -1015,7 +1014,7 @@ main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
||||||
|
|
||||||
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_modversion, 2, global_traverse_flags, NULL))
|
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_modversion, 2, want_client_flags, NULL))
|
||||||
{
|
{
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -1026,7 +1025,7 @@ main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
||||||
|
|
||||||
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_path, 2, global_traverse_flags | PKGCONF_PKG_PKGF_SKIP_ROOT_VIRTUAL, NULL))
|
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_path, 2, want_client_flags | PKGCONF_PKG_PKGF_SKIP_ROOT_VIRTUAL, NULL))
|
||||||
{
|
{
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -1037,7 +1036,7 @@ main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
||||||
|
|
||||||
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_variables, 2, global_traverse_flags, NULL))
|
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_variables, 2, want_client_flags, NULL))
|
||||||
{
|
{
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -1048,7 +1047,7 @@ main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
||||||
|
|
||||||
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_variable, 2, global_traverse_flags | PKGCONF_PKG_PKGF_SKIP_ROOT_VIRTUAL, want_variable))
|
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_variable, 2, want_client_flags | PKGCONF_PKG_PKGF_SKIP_ROOT_VIRTUAL, want_variable))
|
||||||
{
|
{
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -1059,7 +1058,7 @@ main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
||||||
|
|
||||||
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_requires, maximum_traverse_depth, global_traverse_flags, NULL))
|
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_requires, maximum_traverse_depth, want_client_flags, NULL))
|
||||||
{
|
{
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -1070,7 +1069,7 @@ main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
want_flags &= ~(PKG_CFLAGS|PKG_LIBS);
|
||||||
|
|
||||||
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_requires_private, maximum_traverse_depth, global_traverse_flags, NULL))
|
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_requires_private, maximum_traverse_depth, want_client_flags, NULL))
|
||||||
{
|
{
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -1079,7 +1078,7 @@ main(int argc, char *argv[])
|
||||||
|
|
||||||
if ((want_flags & PKG_CFLAGS))
|
if ((want_flags & PKG_CFLAGS))
|
||||||
{
|
{
|
||||||
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_cflags, maximum_traverse_depth, global_traverse_flags, NULL))
|
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_cflags, maximum_traverse_depth, want_client_flags, NULL))
|
||||||
{
|
{
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
goto out_println;
|
goto out_println;
|
||||||
|
@ -1088,7 +1087,7 @@ main(int argc, char *argv[])
|
||||||
|
|
||||||
if ((want_flags & PKG_LIBS))
|
if ((want_flags & PKG_LIBS))
|
||||||
{
|
{
|
||||||
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_libs, maximum_traverse_depth, global_traverse_flags, NULL))
|
if (!pkgconf_queue_apply(&pkg_client, &pkgq, apply_libs, maximum_traverse_depth, want_client_flags, NULL))
|
||||||
{
|
{
|
||||||
ret = EXIT_FAILURE;
|
ret = EXIT_FAILURE;
|
||||||
goto out_println;
|
goto out_println;
|
||||||
|
|
Loading…
Reference in New Issue