Fix to allow running msvc from commandline in linux

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Changelog:
   programs/wcmd/wcmdmain.c: make 'cmd /c cl /MUMBLE foo.c' pass /MUMBLE to cl
   LGPL.

-------

Here's how I use msvc's compiler from the Linux shell.

In ~/bin create the following three files:

--- cl ---
wine wcmd /c F:/bin/cl.bat "$@"

--- cl.bat ---
call F:/bin/vcvars32.bat

cl %1 %2 %3 %4 %5

--- vcvars32.bat ---

(same as one installed by msvc elsewhere, but with quotes
removed -- wcmd doesn't deal well with quotes.  Hopefully
wcmd will be fixed soon, or is already fixed, to handle
quotes properly.)

Then you can just build demo programs under MSVC by saying

cl foo.c

in bash.  This is handy for checking portability of wine
conformance tests.

Unfortunately, you can't pass options to cl, e.g.
cl /DSTANDALONE foo.c
without the attached patch.
- Dan

--
Dan Kegel
http://www.kegel.com
http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=78045
Index: programs/wcmd/wcmdmain.c
===================================================================
RCS file: /home/wine/wine/programs/wcmd/wcmdmain.c,v
retrieving revision 1.22
diff -u -p -r1.22 wcmdmain.c
--- programs/wcmd/wcmdmain.c	11 Feb 2003 22:01:11 -0000	1.22
+++ programs/wcmd/wcmdmain.c	22 Feb 2003 19:37:48 -0000
@@ -56,14 +56,14 @@ HANDLE h;
 
   args[0] = param[0] = '\0';
   if (argc > 1) {
-    for (i=1; i<argc; i++) {
-      if (argv[i][0] == '/') {
+    /* interpreter options must come before the command to execute. 
+     * Any options after the command are command options, not interpreter options.
+     */
+    for (i=1; i<argc && argv[i][0] == '/'; i++)
         strcat (args, argv[i]);
-      }
-      else {
+    for (; i<argc; i++) {
         strcat (param, argv[i]);
         strcat (param, " ");
-      }
     }
   }
 

[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux