wrc: Add --sysroot option.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
stable
Alexandre Julliard 2019-11-02 13:33:36 +01:00
parent f282b49802
commit 9240ffbb29
3 changed files with 19 additions and 3 deletions

View File

@ -15,7 +15,7 @@ C_SRCS = \
LEX_SRCS = parser.l LEX_SRCS = parser.l
BISON_SRCS = parser.y BISON_SRCS = parser.y
wrc_EXTRADEFS = -DINCLUDEDIR="\"${includedir}/wine\"" wrc_EXTRADEFS = -DINCLUDEDIR="\"${includedir}\""
EXTRALIBS = $(GETTEXTPO_LIBS) -lwpp EXTRALIBS = $(GETTEXTPO_LIBS) -lwpp

View File

@ -74,6 +74,7 @@ static const char usage[] =
" --po-dir=DIR Directory containing po files for translations\n" " --po-dir=DIR Directory containing po files for translations\n"
" --preprocessor Specifies the preprocessor to use, including arguments\n" " --preprocessor Specifies the preprocessor to use, including arguments\n"
" -r Ignored for compatibility with rc\n" " -r Ignored for compatibility with rc\n"
" --sysroot=DIR Prefix include paths with DIR\n"
" -U, --undefine id Undefine preprocessor identifier id\n" " -U, --undefine id Undefine preprocessor identifier id\n"
" --use-temp-file Ignored for compatibility with windres\n" " --use-temp-file Ignored for compatibility with windres\n"
" -v, --verbose Enable verbose mode\n" " -v, --verbose Enable verbose mode\n"
@ -172,6 +173,7 @@ enum long_options_values
LONG_OPT_NOTMPFILE, LONG_OPT_NOTMPFILE,
LONG_OPT_PO_DIR, LONG_OPT_PO_DIR,
LONG_OPT_PREPROCESSOR, LONG_OPT_PREPROCESSOR,
LONG_OPT_SYSROOT,
LONG_OPT_VERSION, LONG_OPT_VERSION,
LONG_OPT_DEBUG, LONG_OPT_DEBUG,
LONG_OPT_ENDIANNESS, LONG_OPT_ENDIANNESS,
@ -197,6 +199,7 @@ static const struct option long_options[] = {
{ "pedantic", 0, NULL, LONG_OPT_PEDANTIC }, { "pedantic", 0, NULL, LONG_OPT_PEDANTIC },
{ "po-dir", 1, NULL, LONG_OPT_PO_DIR }, { "po-dir", 1, NULL, LONG_OPT_PO_DIR },
{ "preprocessor", 1, NULL, LONG_OPT_PREPROCESSOR }, { "preprocessor", 1, NULL, LONG_OPT_PREPROCESSOR },
{ "sysroot", 1, NULL, LONG_OPT_SYSROOT },
{ "target", 1, NULL, 'F' }, { "target", 1, NULL, 'F' },
{ "undefine", 1, NULL, 'U' }, { "undefine", 1, NULL, 'U' },
{ "use-temp-file", 0, NULL, LONG_OPT_TMPFILE }, { "use-temp-file", 0, NULL, LONG_OPT_TMPFILE },
@ -335,6 +338,7 @@ int main(int argc,char *argv[])
int cmdlen; int cmdlen;
int po_mode = 0; int po_mode = 0;
char *po_dir = NULL; char *po_dir = NULL;
const char *sysroot = "";
char **files = xmalloc( argc * sizeof(*files) ); char **files = xmalloc( argc * sizeof(*files) );
signal(SIGSEGV, segvhandler); signal(SIGSEGV, segvhandler);
@ -384,6 +388,9 @@ int main(int argc,char *argv[])
if (strcmp(optarg, "cat") == 0) no_preprocess = 1; if (strcmp(optarg, "cat") == 0) no_preprocess = 1;
else fprintf(stderr, "-P option not yet supported, ignored.\n"); else fprintf(stderr, "-P option not yet supported, ignored.\n");
break; break;
case LONG_OPT_SYSROOT:
sysroot = xstrdup( optarg );
break;
case LONG_OPT_VERSION: case LONG_OPT_VERSION:
printf(version_string); printf(version_string);
exit(0); exit(0);
@ -499,8 +506,14 @@ int main(int argc,char *argv[])
/* If we do need to search standard includes, add them to the path */ /* If we do need to search standard includes, add them to the path */
if (stdinc) if (stdinc)
{ {
wpp_add_include_path(INCLUDEDIR"/msvcrt"); static const char *incl_dirs[] = { INCLUDEDIR, "/usr/include", "/usr/local/include" };
wpp_add_include_path(INCLUDEDIR"/windows");
for (i = 0; i < ARRAY_SIZE(incl_dirs); i++)
{
if (i && !strcmp( incl_dirs[i], incl_dirs[0] )) continue;
wpp_add_include_path( strmake( "%s%s/wine/msvcrt", sysroot, incl_dirs[i] ));
wpp_add_include_path( strmake( "%s%s/wine/windows", sysroot, incl_dirs[i] ));
}
} }
/* Kill io buffering when some kind of debuglevel is enabled */ /* Kill io buffering when some kind of debuglevel is enabled */

View File

@ -121,6 +121,9 @@ This option may be used to specify the preprocessor to use, including any
leading arguments. If not specified, \fBwrc\fR uses its builtin processor. leading arguments. If not specified, \fBwrc\fR uses its builtin processor.
To disable preprocessing, use \fB--preprocessor=cat\fR. To disable preprocessing, use \fB--preprocessor=cat\fR.
.TP .TP
.I \fB\-\-sysroot=\fIdir\fR
Prefix the standard include paths with \fIdir\fR.
.TP
.I \fB\-U\fR, \fB\-\-undefine\fR=\fIid\fR .I \fB\-U\fR, \fB\-\-undefine\fR=\fIid\fR
Undefine preprocessor identifier \fIid\fR. Please note that only macros Undefine preprocessor identifier \fIid\fR. Please note that only macros
defined up to this point are undefined by this command. However, these defined up to this point are undefined by this command. However, these