wrc: Also search the include dir relative to the binary path.
Suggested by Kevin Puetz. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
f78975ba28
commit
5417826caa
|
@ -15,7 +15,9 @@ C_SRCS = \
|
|||
LEX_SRCS = parser.l
|
||||
BISON_SRCS = parser.y
|
||||
|
||||
wrc_EXTRADEFS = -DINCLUDEDIR="\"${includedir}\""
|
||||
wrc_EXTRADEFS = \
|
||||
-DINCLUDEDIR="\"${includedir}\"" \
|
||||
-DBIN_TO_INCLUDEDIR=\"`$(MAKEDEP) -R ${bindir} ${includedir}`\"
|
||||
|
||||
EXTRALIBS = $(GETTEXTPO_LIBS) -lwpp
|
||||
|
||||
|
|
|
@ -154,6 +154,8 @@ static char *output_name; /* The name given by the -o option */
|
|||
char *input_name = NULL; /* The name given on the command-line */
|
||||
static char *temp_name = NULL; /* Temporary file for preprocess pipe */
|
||||
|
||||
static const char *includedir;
|
||||
|
||||
int line_number = 1; /* The current line */
|
||||
int char_number = 1; /* The current char pos within the line */
|
||||
|
||||
|
@ -327,6 +329,27 @@ static void set_target( const char *target )
|
|||
free( cpu );
|
||||
}
|
||||
|
||||
static void init_argv0_dir( const char *argv0 )
|
||||
{
|
||||
#ifndef _WIN32
|
||||
char *p, *dir;
|
||||
|
||||
#if defined(__linux__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
|
||||
dir = realpath( "/proc/self/exe", NULL );
|
||||
#elif defined (__FreeBSD__) || defined(__DragonFly__)
|
||||
dir = realpath( "/proc/curproc/file", NULL );
|
||||
#else
|
||||
dir = realpath( argv0, NULL );
|
||||
#endif
|
||||
if (!dir) return;
|
||||
if (!(p = strrchr( dir, '/' ))) return;
|
||||
if (p == dir) p++;
|
||||
*p = 0;
|
||||
includedir = strmake( "%s/%s", dir, BIN_TO_INCLUDEDIR );
|
||||
free( dir );
|
||||
#endif
|
||||
}
|
||||
|
||||
int main(int argc,char *argv[])
|
||||
{
|
||||
int optc;
|
||||
|
@ -347,6 +370,7 @@ int main(int argc,char *argv[])
|
|||
#ifdef SIGHUP
|
||||
signal( SIGHUP, exit_on_signal );
|
||||
#endif
|
||||
init_argv0_dir( argv[0] );
|
||||
|
||||
/* Set the default defined stuff */
|
||||
set_version_defines();
|
||||
|
@ -508,6 +532,11 @@ int main(int argc,char *argv[])
|
|||
{
|
||||
static const char *incl_dirs[] = { INCLUDEDIR, "/usr/include", "/usr/local/include" };
|
||||
|
||||
if (includedir)
|
||||
{
|
||||
wpp_add_include_path( strmake( "%s/wine/msvcrt", includedir ));
|
||||
wpp_add_include_path( strmake( "%s/wine/windows", includedir ));
|
||||
}
|
||||
for (i = 0; i < ARRAY_SIZE(incl_dirs); i++)
|
||||
{
|
||||
if (i && !strcmp( incl_dirs[i], incl_dirs[0] )) continue;
|
||||
|
|
Loading…
Reference in New Issue