mirror of
https://gitlab.freedesktop.org/pkg-config/pkg-config.git
synced 2026-04-03 08:00:39 +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>
|
||||
|
||||
* 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);
|
||||
}
|
||||
|
||||
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
|
||||
verify_package (Package *pkg)
|
||||
{
|
||||
GSList *requires = NULL;
|
||||
GSList *conflicts = NULL;
|
||||
GSList *system_directories = NULL;
|
||||
GSList *iter;
|
||||
GSList *requires_iter;
|
||||
GSList *conflicts_iter;
|
||||
GSList *conflicts_iter;
|
||||
GSList *system_dir_iter = NULL;
|
||||
int count;
|
||||
|
||||
gchar *c_include_path;
|
||||
|
||||
/* Be sure we have the required fields */
|
||||
|
||||
if (pkg->key == NULL)
|
||||
|
|
@ -755,24 +776,58 @@ verify_package (Package *pkg)
|
|||
g_slist_free (requires);
|
||||
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;
|
||||
iter = pkg->I_cflags;
|
||||
while (iter != NULL)
|
||||
{
|
||||
gint offset = 0;
|
||||
/* 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
|
||||
*/
|
||||
if (strcmp (iter->data, "-I/usr/include") == 0 ||
|
||||
strcmp (iter->data, "-I /usr/include") == 0)
|
||||
if (((strcmp (iter->data, "-I") == 0) && (offset = 2))||
|
||||
((strcmp (iter->data, "-I ") == 0) && (offset = 3)))
|
||||
{
|
||||
debug_spew ("Package %s has -I/usr/include in Cflags\n",
|
||||
pkg->name);
|
||||
if (g_getenv ("PKG_CONFIG_ALLOW_SYSTEM_CFLAGS") == NULL)
|
||||
{
|
||||
iter->data = NULL;
|
||||
++count;
|
||||
debug_spew ("Removing -I/usr/include from cflags for %s\n", pkg->key);
|
||||
}
|
||||
if (offset == 0)
|
||||
{
|
||||
iter = iter->next;
|
||||
continue;
|
||||
}
|
||||
|
||||
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;
|
||||
|
|
@ -784,6 +839,9 @@ verify_package (Package *pkg)
|
|||
--count;
|
||||
}
|
||||
|
||||
g_slist_foreach (system_directories, (GFunc) g_free, NULL);
|
||||
g_slist_free (system_directories);
|
||||
|
||||
count = 0;
|
||||
iter = pkg->L_libs;
|
||||
while (iter != NULL)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue