* windres.c (usage): Add new --preprocessor-arg option.

(option_values): Add new OPTION_PREPROCESSOR_ARG enumerator.
	(option long_options): Add preprocessor-arg option.
	(main): Handle it.
	* doc/binutils.texi: Add documentation for --preprocessor-arg
	option.
	* NEWS: Add line about new --preprocessor-arg option for windres.

	* binutils-all/windres/windres.exp: Add '// cpparg <option>' command
	to rc file interpretation to specify addition pre-processor commands
	as script option.
	* binutils-all/windres/strtab3.rc: New.
	* binutils-all/windres/strtab3.rsd: New.
	* binutils-all/windres/README: Add note about cpparg script option.
	argument
This commit is contained in:
Nick Clifton
2011-04-13 07:50:15 +00:00
parent dd948edaf7
commit ec25acb399
9 changed files with 83 additions and 5 deletions

View File

@@ -12,6 +12,7 @@ contains one command:
// parse-only
// xfail *-*-*
// cpparg <preprocessor options passed via --preprocessor-arg>
parse-only must preceed any xfail commands, and indicates that a
comparison with the *.rsd file will not happen. xfail indicates when

View File

@@ -0,0 +1,14 @@
// cpparg -DTEST=1
#include "windows.h"
LANGUAGE 0, 0
STRINGTABLE MOVEABLE PURE DISCARDABLE
BEGIN
#ifdef TEST
1 "hello, world"
#else
1 "fail"
#endif
END

View File

@@ -0,0 +1,8 @@
0000 00000000 20000000 ffff0000 ffff0000 .... ...........
0010 00000000 00000000 00000000 00000000 ................
0020 38000000 20000000 ffff0600 ffff0100 8... ...........
0030 00000000 30100000 00000000 00000000 ....0...........
0040 00000c00 68006500 6c006c00 6f002c00 ....h.e.l.l.o.,.
0050 20007700 6f007200 6c006400 00000000 .w.o.r.l.d.....
0060 00000000 00000000 00000000 00000000 ................
0070 00000000 00000000 ........

View File

@@ -56,6 +56,7 @@ foreach res $res_list {
set sroot [file rootname $res]
set broot [file tail $sroot]
set done 0
set cpp_opts ""
set rc [open $res]
while { [gets $rc line] != -1 } {
@@ -66,10 +67,14 @@ foreach res $res_list {
setup_xfail $sys
continue
}
if [regexp "cpparg *(\[^ \]*)" $line junk cppopt] {
set cpp_opts "--preprocessor-arg \"$cppopt\""
continue
}
}
verbose "$wr -J rc -O res $res tmpdir/$broot.res" 1
catch "exec $wr -J rc -O res $res tmpdir/$broot.res" err
catch "exec $wr $cpp_opts -J rc -O res $res tmpdir/$broot.res" err
if ![string match "" $err] then {
send_log "$err\n"