[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