makedep: Check for external libraries instead of include paths when determining whether to allow external includes.

The include path may be empty, e.g. if the relevant headers are to be found
directly in the MinGW sysroot.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2021-11-29 16:43:06 -06:00 committed by Alexandre Julliard
parent eeae3554fd
commit e454c62f36
1 changed files with 17 additions and 1 deletions

View File

@ -1286,6 +1286,22 @@ static struct makefile *find_importlib_module( const char *name )
}
/*******************************************************************
* has_external_import
*/
static int has_external_import( const struct makefile *make )
{
unsigned int i;
for (i = 0; i < make->imports.count; i++)
{
if (!strncmp( make->imports.str[i], "-l", 2 ))
return 1;
}
return 0;
}
/*******************************************************************
* open_include_file
*/
@ -1404,7 +1420,7 @@ static struct file *open_include_file( const struct makefile *make, struct incl_
{
if (!strcmp( pFile->name, "stdarg.h" )) return NULL;
if (!strcmp( pFile->name, "x86intrin.h" )) return NULL;
if (make->include_paths.count) return NULL;
if (has_external_import( make )) return NULL;
fprintf( stderr, "%s:%d: error: system header %s cannot be used with msvcrt\n",
pFile->included_by->file->name, pFile->included_line, pFile->name );
exit(1);