Hi Cory, OK, I'll switch over to the developer's thread.
But it appears that the 50 character limit (or 51 character limit, as reported by Alex Gouaillard) is only a problem with a particular combination of vs2010 and cmake 2.8.3. For those of us with vs2008, it's just fine to have a 66 character (or longer) path. I would propose, then, that this error message not be for any and all versions of win32, but only for those compiler/cmake combinations where this bug exists. Otherwise, this limit is just overly restrictive. Thanks, Mark On Thu, May 3, 2012 at 2:24 PM, Cory Quammen <[email protected]> wrote: > Mark, > > I think the path length choice was made conservatively because no one > had the patience to figure out the exact length where things go wrong. > > The depth of the source tree, especially with the third-party > libraries, is more of a problem that are the file name lengths in ITK. > > It might be more reasonable to issue a warning rather than halt with > an error. You may want to propose this to the developers list to see > what others think. > > - Cory > > On Thu, May 3, 2012 at 5:13 PM, Mark Roden <[email protected]> wrote: >> But a path length of 66 works. >> >> It appears that this patch was for a particular compiler (vs2010) and >> a particular version of cmake (2.8.3). That's a much more specific >> issue than all win32 platforms; I'm on vs2008, and as I said, 66 >> characters works just fine. >> >> And I would be strongly in favor of making this a warning, rather than >> hard limit, if it's difficult/impossible to detect that particular >> combination of compiler/cmake versions. I don't, and never have had, >> an issue building in ITK in any random directory, regardless of path >> length-- maybe because I tend to keep my path lengths lower than 100 >> characters. >> >> But if this does continue to be an issue, is there some kind of style >> guide for path length? I see some really absurdly long filenames in >> there, and if it really is an issue with vs2010, then maybe that style >> should be enforced (along with all of the other commit rules). >> >> On Thu, May 3, 2012 at 2:04 PM, Cory Quammen <[email protected]> wrote: >>> Mark, >>> >>> The limit is there to save your sanity :-) >>> >>> Did you try to compile with a path length of 100 characters? When I >>> did, I ran into a file-not-found complaint by the compiler when >>> compiling GDCM. Then I checked to see that the file it is complaining >>> about does indeed exist. >>> >>> See the long email thread that led to this restriction here: >>> >>> http://www.itk.org/pipermail/insight-developers/2011-June/019268.html >>> >>> Basically, the relative paths generated by CMake and limitations in >>> the length of paths in Visual Studio lead to this limit. >>> >>> Cory >>> >>> On Thu, May 3, 2012 at 4:49 PM, Mark Roden <[email protected]> wrote: >>>> Hi all, >>>> >>>> I've just recompiled itk 4.0, and found that there's a 50 character >>>> path limit for win32. >>>> >>>> What's the logic behind this? I comment out that line, and everything >>>> works perfectly fine. >>>> >>>> The filename limit for windows is 255 (260 including the drive letter >>>> and trailing null), but each component of the path can be 255 >>>> characters long. MacOS has the same limit for HFS+, where each >>>> element is locked to 255, but the total path has to be 1024 or lower. >>>> (source: http://en.wikipedia.org/wiki/Comparison_of_file_systems). If >>>> you're not using windows-specific programming, but just treating the >>>> path as a string, there's a 255 character limit. >>>> >>>> With my base file path that's 66 characters long, the longest filename >>>> I can find is 146: >>>> >>>> C:\Users\mmroden\Documents\src\MyProjectsinQT\ExternalLibs\itk\ITK\Documentation\Migration\ConstNeighborhoodIteratorGetBoundaryConditionChange.xml >>>> >>>> That's a far cry from 255. >>>> >>>> Just how deep are the paths in ITK anyway? Is the directory tree >>>> really 205 characters long? Or is this just someone guessing without >>>> actually checking? >>>> >>>> The problem with this is that I want to incorporate ITK building as >>>> part of a build script, rather than having to checkin binary images >>>> into a repo. I'd have to add a portion to the script to remove the >>>> limit. >>>> >>>> What if it were just set to 100? >>>> >>>> Thanks, >>>> Mark >>>> _____________________________________ >>>> Powered by www.kitware.com >>>> >>>> Visit other Kitware open-source projects at >>>> http://www.kitware.com/opensource/opensource.html >>>> >>>> Kitware offers ITK Training Courses, for more information visit: >>>> http://www.kitware.com/products/protraining.php >>>> >>>> Please keep messages on-topic and check the ITK FAQ at: >>>> http://www.itk.org/Wiki/ITK_FAQ >>>> >>>> Follow this link to subscribe/unsubscribe: >>>> http://www.itk.org/mailman/listinfo/insight-users >>> >>> >>> >>> -- >>> Cory Quammen >>> Research Associate >>> Department of Computer Science >>> The University of North Carolina at Chapel Hill > > > > -- > Cory Quammen > Research Associate > Department of Computer Science > The University of North Carolina at Chapel Hill _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Kitware offers ITK Training Courses, for more information visit: http://kitware.com/products/protraining.php Please keep messages on-topic and check the ITK FAQ at: http://www.itk.org/Wiki/ITK_FAQ Follow this link to subscribe/unsubscribe: http://www.itk.org/mailman/listinfo/insight-developers
