[nant-dev] ILASM task
Hi all, I've just written the ILASM task, but it does not work (of course, I'm doing something wrong). Giving the following build file: project name=OddOrEven default=build target name=build ilasm target=exe output=OddOrEven.exe sources basedir=. include name=MainClass.il/ /sources /ilasm /target /project ... the output is: [ilasm] Compiling 3 files to 'C:\Home\Projects\temp\.net\ilasm\OddOrEven\OddOrEven.exe'. Microsoft (R) .NET Framework IL Assembler. Version 1.1.4322.573 Copyright (C) Microsoft Corporation 1998-2002. All rights reserved. Assembling '@C:\DOCUME~1\GGRECO~1.ECH\LOCALS~1\Temp\tmpB13.tmp' , no listing file, to EXE -- '@C:\DOCUME~1\GGRECO~1.ECH\LOCALS~1\Temp\tmpB13.EXE' Could not open @C:\DOCUME~1\GGRECO~1.ECH\LOCALS~1\Temp\tmpB13.tmp * FAILURE * It looks like the CompilerBase class is not able to find the source files. Attached to this email you'll find the IlasmTask.cs file... What am I missing? Thanks, j3d. Giuseppe Greco ::agamura:: phone: +41 (0)91 604 67 65 mobile: +41 (0)76 390 60 32 email: [EMAIL PROTECTED] web:www.agamura.com // NAnt - A .NET build tool // Copyright (C) 2001-2002 Gerry Shaw // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // Giuseppe Greco ([EMAIL PROTECTED]) using System.IO; using System.Text.RegularExpressions; using NAnt.Core; using NAnt.Core.Attributes; using NAnt.Core.Types; using NAnt.Core.Util; namespace NAnt.DotNet.Tasks { /// summary /// Compiles ILASM programs. /// /summary /// example /// paraCompiles chelloworld.il/c to chelloworld.exe/c./para /// code /// ![CDATA[ /// ilasm target=exe output=helloworld.exe debug=true /// sources /// include name=helloworld.il / /// /sources /// /ilasm /// ]] /// /code /// /example [TaskName(ilasm)] [ProgramLocation(LocationType.FrameworkDir)] public class IlasmTask : CompilerBase { #region Private Instance Fields private bool _listing; private bool _noLogo; private bool _quiet; private bool _clock; // private FileInfo _keyFile; // private string _keySource; private string _subsystem; private string _flags; private string _alignment; private string _base; private bool _error; #endregion Private Instance Fields #region Private Static Fields private static Regex _classNameRegex = new Regex(@^((?comment/\*.*?(\*/|$))|[\s\.\{]+|class\s+(?class\w+)|(?keyword\w+))*); private static Regex _namespaceRegex = new Regex(@^((?comment/\*.*?(\*/|$))|[\s\.\{]+|namespace\s+(?namespace(\w+(\.\w+)*)+)|(?keyword\w+))*); #endregion Private Static Fields #region Public Instance Properties /// summary /// Specifies whether the compiler should type a formatted listing of /// the compilation result. The default is see langword=false /. /// /summary /// remarks /// para /// Corresponds to the c/LISTING/c flag. /// /para /// /remarks [TaskAttribute(listing)] [BooleanValidator()] public bool Listing { get { return _listing; } set { _listing = value; } } /// summary /// Specifies whether the compiler should suppress logo and copyright /// statements. The default is see langword=false /. /// /summary /// remarks /// para /// Corresponds to the c/NOLOGO/c flag. /// /para /// /remarks [TaskAttribute(nologo)] [BooleanValidator()] public bool NoLogo { get { return _noLogo; } set { _noLogo = value; } } /// summary /// Specifies whether the compiler should suppress the compilation /// progress report. The default is see langword=false /. /// /summary /// remarks /// para /// Corresponds to the c/QUIET/c flag. /// /para /// /remarks [TaskAttribute(quiet)] [BooleanValidator()]
Re: [nant-dev] ILASM task
Guis, I haven't looked at your source in detail yet but I think the problem is that ilasm.exe doesn't support the use of a response file. The core compilers : csc, vbc etc all take an @ argument: @file Read response file for more options And this is what CompilerBase uses to pass the commandline to the compiler tools. ilasm.exe takes no such paramater and thinks that '@C:\DOCUME~1\GGRECO~1.ECH\LOCALS~1\Temp\tmpB13.EXE' is the path to an il file. You may have to derive from ExternalprogramBase rather than CompilerBase although it will mean duplicating some of the functionality in CompilerBase. Ian Giuseppe Greco wrote: Hi all, I've just written the ILASM task, but it does not work (of course, I'm doing something wrong). Giving the following build file: project name=OddOrEven default=build target name=build ilasm target=exe output=OddOrEven.exe sources basedir=. include name=MainClass.il/ /sources /ilasm /target /project ... the output is: [ilasm] Compiling 3 files to 'C:\Home\Projects\temp\.net\ilasm\OddOrEven\OddOrEven.exe'. Microsoft (R) .NET Framework IL Assembler. Version 1.1.4322.573 Copyright (C) Microsoft Corporation 1998-2002. All rights reserved. Assembling '@C:\DOCUME~1\GGRECO~1.ECH\LOCALS~1\Temp\tmpB13.tmp' , no listing file, to EXE -- '@C:\DOCUME~1\GGRECO~1.ECH\LOCALS~1\Temp\tmpB13.EXE' Could not open @C:\DOCUME~1\GGRECO~1.ECH\LOCALS~1\Temp\tmpB13.tmp * FAILURE * It looks like the CompilerBase class is not able to find the source files. Attached to this email you'll find the IlasmTask.cs file... What am I missing? Thanks, j3d. Giuseppe Greco ::agamura:: phone: +41 (0)91 604 67 65 mobile: +41 (0)76 390 60 32 email: [EMAIL PROTECTED] web:www.agamura.com -- Ian MacLean, Developer, ActiveState, a division of Sophos http://www.ActiveState.com --- This SF.Net email sponsored by Black Hat Briefings Training. Attend Black Hat Briefings Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com ___ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers
Re: [nant-dev] ILASM task
I don't think it makes much sense to have this task inherit from CompilerBase anyway, no ? - Original Message - From: Ian MacLean [EMAIL PROTECTED] To: Giuseppe Greco [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Sent: Wednesday, June 30, 2004 11:35 AM Subject: Re: [nant-dev] ILASM task Guis, I haven't looked at your source in detail yet but I think the problem is that ilasm.exe doesn't support the use of a response file. The core compilers : csc, vbc etc all take an @ argument: @file Read response file for more options And this is what CompilerBase uses to pass the commandline to the compiler tools. ilasm.exe takes no such paramater and thinks that '@C:\DOCUME~1\GGRECO~1.ECH\LOCALS~1\Temp\tmpB13.EXE' is the path to an il file. You may have to derive from ExternalprogramBase rather than CompilerBase although it will mean duplicating some of the functionality in CompilerBase. Ian Giuseppe Greco wrote: Hi all, I've just written the ILASM task, but it does not work (of course, I'm doing something wrong). Giving the following build file: project name=OddOrEven default=build target name=build ilasm target=exe output=OddOrEven.exe sources basedir=. include name=MainClass.il/ /sources /ilasm /target /project ... the output is: [ilasm] Compiling 3 files to 'C:\Home\Projects\temp\.net\ilasm\OddOrEven\OddOrEven.exe'. Microsoft (R) .NET Framework IL Assembler. Version 1.1.4322.573 Copyright (C) Microsoft Corporation 1998-2002. All rights reserved. Assembling '@C:\DOCUME~1\GGRECO~1.ECH\LOCALS~1\Temp\tmpB13.tmp' , no listing file, to EXE -- '@C:\DOCUME~1\GGRECO~1.ECH\LOCALS~1\Temp\tmpB13.EXE' Could not open @C:\DOCUME~1\GGRECO~1.ECH\LOCALS~1\Temp\tmpB13.tmp * FAILURE * It looks like the CompilerBase class is not able to find the source files. Attached to this email you'll find the IlasmTask.cs file... What am I missing? Thanks, j3d. Giuseppe Greco ::agamura:: phone: +41 (0)91 604 67 65 mobile: +41 (0)76 390 60 32 email: [EMAIL PROTECTED] web:www.agamura.com -- Ian MacLean, Developer, ActiveState, a division of Sophos http://www.ActiveState.com --- This SF.Net email sponsored by Black Hat Briefings Training. Attend Black Hat Briefings Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com ___ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers --- This SF.Net email sponsored by Black Hat Briefings Training. Attend Black Hat Briefings Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com ___ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers
Re: [nant-dev] ILASM task
Don't you think that if we inherit from ExternalProgramBase we'd have too many redundancies? j3d. I don't think it makes much sense to have this task inherit from CompilerBase anyway, no ? - Original Message - From: Ian MacLean [EMAIL PROTECTED] To: Giuseppe Greco [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Sent: Wednesday, June 30, 2004 11:35 AM Subject: Re: [nant-dev] ILASM task Guis, I haven't looked at your source in detail yet but I think the problem is that ilasm.exe doesn't support the use of a response file. The core compilers : csc, vbc etc all take an @ argument: @file Read response file for more options And this is what CompilerBase uses to pass the commandline to the compiler tools. ilasm.exe takes no such paramater and thinks that '@C:\DOCUME~1\GGRECO~1.ECH\LOCALS~1\Temp\tmpB13.EXE' is the path to an il file. You may have to derive from ExternalprogramBase rather than CompilerBase although it will mean duplicating some of the functionality in CompilerBase. Ian Giuseppe Greco wrote: Hi all, I've just written the ILASM task, but it does not work (of course, I'm doing something wrong). Giving the following build file: project name=OddOrEven default=build target name=build ilasm target=exe output=OddOrEven.exe sources basedir=. include name=MainClass.il/ /sources /ilasm /target /project ... the output is: [ilasm] Compiling 3 files to 'C:\Home\Projects\temp\.net\ilasm\OddOrEven\OddOrEven.exe'. Microsoft (R) .NET Framework IL Assembler. Version 1.1.4322.573 Copyright (C) Microsoft Corporation 1998-2002. All rights reserved. Assembling '@C:\DOCUME~1\GGRECO~1.ECH\LOCALS~1\Temp\tmpB13.tmp' , no listing file, to EXE -- '@C:\DOCUME~1\GGRECO~1.ECH\LOCALS~1\Temp\tmpB13.EXE' Could not open @C:\DOCUME~1\GGRECO~1.ECH\LOCALS~1\Temp\tmpB13.tmp * FAILURE * It looks like the CompilerBase class is not able to find the source files. Attached to this email you'll find the IlasmTask.cs file... What am I missing? Thanks, j3d. Giuseppe Greco ::agamura:: phone: +41 (0)91 604 67 65 mobile: +41 (0)76 390 60 32 email: [EMAIL PROTECTED] web:www.agamura.com -- Ian MacLean, Developer, ActiveState, a division of Sophos http://www.ActiveState.com --- This SF.Net email sponsored by Black Hat Briefings Training. Attend Black Hat Briefings Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com ___ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers --- This SF.Net email sponsored by Black Hat Briefings Training. Attend Black Hat Briefings Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com ___ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers Giuseppe Greco ::agamura:: phone: +41 (0)91 604 67 65 mobile: +41 (0)76 390 60 32 email: [EMAIL PROTECTED] web:www.agamura.com --- This SF.Net email sponsored by Black Hat Briefings Training. Attend Black Hat Briefings Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com ___ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers
[nant-dev] [ nant-Bugs-982685 ] Solution task - LoadProjects quits too soon
Bugs item #982685, was opened at 2004-06-30 11:27 Message generated for change (Settings changed) made by jrayner You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=402868aid=982685group_id=31650 Category: Tasks Group: cvs Status: Open Resolution: None Priority: 5 Submitted By: John Rayner (jrayner) Assigned to: Nobody/Anonymous (nobody) Summary: Solution task - LoadProjects quits too soon Initial Comment: I'm using the 20040525 nightly build of NAnt 0.85. In Solution.cs in the NAnt.VSNet project, the LoadProjects routine will return as soon as it matches an excluded project. This means that any projects in the solution file which occur after the excluded project are not loaded. The overall result of this is that the build of the Solution fails and reports circular dependancy. -- You can respond by visiting: https://sourceforge.net/tracker/?func=detailatid=402868aid=982685group_id=31650 --- This SF.Net email sponsored by Black Hat Briefings Training. Attend Black Hat Briefings Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com ___ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers
[nant-dev] ILASM Task
Hi guys, I've given a lock at the CompilerBase and ExternalProgramBase classes... and I think it would be better to modify the CompilerBase class instead of inheriting from ExternalProgramBase... What's your opinion? j3d. Giuseppe Greco ::agamura:: phone: +41 (0)91 604 67 65 mobile: +41 (0)76 390 60 32 email: [EMAIL PROTECTED] web:www.agamura.com --- This SF.Net email sponsored by Black Hat Briefings Training. Attend Black Hat Briefings Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com ___ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers
Re: [nant-dev] ILASM Task
Giuseppe Greco wrote: Hi guys, I've given a lock at the CompilerBase and ExternalProgramBase classes... and I think it would be better to modify the CompilerBase class instead of inheriting from ExternalProgramBase... What's your opinion? Its hard to say without seeing what changes you propose making to CompilerBase. There are substantial differences between the supported command args of ilasm and the other compilers. ilasm has no -r flag for example so you will need to hde the references fileset. Why don't you lay out what you think would need to be changed in CompilerBase to make it workable ? Ian j3d. Giuseppe Greco ::agamura:: phone: +41 (0)91 604 67 65 mobile: +41 (0)76 390 60 32 email: [EMAIL PROTECTED] web:www.agamura.com --- This SF.Net email sponsored by Black Hat Briefings Training. Attend Black Hat Briefings Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com ___ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers -- Ian MacLean, Developer, ActiveState, a division of Sophos http://www.ActiveState.com --- This SF.Net email sponsored by Black Hat Briefings Training. Attend Black Hat Briefings Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com ___ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers
Re: [nant-dev] ILASM Task
- Original Message - From: Giuseppe Greco [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, June 30, 2004 3:16 PM Subject: [nant-dev] ILASM Task Hi guys, I've given a lock at the CompilerBase and ExternalProgramBase classes... and I think it would be better to modify the CompilerBase class instead of inheriting from ExternalProgramBase... What exact functionality of CompilerBase do you need for the ilasm task ? The resource compilation stuff ? What else ? Gert --- This SF.Net email sponsored by Black Hat Briefings Training. Attend Black Hat Briefings Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com ___ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers
Re: [nant-dev] ILASM Task
Gert Driesen wrote: - Original Message - From: Giuseppe Greco [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, June 30, 2004 3:16 PM Subject: [nant-dev] ILASM Task Hi guys, I've given a lock at the CompilerBase and ExternalProgramBase classes... and I think it would be better to modify the CompilerBase class instead of inheriting from ExternalProgramBase... What exact functionality of CompilerBase do you need for the ilasm task ? The resource compilation stuff ? What else ? actually the resource compilation stuff does not apply. the /resources flag of ilasm is for embedding a win32 resource block. .net resources are defined as metadata in the il source. See http://www.gotdotnet.com/Community/MessageBoard/Thread.aspx?id=151718 Ian Gert --- This SF.Net email sponsored by Black Hat Briefings Training. Attend Black Hat Briefings Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com ___ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers -- Ian MacLean, Developer, ActiveState, a division of Sophos http://www.ActiveState.com --- This SF.Net email sponsored by Black Hat Briefings Training. Attend Black Hat Briefings Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com ___ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers
Re: [nant-dev] ILASM Task
- Original Message - From: Ian MacLean [EMAIL PROTECTED] To: Gert Driesen [EMAIL PROTECTED] Cc: Giuseppe Greco [EMAIL PROTECTED]; [EMAIL PROTECTED] Sent: Wednesday, June 30, 2004 4:17 PM Subject: Re: [nant-dev] ILASM Task Gert Driesen wrote: - Original Message - From: Giuseppe Greco [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, June 30, 2004 3:16 PM Subject: [nant-dev] ILASM Task Hi guys, I've given a lock at the CompilerBase and ExternalProgramBase classes... and I think it would be better to modify the CompilerBase class instead of inheriting from ExternalProgramBase... What exact functionality of CompilerBase do you need for the ilasm task ? The resource compilation stuff ? What else ? actually the resource compilation stuff does not apply. the /resources flag of ilasm is for embedding a win32 resource block. .net resources are defined as metadata in the il source. See http://www.gotdotnet.com/Community/MessageBoard/Thread.aspx?id=151718 Don't have time to look into this much further, but I don't see CompilerBase and a task for ilasm having much in common ... Gert --- This SF.Net email sponsored by Black Hat Briefings Training. Attend Black Hat Briefings Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com ___ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers
Re: [nant-dev] ILASM Task
Gert Driesen wrote: - Original Message - From: Ian MacLean [EMAIL PROTECTED] To: Gert Driesen [EMAIL PROTECTED] Cc: Giuseppe Greco [EMAIL PROTECTED]; [EMAIL PROTECTED] Sent: Wednesday, June 30, 2004 4:17 PM Subject: Re: [nant-dev] ILASM Task Gert Driesen wrote: - Original Message - From: Giuseppe Greco [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Wednesday, June 30, 2004 3:16 PM Subject: [nant-dev] ILASM Task Hi guys, I've given a lock at the CompilerBase and ExternalProgramBase classes... and I think it would be better to modify the CompilerBase class instead of inheriting from ExternalProgramBase... What exact functionality of CompilerBase do you need for the ilasm task ? The resource compilation stuff ? What else ? actually the resource compilation stuff does not apply. the /resources flag of ilasm is for embedding a win32 resource block. .net resources are defined as metadata in the il source. See http://www.gotdotnet.com/Community/MessageBoard/Thread.aspx?id=151718 Don't have time to look into this much further, but I don't see CompilerBase and a task for ilasm having much in common ... I tend to agree. Looking quickly thru compilerBase I see the following attributes/elements: lib references resources modules main win32icon define target -- ilasm uses either /exe or /dll warnaserror In CompilerBase that have no relevance to ilasm. In fact the only thing that would be of any possible benefit is the NeedsCompiling method and even that is full of checks for resources/references etc. I think you'll be much better off using ExternalProgramBase and copying across anything common. Ian --- This SF.Net email sponsored by Black Hat Briefings Training. Attend Black Hat Briefings Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com ___ nant-developers mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-developers