[Insight-developers] Adding missing PROJECT declarations to ITK

Hans Johnson hans-johnson at uiowa.edu
Wed Jun 10 10:56:56 EDT 2009


Brad,

Thanks for the clarifications.  We are trying to figure out how the Xcode
and Kdevelop environments are being set up based on those PROJECT
statements.  Right now, it is hard to find the source files in the Xcode
environment.  I've mis-interpreted how the PROJECT command is used.

The root of the problem I am trying to solve is that I can not find most of
the header files, and none of the txx files in the Xcode environment.

   

The itkCommand.h shows up because it is explicitly listed as a source file.

I can not figure out why ITKCommon is a separate sub-section in Xcode since
it does not have a PROJECT listing in the CMakeList.txt file.

================================
Given your explanation, I would agree that many of the Examples Projects
should be removed.  I adjust my proposal to reflect this new line of
thinking.

Regards,
Hans
-- 
Hans J. Johnson, Ph.D.
Associate Faculty
hans-johnson at uiowa.edu
319 353 8587



> From: Brad King <brad.king at kitware.com>
> Date: Wed, 10 Jun 2009 10:12:38 -0400
> To: Hans Johnson <hans-johnson at uiowa.edu>
> Cc: ITK <insight-developers at itk.org>
> Subject: Re: [Insight-developers] Adding missing PROJECT declarations to ITK
> 
> Hans Johnson wrote:
>> In many IDE's the heirarchy of CMake PROJECT() declarations are
>> reflected in the organization of files in the IDE.  I've noticed that
>> the use of the PROJECT declarations is not uniformly set, and I would
>> like to propose adding PROJECT declarations to many of the
>> CMakeLists.txt files that are currently missing.
> 
> I wouldn't say they are missing, just unnecessary.  In fact I think many
> of the Examples projects should be REMOVED.  The main reason to have
> a project() command anywhere except the top is if the directory can
> be built standalone as its own project (like ITK/Testing can build
> against an ITK install tree).  This is not true of most uses.
> 
> Also, CMake generates a .sln file for every project() command.  This will
> make generation slower, but that is not a significant portion of ITK's
> build time.
> 
>> I would also like to change one of the project names that is currently
>> duplicated.  Currently WrapITK is used for both
>> Insight/Wrapping/CSwig/CMakeLists.txt, and
>> Insight/Wrapping/WrapITK/CMakeLists.txt.  I propose changing the project
>> declarations for Insight/Wrapping/CSwig/CMakeLists.txt to CSwigITK
> 
> I doubt anyone ever really wants to turn both of these on at once, but
> it doesn't hurt to fix the CSwigITK project name.  Please check that the
> references to WrapITK_* variables in that dir are converted, if any exist.
> 
>> *PROJECT(AlgorithmsITK)           Insight/Code/Algorithms/CMakeLists.txt
>> *PROJECT(BasicFiltersITK)         Insight/Code/BasicFilters/CMakeLists.txt
>> *PROJECT(CodeITK)                 Insight/Code/CMakeLists.txt
>> *PROJECT(CommonITK)               Insight/Code/Common/CMakeLists.txt
>> *PROJECT(IOITK)                   Insight/Code/IO/CMakeLists.txt
>> *PROJECT(NumericsITK)             Insight/Code/Numerics/CMakeLists.txt
>> *PROJECT(FEMITK)                  Insight/Code/Numerics/FEM/CMakeLists.txt
>> *PROJECT(NeuralNetworksITK)
>>       Insight/Code/Numerics/NeuralNetworks/CMakeLists.txt
>> *PROJECT(StatisticsITK)
>>           Insight/Code/Numerics/Statistics/CMakeLists.txt
>> *PROJECT(PatentedITK)             Insight/Code/Patented/CMakeLists.txt
>> *PROJECT(ReviewITK)               Insight/Code/Review/CMakeLists.txt
>> *PROJECT(Statistics2ITK)
>>          Insight/Code/Review/Statistics/CMakeLists.txt
>> *PROJECT(SpatialObjectITK)        Insight/Code/SpatialObject/CMakeLists.txt
>> *PROJECT(ITKExamples)             Insight/Examples/CMakeLists.txt
>> *PROJECT(DataRepresentationExamples)
>>  Insight/Examples/DataRepresentation/CMakeLists.txt
> 
> These directories cannot build alone, and
> 
>    ${AlgorithmsITK_SOURCE_DIR}
> 
> is not preferred over
> 
>    ${ITK_SOURCE_DIR}/Code/Algorithms
> 
> IMO.
> 
>> *PROJECT(ContainersExamples)
>>      Insight/Examples/DataRepresentation/Containers/CMakeLists.txt
>> PROJECT(ImageExamples)
>>            Insight/Examples/DataRepresentation/Image/CMakeLists.txt
>> PROJECT(MeshExamples)
>>             Insight/Examples/DataRepresentation/Mesh/CMakeLists.txt
>> PROJECT(PathExamples)
>>             Insight/Examples/DataRepresentation/Path/CMakeLists.txt
>> PROJECT(FilteringExamples)        Insight/Examples/Filtering/CMakeLists.txt
>> *PROJECT(GUIExamples)             Insight/Examples/GUI/CMakeLists.txt
>> *PROJECT(InfrastructureExamples)
>>  Insight/Examples/Infrastructure/CMakeLists.txt
>> PROJECT(HelloWorld)
>>               Insight/Examples/Installation/CMakeLists.txt
>> PROJECT(IOExamples)               Insight/Examples/IO/CMakeLists.txt
>> PROJECT(IteratorExamples)         Insight/Examples/Iterators/CMakeLists.txt
>> PROJECT(NumericsExamples)         Insight/Examples/Numerics/CMakeLists.txt
>> PROJECT(PatentedExamples)         Insight/Examples/Patented/CMakeLists.txt
>> PROJECT(ImageRegistration)
>>        Insight/Examples/Registration/CMakeLists.txt
>> PROJECT(ImageSegmentation)
>>        Insight/Examples/Segmentation/CMakeLists.txt
>> PROJECT(SpatialObjectsExamples)
>>   Insight/Examples/SpatialObjects/CMakeLists.txt
>> PROJECT(StatisticsExamples)       Insight/Examples/Statistics/CMakeLists.txt
>> *PROJECT(WrappingExamples)        Insight/Examples/Wrapping/CMakeLists.txt
> 
> Most of these should be removed unless they support building standalone.
> 
>> *Testing stays the same*
>> *Utilities stays the same*
> 
> Agreed, these can stay.
> 
>> *PROJECT(WrapITK)->(CSwigITK)     Insight/Wrapping/CSwig/CMakeLists.txt
> 
> Agreed.
> 
>> PROJECT(ItkVtkGlue)
>>               
>> Insight/Wrapping/WrapITK/ExternalProjects/ItkVtkGlue/CMakeLists.txt
>>                 
>> Insight/Wrapping/WrapITK/ExternalProjects/ItkVtkGlue/Wrapping/CMakeLists.txt
>>                 
>> Insight/Wrapping/WrapITK/ExternalProjects/ItkVtkGlue/Wrapping/Python/CMakeLis
>> ts.txt
>>                 
>> Insight/Wrapping/WrapITK/ExternalProjects/ItkVtkGlue/Wrapping/Python/itkExtra
>> s/CMakeLists.txt
>>                 
>> Insight/Wrapping/WrapITK/ExternalProjects/ItkVtkGlue/Wrapping/Python/Tests/CM
>> akeLists.txt
>> PROJECT(MultiThreaderControl)
>>     
>> Insight/Wrapping/WrapITK/ExternalProjects/MultiThreaderControl/CMakeLists.txt
>>                 
>> Insight/Wrapping/WrapITK/ExternalProjects/MultiThreaderControl/Python/CMakeLi
>> sts.txt
>>                 
>> Insight/Wrapping/WrapITK/ExternalProjects/MultiThreaderControl/Python/Tests/C
>> MakeLists.txt
>> PROJECT(PyBuffer)
>>                 
>> Insight/Wrapping/WrapITK/ExternalProjects/PyBuffer/CMakeLists.txt
> 
> These are standalone projects, so keep.
> 
>> *PROJECT(WrapJava)
>>                Insight/Wrapping/WrapITK/Java/CMakeLists.txt
>>                 
>> Insight/Wrapping/WrapITK/Java/CWD/CMakeLists.txt
>>                 
>> Insight/Wrapping/WrapITK/Java/Tests/CMakeLists.txt
>> *PROJECT(WrapModules)
>>             Insight/Wrapping/WrapITK/Modules/Base/CMakeLists.txt
>> *WrapITK/Modules stays the same*
>> *PROJECT(WrapPerl)
>>                Insight/Wrapping/WrapITK/Perl/CMakeLists.txt
>> *PROJECT(WrapPython)
>>              Insight/Wrapping/WrapITK/Python/CMakeLists.txt
>>                 
>> Insight/Wrapping/WrapITK/Python/itkExtras/CMakeLists.txt
>>                 
>> Insight/Wrapping/WrapITK/Python/PyUtils/CMakeLists.txt
>>                 
>> Insight/Wrapping/WrapITK/Python/Tests/CMakeLists.txt
>>                 
>> Insight/Wrapping/WrapITK/SwigRuntime/CMakeLists.txt
>> *PROJECT(WrapTCL)
>>                 Insight/Wrapping/WrapITK/Tcl/CMakeLists.txt
> 
> Unnecessary.
> 
> -Brad

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20090610/76b8ff21/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 7195 bytes
Desc: not available
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20090610/76b8ff21/attachment.png>


More information about the Insight-developers mailing list