You are viewing a plain text version of this content. The canonical link for it is here.
Posted to npanday-commits@incubator.apache.org by jf...@apache.org on 2011/07/02 02:41:21 UTC

svn commit: r1142146 - /incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/compiler/impl/DefaultCompiler.java

Author: jfallows
Date: Sat Jul  2 02:41:21 2011
New Revision: 1142146

URL: http://svn.apache.org/viewvc?rev=1142146&view=rev
Log:
Fix for NPANDAY-449 making Visual Studio build tasks optional rather than required references during compilation

Modified:
    incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/compiler/impl/DefaultCompiler.java

Modified: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/compiler/impl/DefaultCompiler.java
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/compiler/impl/DefaultCompiler.java?rev=1142146&r1=1142145&r2=1142146&view=diff
==============================================================================
--- incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/compiler/impl/DefaultCompiler.java (original)
+++ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/executable/compiler/impl/DefaultCompiler.java Sat Jul  2 02:41:21 2011
@@ -23,6 +23,7 @@ import org.codehaus.plexus.util.FileUtil
 
 import java.util.Date;
 import java.util.List;
+import java.util.Arrays;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.io.File;
@@ -178,12 +179,18 @@ public final class DefaultCompiler
         if ( compilerContext.getCompilerRequirement().getVendor().equals( Vendor.MICROSOFT ) &&
             compilerContext.getCompilerRequirement().getFrameworkVersion().equals( "4.0" ) )
         {
-            String wcfRef = "/reference:" + System.getenv( "SystemRoot" ) +
-                "\\Microsoft.NET\\Framework\\v4.0.30319\\";
+            String frameworkPath = System.getenv( "SystemRoot" ) + "\\Microsoft.NET\\Framework\\v4.0.30319\\";
             //TODO: This is a hard-coded path: Don't have a registry value either.
-            commands.add( wcfRef + "Microsoft.Build.Tasks.v4.0.dll" );
-            commands.add( wcfRef + "Microsoft.Data.Entity.Build.Tasks.dll" );
-            commands.add( wcfRef + "Microsoft.VisualC.STLCLR.dll" );
+            List<String> libraryNames = Arrays.asList("Microsoft.Build.Tasks.v4.0.dll", 
+                "Microsoft.Data.Entity.Build.Tasks.dll", "Microsoft.VisualC.STLCLR.dll");
+            for (String libraryName : libraryNames) 
+            {
+                String libraryFullName = frameworkPath + libraryName;
+                if (new File( libraryFullName ).exists())
+                {
+                    commands.add( "/reference:" + libraryFullName );
+                }
+            }
         } 
         if ( compilerContext.getKeyInfo().getKeyFileUri() != null )
         {