[svn] r7513: nemerle/trunk/ncc: CompilationOptions.n generation/HierarchyEmitter.n

nazgul svnadmin at nemerle.org
Sun Mar 4 21:28:05 CET 2007


Log:
Support for unmanaged resources (patch by apanteleev)

Author: nazgul
Date: Sun Mar  4 21:28:03 2007
New Revision: 7513

Modified:
   nemerle/trunk/ncc/CompilationOptions.n
   nemerle/trunk/ncc/generation/HierarchyEmitter.n

Modified: nemerle/trunk/ncc/CompilationOptions.n
==============================================================================
--- nemerle/trunk/ncc/CompilationOptions.n	(original)
+++ nemerle/trunk/ncc/CompilationOptions.n	Sun Mar  4 21:28:03 2007
@@ -63,6 +63,7 @@
     public mutable DoPrintStats : bool;
     public mutable LexerStoreComments : bool;
 
+    public mutable UnmanagedResource : string;
     public mutable LinkedResources : list [string];
     public mutable EmbeddedResources : list [string];
     public mutable ReferencedLibraries : list [string];
@@ -125,6 +126,7 @@
       IndentationSyntax = false;
       DoPrintStats = false;
       LexerStoreComments = false;
+      UnmanagedResource = null;
       LinkedResources = [];
       EmbeddedResources = [];
       ReferencedLibraries = [];
@@ -368,6 +370,16 @@
                        LexerStoreComments = true;
                      }),
 
+        Getopt.CliOption.String (name = "-win32-resource",
+                       aliases = ["-win32res"],
+                       help = "Embed unmanaged resource file to output (only one allowed)",
+                       handler = fun (x) {
+                         if(this.UnmanagedResource == null)
+                           this.UnmanagedResource = x
+                         else
+                           Message.Error("only one unmanaged resource can be embedded")
+                       }),
+
         Getopt.CliOption.String (name = "-resource",
                        aliases = ["-res"],
                        help = "Embed resource file to output",

Modified: nemerle/trunk/ncc/generation/HierarchyEmitter.n
==============================================================================
--- nemerle/trunk/ncc/generation/HierarchyEmitter.n	(original)
+++ nemerle/trunk/ncc/generation/HierarchyEmitter.n	Sun Mar  4 21:28:03 2007
@@ -185,6 +185,20 @@
             Message.Error ("Could not link resource: " + e.Message);
         }
       }
+    
+      def uresource = Manager.Options.UnmanagedResource;
+      when(uresource != null) {
+        try {
+          _module_builder.DefineUnmanagedResource(uresource);
+        }
+        catch {
+          | _ is FileNotFoundException =>
+            Message.Error("Could not find resource" + uresource);
+          | e is System.ArgumentException =>
+            Message.Error($"Could not embed unmanaged resource $uresource: $(e.Message)");
+        }
+      }
+
     }
 
     /**
@@ -273,6 +287,9 @@
         | e is IOException =>
           Message.Error ($"could not write to output file `$(this._OutputFileName)'"
                          " -- `$(e.Message)'")  
+                         
+        | e is System.Runtime.InteropServices.COMException =>
+            Message.Error($"Problems saving assembly: $(e.Message)");
       }
     }
 



More information about the svn mailing list