Jaroslaw Kowalski
Fri, 12 Sep 2003 13:30:23 -0700
OK. I withdraw my negative vote, now I can see the need for such tweaks. But I think Martin's idea could be extended to all-singing-and-dancing syntax like:
===================================================
<solution configuration="Release" outputdir="${output.dir}"
includevsfolders="false">
<projects>
<includes name="${build.dir}/**/*.csproj"/>
</projects>
<assemblyfolders>
<includes name="${output.dir}"/>
<includes name="${nunit.dir}"/>
</assemblyfolders>
<projectoverrides>
<project name="**/*.csproj">
<parameter name="OutputPath" value="some_path" />
</allprojects>
<project name="B.csproj">
<parameter name="CompilerCodePage" value="1250" />
</project>
<project name="A.csproj" configuration="release">
<parameter name="OutputPath" value="other_path1" />
</project>
<project name="A.csproj" configuration="debug">
<parameter name="OutputPath" value="some_other_path" />
<parameter name="IgnoreWarnings" value="CS1234,CS2345" />
</project>
</projectoverrides>
</solution>
===================================================
Maybe this could even be extended down to the file level....
This way you'd be able to override absolutely all parameters from *.??proj
files both for debug and release builds with quite readable syntax.
What do you think?
Jarek
----- Original Message -----
From: "Matthew Mastracci" <[EMAIL PROTECTED]>
To: "Martin Aliger" <[EMAIL PROTECTED]>
Cc: "Jaroslaw Kowalski" <[EMAIL PROTECTED]>; "Gert Driesen"
<[EMAIL PROTECTED]>; "!nant" <[EMAIL PROTECTED]>
Sent: Friday, September 12, 2003 5:54 PM
Subject: Re: [nant-dev] solution task addin
> I agree with Martin. Sometimes you need to override a build setting on
> your build machine. At our shop, we tag each build with a string
> version that doesn't fit Microsoft's idea of a version number. This
> produces a warning and, on assemblies that build with warning = error, a
> build failure!
>
> It's easier for us to add the /nowarn: flag on each assembly at build
> time, rather than at development time (imagine adding this flag to 75 C#
> projects :)).
>
> The solution task was never designed to operate specifically like
> VS.NET, but rather with the ability to build VS.NET compatible files and
> offering a great deal more functionality. This makes up for the lack of
> functionality that Microsoft has given VS.NET's build process. I'm all
> for adding any functionality that allows me to customize my build further.
>
> See this link for some more info:
>
> http://nant.sourceforge.net/wiki/index.php/SolutionTask
>
> Martin Aliger wrote:
>
> >Hi Jarek,
> >
> >
> >
> >>Personally I think it's a bad idea to have extensions like this because
> >>
> >>
> >they
> >
> >
> >>change semantics of <solution> task from something very simple (do it
like
> >>VS.NET does) to something quite difficult to follow.
> >>
> >>
> >
> >Maybe you need to build exacly what solution says. But I need to override
> >some settings. For example output path (outputdir attribute). This
overrides
> >something, which is in .csproj. It is handy in some situations. For the
same
> >reason could be handy to specify other compiler options. Good point by
Matt,
> >that it could be specified by compiler (c#/vb), though.
> >
> >As I see <solution> task, it is something that take vs solutions or
projects
> >and integrate it into nant. Level on which you integrate should be
> >adjustable. Someone want to just build that solution file (build win
project
> >on Linux without vs), someone want to use just file list from csproj and
> >override all other options. IMHO current implementation fullfil this idea
> >(to some extent).
> >
> >
> >
> >>I've made a quick scan through all csc.exe options that cannot be set in
> >>VS.NET by searching through MSDN for "This compiler option is
unavailable
> >>
> >>
> >in
> >
> >
> >>Visual Studio.". And I see only four options that might be useful to add
> >>this way:
> >>
> >>/utf8output
> >>/noconfig
> >>/codepage
> >>/fullpaths
> >>
> >>any other options (there are 14 which aren't settable through VS.NET)
> >>
> >>
> >don't
> >
> >
> >>make sense since they would change the semantics of the build or aren't
> >>usable with NAnt.
> >>
> >>
> >
> >True. There could be more options in future, or more options in another
> >compiler (mono) and you want to use it for some reason. Why update
.csproj
> >when you could update .build file? For build servers where csprojs are
> >submitted by developes you will need to read and change their csprojs. I
do
> >not like this much...
> >
> >
> >
> >>I vote against the patch.
> >>
> >>Martin, if you have problems with the codepage - use UTF-8 for source
> >>
> >>
> >files
> >
> >
> >>or change your system locale. The best way would be to move all
> >>language-specific elements to a separate resource XML file (*.resx)
> >>
> >>
> >because
> >
> >
> >>XML files preserve encoding informations.
> >>
> >>To save your file as UTF-8:
> >>
> >>VS.NET => File => Advanced Save Options => Encoding => Unicode (UTF-8
with
> >>signature)
> >>
> >>
> >
> >Oh. Thanks! I do not know about this vs feature. resx havn't problem with
> >this, but embedded xmldoc have :-(.
> >
> >Martin
> >
> >
> >
> >
> >>Jarek
> >>
> >>----- Original Message -----
> >>From: "Gert Driesen" <[EMAIL PROTECTED]>
> >>To: "Martin Aliger" <[EMAIL PROTECTED]>; "! nant"
> >><[EMAIL PROTECTED]>
> >>Sent: Friday, September 12, 2003 2:19 PM
> >>Subject: Re: [nant-dev] solution task addin
> >>
> >>
> >>
> >>
> >>>I'll commit it later today.
> >>>
> >>>Thanks,
> >>>
> >>>Gert
> >>>
> >>>----- Original Message -----
> >>>From: "Martin Aliger" <[EMAIL PROTECTED]>
> >>>To: "! nant" <[EMAIL PROTECTED]>
> >>>Sent: Friday, September 12, 2003 2:04 PM
> >>>Subject: Re: [nant-dev] solution task addin
> >>>
> >>>
> >>>
> >>>
> >>>>Here it is reworked. Looks much nicer now :)
> >>>>
> >>>>
> >>>><solution configuration="Release" outputdir="${output.dir}"
> >>>>includevsfolders="false">
> >>>> <projects>
> >>>> <includes name="${build.dir}/**/*.csproj"/>
> >>>> </projects>
> >>>> <assemblyfolders>
> >>>> <includes name="${output.dir}"/>
> >>>> <includes name="${nunit.dir}"/>
> >>>> </assemblyfolders>
> >>>> <compilerargs>
> >>>> <arg value="/codepage:1250"/>
> >>>> </compilerargs>
> >>>></solution>
> >>>>
> >>>>
> >>>>Martin
> >>>>
> >>>>----- Original Message -----
> >>>>From: "Martin Aliger" <[EMAIL PROTECTED]>
> >>>>To: "Gert Driesen" <[EMAIL PROTECTED]>; "! nant"
> >>>><[EMAIL PROTECTED]>
> >>>>Sent: Friday, September 12, 2003 1:08 PM
> >>>>Subject: Re: [nant-dev] solution task addin
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>>>use BuildElementCollection("compilerargument" or "compilerargs")
> >>>>>>
> >>>>>>
> >>>instead
> >>>
> >>>
> >>>>>of [BuildElementArray("arg")]
> >>>>>Ok. I'll rework it.
> >>>>>
> >>>>>
> >>>>>
> >>>>>>PS. can you also change your code format to use brackets on the
> >>>>>>
> >>>>>>
> >same
> >
> >
> >>>>line,
> >>>>
> >>>>
> >>>>>instead of on the next line ...
> >>>>>sorry for that. I was trying hard, but we use different code
> >>>>>
> >>>>>
> >>convention
> >>
> >>
> >>>>here
> >>>>
> >>>>
> >>>>>(similar to VS default) to I sometimes forget it...
> >>>>>
> >>>>>
> >>>>>----- Original Message -----
> >>>>>From: Gert Driesen
> >>>>>To: Martin Aliger ; ! nant
> >>>>>Sent: Friday, September 12, 2003 1:08 PM
> >>>>>Subject: Re: [nant-dev] solution task addin
> >>>>>
> >>>>>
> >>>>>Look very good, but I have some remarks :
> >>>>>
> >>>>>use BuildElementCollection("compilerargument" or "compilerargs")
> >>>>>
> >>>>>
> >>instead
> >>
> >>
> >>>>of
> >>>>
> >>>>
> >>>>>[BuildElementArray("arg")]
> >>>>>
> >>>>>that will :
> >>>>>
> >>>>>- make it clear that those are argument that will be passed to the
> >>>>>
> >>>>>
> >>>>compiler
> >>>>
> >>>>
> >>>>>- allow us to use a more structured build layout
> >>>>>
> >>>>><solution ...>
> >>>>> <projects ...>
> >>>>> ...
> >>>>> </project>
> >>>>> <compilerarguments> | <compilerargs>
> >>>>> <arg value="....." />
> >>>>> <arg value="...." />
> >>>>> </compilerarguments> | </compilerargs>
> >>>>></solution>
> >>>>>
> >>>>>why not rename GetCSCArguments to GetCompilerArguments, as these
> >>>>>
> >>>>>
> >>>arguments
> >>>
> >>>
> >>>>>will also be useful for other compilers (VB.NET).
> >>>>>
> >>>>>Keep up the good work !!!
> >>>>>
> >>>>>Gert
> >>>>>
> >>>>>PS. can you also change your code format to use brackets on the same
> >>>>>
> >>>>>
> >>>line,
> >>>
> >>>
> >>>>>instead of on the next line ...
> >>>>>----- Original Message -----
> >>>>>From: Martin Aliger
> >>>>>To: ! nant
> >>>>>Sent: Friday, September 12, 2003 11:35 AM
> >>>>>Subject: [nant-dev] solution task addin
> >>>>>
> >>>>>
> >>>>>Hi all,
> >>>>>
> >>>>>Again, I propose an addin into solution task. It enables use of
> >>>>>
> >>>>>
> >extra
> >
> >
> >>>>>parameters for csc task as in this case:
> >>>>>
> >>>>> <solution configuration="Release" outputdir="${output.dir}"
> >>>>>includevsfolders="false">
> >>>>> <projects>
> >>>>> <includes name="${build.dir}/**/*.csproj"/>
> >>>>> </projects>
> >>>>> <assemblyfolders>
> >>>>> <includes name="${output.dir}"/>
> >>>>> <includes name="${nunit.dir}"/>
> >>>>> </assemblyfolders>
> >>>>> <arg value="/codepage:1250"/>
> >>>>> </solution>
> >>>>>
> >>>>>
> >>>>>adding extra /codepage:1250 to csc calls. This is needed, when .cs
> >>>>>
> >>>>>
> >>files
> >>
> >>
> >>>>are
> >>>>
> >>>>
> >>>>>in another codepage than ascii, unicode or utf-8.
> >>>>>
> >>>>>
> >>>>>This could be used for other switches as well! Hope you'll like it
> >>>>>
> >>>>>
> >:)
> >
> >
> >>>>>Martin
> >>>>>
> >>>>>
> >>>>>
> >>>
> >>>-------------------------------------------------------
> >>>This sf.net email is sponsored by:ThinkGeek
> >>>Welcome to geek heaven.
> >>>http://thinkgeek.com/sf
> >>>_______________________________________________
> >>>nant-developers mailing list
> >>>[EMAIL PROTECTED]
> >>>https://lists.sourceforge.net/lists/listinfo/nant-developers
> >>>
> >>>
> >>>
> >>
> >>
> >>
> >
> >
> >
> >
> >
>
>
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers