Odd that you mention config files.  I was just thinking about this
today.

What about having attributes on a task that are tied to a app.config
file and automatically set?  For the cl, lib, etc. tasks, I need to know
the path to the compilers and linkers.  Sure, it's probably in the PATH
(and that's what I currently assume), but when testing new compilers I
occasionally have multiple versions installed and I need to switch back
and forth.  Plus, I hate to have build things dependent on environment
variables.  I'd much rather it all be in one configuration file I can
control.

Other nant wide params, non-task related items such as the case
sensitivity flag could go in there as well.

Just a thought.  I haven't really thought the whole thing through yet,
especially when moving between machines and platforms.

Eric.

> -----Original Message-----
> From: Kevin Dente [mailto:[EMAIL PROTECTED]] 
> Sent: Friday, April 12, 2002 6:43 PM
> To: [EMAIL PROTECTED]
> Subject: [nant-dev] RE: FileSet question
> 
> 
> 
> 
> As the original poster of the case-sensitive question,
> I may as well chime in with my two cents.
> 
> Generally, people seem to agree that having a
> case-insensitive option is a good thing, which is
> great. After wasting half an hour trying to figure out
> why my build file wasn't working, only to find out
> that it was because file names were case-sensitive,
> I'd be happy if other people were spared that hassle.
> We Windows folk are deeply indoctrinated with
> case-insensitive filenames, and the thought that it
> could behave otherwise never really crossed my mind.
> 
> As for the mechanism for configuring case-sensitivity,
> I'm not sure I'm crazy about the fileset attribute
> option, for a couple of reasons:
> 
> 1) Case-sensitivity/insensitivity isn't really a
> project or fileset issue, it's an environment issue.
> The file system that you're running on either is or
> isn't case-sensitive, and that fact isn't really
> coupled to the definition of the fileset. 
> 
> 2) Having to set an option on each fileset would be
> onerous - after all, if I'm working with a
> case-insensitive platform, why introduce the risk of
> missing a setting and therefore breaking things. It
> just increases the chance for user error.
> 
> 3) If you truly want platform-independence, then
> wouldn't it be better to not force people to change
> their build files based on the platform that they are
> on?
> 
> Obviously, the ideal solution would be for Nant to
> detect whether the file system is case-sensitive an
> adjust accordingly. However, I don't know of a generic
> way to discover that in .Net. You can P/Invoke a call
> to the Win32 function GetVolumeInformation, but that
> would be decidedly platform-dependent.
> 
> I guess my second choice would be an app.config type
> setting, which would be global. However, as far I've
> seen, Nant doesn't use a config file for anything at
> this point, so I don't know if that's a solution that
> would be considered.
> 
> 
> 
> 
> 
> 
> 
> ---------------------------------------------
> Upon reflection, I will agree that a global variable
> does pollute too much.
>  Putting it at the FileSet level is a good place.
>  
>  However, I'm not clear on your opinion on the default
> behavior in case the attribute is not
> specified.
>  I'm going to assume that you believe the default
> behavior should be case sensitive
> regardless of platform.
>  
>  If that is the case, I disagree, but offer a
> suggestion which may provide a middle ground.
>  How about if the behavior is thus:
>  On a case-sensitive OS it is just that, case
> sensitive.
>  On a case-insensitive OS, the default is case
> insensitive, BUT with a very apparent nant
> warning at build time if the default had to be used
> and case sensitivity consideration was
> required to match the source files with the fileset
> patterns.
>  
>  
>  ____________
>  Andy Smith
>  Chief Code Monkey 
>  
>  -----Original Message-----
>  From: Gerry Shaw [mailto:[EMAIL PROTECTED]]
>  Sent: Tuesday, April 09, 2002 12:57 PM
>  To: Andy Smith; [EMAIL PROTECTED]
>  Subject: RE: [nant-dev] RE: FileSet question - need
> feedback
>  
>  
>  > Stated simply, the question was why is a fileset
> case sensitive, 
>  > as it seemed like incorrect behavior to the
> developer who asked 
>  > the question.
>  >
>  > My opinion is that this is, indeed, incorrect
> behavior.
>  > The fact that a filename matches on one OS and
> doesn't on the 
>  > other, does not mean that one is _wrong_ it means
> that they 
>  > are _different_. Arbitrarily choosing to break the
> semantics 
>  > for one OS is unfair to the developers working on
> that 
>  > platform. Choosing to break the semantics of the
> by-far 
>  > majority OS seems more like an emotional decision
> rather than 
>  > a logical one.
>  > 
>  > My proposed solution is to offer a project level
> option ( 
>  > hopefully set in the .build file and overridden
> with a 
>  > command line option ) which decides the case
> sensitivity 
>  > issue. If the option is not set, then it should
> behave 
>  > according to the rules of the OS. With this, then
> developers 
>  > who know they will be dealing with build files on
> different 
>  > OS's ( which I'm willing to bet is a very uncommon
> scenario ) 
>  > could enforce Unix restrictions on windows
> machines.
>  
>  
>  My suggestion is to add a casesensitive="true|false"
> attribute to the
>  fileset element.  This seems like a reasonable
> compromise that doesn't
>  polute the rest of nant with a global variable. I
> shun the idea of
>  adding a special global setting for this because it
> just opens the doors
>  to a zillion other options.  
>  
>  I also like the idea that it's a bit of a pain to do
> because you really
>  should treat files as case sensitive and it might
> make people think its
>  easier to just clean up their file set patterns then
> to add this switch.
>  
>  A huge benefit for nant is that it can make cross
> platform build files
>  from the start.  Once you make a buildfile you don't
> have to worry about
>  it working on a different platform you haven't tested
> on - it should
>  just work.  Without this we might as well go back to
> writing shell
>  scripts.
>  
>  That said I'm still open to other opinions and would
> like to hear what
>  other people think.
>  

_______________________________________________
Nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers

Reply via email to