Alexandre Julliard : wrc: Add --sysroot option.
Alexandre Julliard
julliard at winehq.org
Mon Nov 4 16:40:23 CST 2019
Module: wine
Branch: master
Commit: 9240ffbb293a0ca998368f082dbda15767e8fa5f
URL: https://source.winehq.org/git/wine.git/?a=commit;h=9240ffbb293a0ca998368f082dbda15767e8fa5f
Author: Alexandre Julliard <julliard at winehq.org>
Date: Sat Nov 2 13:33:36 2019 +0100
wrc: Add --sysroot option.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
tools/wrc/Makefile.in | 2 +-
tools/wrc/wrc.c | 17 +++++++++++++++--
tools/wrc/wrc.man.in | 3 +++
3 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/tools/wrc/Makefile.in b/tools/wrc/Makefile.in
index 500d5c1278..d502e4b7da 100644
--- a/tools/wrc/Makefile.in
+++ b/tools/wrc/Makefile.in
@@ -15,7 +15,7 @@ C_SRCS = \
LEX_SRCS = parser.l
BISON_SRCS = parser.y
-wrc_EXTRADEFS = -DINCLUDEDIR="\"${includedir}/wine\""
+wrc_EXTRADEFS = -DINCLUDEDIR="\"${includedir}\""
EXTRALIBS = $(GETTEXTPO_LIBS) -lwpp
diff --git a/tools/wrc/wrc.c b/tools/wrc/wrc.c
index ea8bfe07a7..014b177291 100644
--- a/tools/wrc/wrc.c
+++ b/tools/wrc/wrc.c
@@ -74,6 +74,7 @@ static const char usage[] =
" --po-dir=DIR Directory containing po files for translations\n"
" --preprocessor Specifies the preprocessor to use, including arguments\n"
" -r Ignored for compatibility with rc\n"
+ " --sysroot=DIR Prefix include paths with DIR\n"
" -U, --undefine id Undefine preprocessor identifier id\n"
" --use-temp-file Ignored for compatibility with windres\n"
" -v, --verbose Enable verbose mode\n"
@@ -172,6 +173,7 @@ enum long_options_values
LONG_OPT_NOTMPFILE,
LONG_OPT_PO_DIR,
LONG_OPT_PREPROCESSOR,
+ LONG_OPT_SYSROOT,
LONG_OPT_VERSION,
LONG_OPT_DEBUG,
LONG_OPT_ENDIANNESS,
@@ -197,6 +199,7 @@ static const struct option long_options[] = {
{ "pedantic", 0, NULL, LONG_OPT_PEDANTIC },
{ "po-dir", 1, NULL, LONG_OPT_PO_DIR },
{ "preprocessor", 1, NULL, LONG_OPT_PREPROCESSOR },
+ { "sysroot", 1, NULL, LONG_OPT_SYSROOT },
{ "target", 1, NULL, 'F' },
{ "undefine", 1, NULL, 'U' },
{ "use-temp-file", 0, NULL, LONG_OPT_TMPFILE },
@@ -335,6 +338,7 @@ int main(int argc,char *argv[])
int cmdlen;
int po_mode = 0;
char *po_dir = NULL;
+ const char *sysroot = "";
char **files = xmalloc( argc * sizeof(*files) );
signal(SIGSEGV, segvhandler);
@@ -384,6 +388,9 @@ int main(int argc,char *argv[])
if (strcmp(optarg, "cat") == 0) no_preprocess = 1;
else fprintf(stderr, "-P option not yet supported, ignored.\n");
break;
+ case LONG_OPT_SYSROOT:
+ sysroot = xstrdup( optarg );
+ break;
case LONG_OPT_VERSION:
printf(version_string);
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 (stdinc)
{
- wpp_add_include_path(INCLUDEDIR"/msvcrt");
- wpp_add_include_path(INCLUDEDIR"/windows");
+ static const char *incl_dirs[] = { INCLUDEDIR, "/usr/include", "/usr/local/include" };
+
+ 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 */
diff --git a/tools/wrc/wrc.man.in b/tools/wrc/wrc.man.in
index c671ad7382..80fcd04c5b 100644
--- a/tools/wrc/wrc.man.in
+++ b/tools/wrc/wrc.man.in
@@ -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.
To disable preprocessing, use \fB--preprocessor=cat\fR.
.TP
+.I \fB\-\-sysroot=\fIdir\fR
+Prefix the standard include paths with \fIdir\fR.
+.TP
.I \fB\-U\fR, \fB\-\-undefine\fR=\fIid\fR
Undefine preprocessor identifier \fIid\fR. Please note that only macros
defined up to this point are undefined by this command. However, these
More information about the wine-cvs
mailing list