# New Ticket Created by Ron Blaschke
# Please include the string: [perl #41141]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=41141 >
Problem: F<tools/dev/cc_flags.pl> prints the input file name before
compilation. Visual C++ does this too, yielding output like this.
...
src\exec.c
exec.c
src\exec_cpu.c
exec_cpu.c
src\exec_save.c
exec_save.c
...
Possible Solution: Check if the compiler is Visual C++ and print only
the path to the directory if so. The new output looks like this.
...
src\exec.c
src\exec_cpu.c
src\exec_save.c
...
Note that the directory path C<src\> is printed by the script, the file
name by the VC compiler.
Changes Files:
tools/dev/cc_flags.pl
Ron
Index: tools/dev/cc_flags.pl
===================================================================
--- tools/dev/cc_flags.pl (revision 16271)
+++ tools/dev/cc_flags.pl (working copy)
@@ -112,7 +112,17 @@
}
# print "@ARGV\n";
- print "$cfile\n";
+
+ # Visual C++ already prints the source file name...
+ if ($ARGV[0] =~ /cl(?:\.exe)?/i) {
+ # ...but only the file name, so we print the path
+ # to the directory first
+ if ($cfile =~ /(.*[\/\\])/) {
+ print $1;
+ }
+ } else {
+ print "$cfile\n";
+ }
}
exit system(@ARGV) / 256;