mirror of
https://gitlab.freedesktop.org/pkg-config/pkg-config.git
synced 2026-05-06 18:28:07 +02:00
Tue Sep 17 14:11:51 2002 Jonathan Blandford <jrb@redh...
Author: jrb
Date: 2002-09-17 17:40:19 GMT
Tue Sep 17 14:11:51 2002 Jonathan Blandford <jrb@redhat.com>
* pkg.c: strip out C_INCLUDE_PATH and CPLUS_INCLUDE_PATH if they
exist, as this can break -Werror on some newer gcc versions.
This commit is contained in:
parent
d793148d06
commit
56221beea3
2 changed files with 75 additions and 12 deletions
|
|
@ -1,3 +1,8 @@
|
||||||
|
Tue Sep 17 14:11:51 2002 Jonathan Blandford <jrb@redhat.com>
|
||||||
|
|
||||||
|
* pkg.c: strip out C_INCLUDE_PATH and CPLUS_INCLUDE_PATH if they
|
||||||
|
exist, as this can break -Werror on some newer gcc versions.
|
||||||
|
|
||||||
2002-09-13 Tor Lillqvist <tml@iki.fi>
|
2002-09-13 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
* Makefile.am (USE_INSTALLED_GLIB): Seems that the automake
|
* Makefile.am (USE_INSTALLED_GLIB): Seems that the automake
|
||||||
|
|
|
||||||
82
pkg.c
82
pkg.c
|
|
@ -641,16 +641,37 @@ compare_package_keys (gconstpointer a, gconstpointer b)
|
||||||
return strcmp (pkg_a->key, pkg_b->key);
|
return strcmp (pkg_a->key, pkg_b->key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static GSList *
|
||||||
|
add_env_variable_to_list (GSList *list, const gchar *env)
|
||||||
|
{
|
||||||
|
gchar **values;
|
||||||
|
gint i;
|
||||||
|
|
||||||
|
/* FIXME: the separator should be a ';' on Windows
|
||||||
|
*/
|
||||||
|
values = g_strsplit (env, ":", 0);
|
||||||
|
for (i = 0; values[i] != NULL; i++)
|
||||||
|
{
|
||||||
|
list = g_slist_append (list, g_strdup (values[i]));
|
||||||
|
}
|
||||||
|
g_strfreev (values);
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
verify_package (Package *pkg)
|
verify_package (Package *pkg)
|
||||||
{
|
{
|
||||||
GSList *requires = NULL;
|
GSList *requires = NULL;
|
||||||
GSList *conflicts = NULL;
|
GSList *conflicts = NULL;
|
||||||
|
GSList *system_directories = NULL;
|
||||||
GSList *iter;
|
GSList *iter;
|
||||||
GSList *requires_iter;
|
GSList *requires_iter;
|
||||||
GSList *conflicts_iter;
|
GSList *conflicts_iter;
|
||||||
|
GSList *system_dir_iter = NULL;
|
||||||
int count;
|
int count;
|
||||||
|
gchar *c_include_path;
|
||||||
|
|
||||||
/* Be sure we have the required fields */
|
/* Be sure we have the required fields */
|
||||||
|
|
||||||
if (pkg->key == NULL)
|
if (pkg->key == NULL)
|
||||||
|
|
@ -755,24 +776,58 @@ verify_package (Package *pkg)
|
||||||
g_slist_free (requires);
|
g_slist_free (requires);
|
||||||
g_slist_free (conflicts);
|
g_slist_free (conflicts);
|
||||||
|
|
||||||
|
/* We make a list of system directories that gcc expects so we can remove
|
||||||
|
* them.
|
||||||
|
*/
|
||||||
|
system_directories = g_slist_append (NULL, g_strdup ("/usr/include"));
|
||||||
|
|
||||||
|
c_include_path = g_getenv ("C_INCLUDE_PATH");
|
||||||
|
if (c_include_path != NULL)
|
||||||
|
{
|
||||||
|
system_directories = add_env_variable_to_list (system_directories, c_include_path);
|
||||||
|
g_free (c_include_path);
|
||||||
|
}
|
||||||
|
|
||||||
|
c_include_path = g_getenv ("CPLUS_INCLUDE_PATH");
|
||||||
|
if (c_include_path != NULL)
|
||||||
|
{
|
||||||
|
system_directories = add_env_variable_to_list (system_directories, c_include_path);
|
||||||
|
g_free (c_include_path);
|
||||||
|
}
|
||||||
|
|
||||||
count = 0;
|
count = 0;
|
||||||
iter = pkg->I_cflags;
|
iter = pkg->I_cflags;
|
||||||
while (iter != NULL)
|
while (iter != NULL)
|
||||||
{
|
{
|
||||||
|
gint offset = 0;
|
||||||
/* we put things in canonical -I/usr/include (vs. -I /usr/include) format,
|
/* we put things in canonical -I/usr/include (vs. -I /usr/include) format,
|
||||||
* but if someone changes it later we may as well be robust
|
* but if someone changes it later we may as well be robust
|
||||||
*/
|
*/
|
||||||
if (strcmp (iter->data, "-I/usr/include") == 0 ||
|
if (((strcmp (iter->data, "-I") == 0) && (offset = 2))||
|
||||||
strcmp (iter->data, "-I /usr/include") == 0)
|
((strcmp (iter->data, "-I ") == 0) && (offset = 3)))
|
||||||
{
|
{
|
||||||
debug_spew ("Package %s has -I/usr/include in Cflags\n",
|
if (offset == 0)
|
||||||
pkg->name);
|
{
|
||||||
if (g_getenv ("PKG_CONFIG_ALLOW_SYSTEM_CFLAGS") == NULL)
|
iter = iter->next;
|
||||||
{
|
continue;
|
||||||
iter->data = NULL;
|
}
|
||||||
++count;
|
|
||||||
debug_spew ("Removing -I/usr/include from cflags for %s\n", pkg->key);
|
system_dir_iter = system_directories;
|
||||||
}
|
while (system_dir_iter != NULL)
|
||||||
|
{
|
||||||
|
if (strcmp (system_dir_iter->data, iter->data + offset) == 0)
|
||||||
|
{
|
||||||
|
debug_spew ("Package %s has %s in Cflags\n",
|
||||||
|
pkg->name, (gchar *)iter->data);
|
||||||
|
if (g_getenv ("PKG_CONFIG_ALLOW_SYSTEM_CFLAGS") == NULL)
|
||||||
|
{
|
||||||
|
debug_spew ("Removing %s from cflags for %s\n", iter->data, pkg->key);
|
||||||
|
++count;
|
||||||
|
iter->data = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
system_dir_iter = system_dir_iter->next;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
iter = iter->next;
|
iter = iter->next;
|
||||||
|
|
@ -784,6 +839,9 @@ verify_package (Package *pkg)
|
||||||
--count;
|
--count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_slist_foreach (system_directories, (GFunc) g_free, NULL);
|
||||||
|
g_slist_free (system_directories);
|
||||||
|
|
||||||
count = 0;
|
count = 0;
|
||||||
iter = pkg->L_libs;
|
iter = pkg->L_libs;
|
||||||
while (iter != NULL)
|
while (iter != NULL)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue