Author: faridz
Date: Thu Apr 26 07:19:03 2007
New Revision: 532753

URL: http://svn.apache.org/viewvc?view=rev&rev=532753
Log:
2007-04-26 Farid Zaripov <[EMAIL PROTECTED]>

        STDCXX-398
        * projectdef.js (projectCreateVCProject): Added workarounds to build
        projects with ".obj" in name on MSVC 7.x

Modified:
    incubator/stdcxx/trunk/etc/config/windows/projectdef.js

Modified: incubator/stdcxx/trunk/etc/config/windows/projectdef.js
URL: 
http://svn.apache.org/viewvc/incubator/stdcxx/trunk/etc/config/windows/projectdef.js?view=diff&rev=532753&r1=532752&r2=532753
==============================================================================
--- incubator/stdcxx/trunk/etc/config/windows/projectdef.js (original)
+++ incubator/stdcxx/trunk/etc/config/windows/projectdef.js Thu Apr 26 07:19:03 
2007
@@ -331,6 +331,29 @@
     VCProject.ProjectGUID = createUUID();
     
     VCProject.AddPlatform(PLATFORM);
+
+    var FixedPrjName = PrjName;
+    var dotObj = ".obj";
+
+    var VC7xWknd = 0 <= PrjName.indexOf(dotObj)
+                && ("7" == VERSION || "7.1" == VERSION);
+
+    var PostBuildCmd = this.PostBuildCmd;
+
+    if (VC7xWknd)
+    {
+        FixedPrjName = FixedPrjName.replace(new RegExp(dotObj, "ig"), "_obj");
+        if (null != PostBuildCmd)
+            PostBuildCmd += "\r\n";
+        else
+            PostBuildCmd = "";
+
+        var srcDir = "$(OutDir)\\" + FixedPrjName;
+        var dstDir = "$(OutDir)\\" + PrjName;
+        PostBuildCmd += "md \"" + dstDir + "\"\r\n" +
+            "copy \"" + srcDir + "\\" + FixedPrjName + dotObj + "\" \"" + 
dstDir + "\\" + PrjName + dotObj + "\"\r\n" +
+            "copy \"" + srcDir + "\\buildlog.htm\" \"" + dstDir + "\"";
+    }
     
     for (var i = 0; i < confNames.length; ++i)
         VCProject.AddConfiguration(confNames[i]);
@@ -338,7 +361,7 @@
     var OutDir = this.OutDir != null ?
         ReplaceMacros(this.OutDir, prjMacros) : "%CONFIG%";
     var IntDir = this.IntDir != null ?
-        ReplaceMacros(this.IntDir, prjMacros) : OutDir + "\\" + PrjName;
+        ReplaceMacros(this.IntDir, prjMacros) : OutDir + "\\" + FixedPrjName;
 
     // add files
     for (var i = 0; i < this.FilterDefs.length; ++i)
@@ -448,6 +471,9 @@
             }
 
             compiler.UsePrecompiledHeader = pchNone;
+
+            if (VC7xWknd)
+                compiler.ObjectFile = "$(IntDir)/" + FixedPrjName + dotObj;
         }
 
         var linker = conf.Tools.Item("VCLinkerTool");
@@ -516,10 +542,10 @@
                 tool.Description = ReplaceMacros(this.PreBuildDesc, allMacros);
         }
 
-        if (null != this.PostBuildCmd)
+        if (null != PostBuildCmd)
         {
             var tool = conf.Tools.Item("VCPostBuildEventTool");
-            tool.CommandLine = ReplaceMacros(this.PostBuildCmd, allMacros);
+            tool.CommandLine = ReplaceMacros(PostBuildCmd, allMacros);
             if (null != this.PostBuildDesc)
                 tool.Description = ReplaceMacros(this.PostBuildDesc, 
allMacros);
         }


Reply via email to