[Insight-developers] PROPOSAL: Flattening headers directory structure at Install time

Mathieu Malaterre mathieu.malaterre at gmail.com
Thu Apr 17 11:37:17 EDT 2008


On Thu, Apr 17, 2008 at 5:30 PM, Luis Ibanez <luis.ibanez at kitware.com> wrote:
>
>  We have found a couple of issues with the method
>  that we currently use for installing the ITK headers.
>
>  The current method preserves the tree structure of
>  the source three, namely:
>
>
>             Common
>             BasicFilters
>             Algorithms
>             etc....
>
>
>  The consequence is that projects that use ITK must
>  have all these directories in their include paths.
>  This results in something like 10 different directories
>  being added to the include paths.
>
>  Since there are no name conflicts in the header files,
>  we could copy all of them in a single directory.
>
>  This will make a lot simpler for users to refer to
>  ITK since they will only need to add one include
>  directory to their path, and only one directory
>  for the libraries.
>
>  ITK coding style doesn't use the subdirectories
>  explicitly. That is, we never do
>
>    (A)  #include "Common/itkImage.h"
>
>  instead we do:
>
>    (B)    #include "itkImage.h"
>
>
>  Which means that there shouldn't be any impact
>  on ITK code itself.
>
>  The potential problem will be for uses who may
>  have decided to use the notation (A) instead of
>  the recommended notation (B).
>
>
>  This is a significant improvement for projects
>  that not only used ITK but also link to other
>  three or four libraries (e.g. VTK, QT, ...)
>  and may reach limits of command line lengths.
>
>
>  We could target ITK 3.8 for making this change
>  on the installation process.
>
>
>
>   Any thoughts ?

Yes: stop supporting broken systems...

More seriously this is completely handled transparently by CMake(*).
Anyway you might avoid this problem, but I am pretty sure that having
~2048 files in a single directory is *also* an issue on those broken
systems.

2 cents,
-- 
Mathieu
(*) oh I wish I had target_include_directories ;)


More information about the Insight-developers mailing list