[Insight-developers] ITKv4 Modularization Plan

Luis Ibanez luis.ibanez at kitware.com
Mon Feb 7 18:13:59 EST 2011


Hi Bill,

The only visible effect of modularization on Slicer 3.6
should be in the following list of  11 CMakeLists.txt files:


Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt
Applications/CLI/RobustStatisticsSegmenter/CMakeLists.txt
Applications/CLI/BRAINSTools/BRAINSCommonLib/Test_FindCenterOfBrainFilter/CMakeLists.txt
Modules/Meshing/Testing/CMakeLists.txt
Modules/Meshing/BuildingBlock/CMakeLists.txt
Modules/Meshing/Adapter/CMakeLists.txt
Modules/ChangeTracker/Testing/CMakeLists.txt
Modules/ChangeTracker/DeformableMetric/CMakeLists.txt
Modules/ChangeTracker/CommandLineApplication/CMakeLists.txt
Modules/Pharmacokinetics/PkSolver/CMakeLists.txt


They should have followed the convention of the other 45
CMakeLists.txt files in Slicer, that use the symbol

                         ${ITK_LIBRARIES}

in their TARGET_LINK_LIBRARIES command,
instead of manually listing individual ITK libraries.

So, in short, the CMakeLists.txt files should be like:

./Modules/VolumeRendering/CMakeLists.txt
(line 93)

and not like

./Applications/CLI/RegisterImagesModule/Applications/CMakeLists.txt
(line 108).

Note BTW, that this file above was doing the right thing in lines
36, 55 and 107.....

and even in 108, since it just have a redundant:

 ${ITK_LIBRARIES} ....
ITKIO ITKCommon ITKStatistics ITKNumerics )


This should be fixable in a couple of hours,
and will be compatible between ITKv3 and ITKv4.


BTW: Note that Slicer is also making the same mistake
with VTK libraries in a couple of CMakeLists.txt files.

For example:

     ./Modules/Meshing/Testing/CMakeLists.txt

It should have used "${VTK_LIBRARIES}" instead of
listing specific libraries such as " vtkHybrid vtkRendering
 vtkGraphics vtkImaging vtkIO vtkFiltering vtkCommon"


There should not be any other visible effect of the
redistribution of classes into directories, unless
anyone had made a #include that has a specific
ITK subdirectory in it.   Should we find any of those,
they will be trivial to fix as well.



    Luis


--------------------------------------------------------------------
On Mon, Feb 7, 2011 at 3:58 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
> Is there a summary of the meeting notes (or slides?). Will the names
> still be the unusual itk-foo-bar?
>
> Was the present approach approved by the ITK contractors? I hope the
> discussion included a cost/benefit for this massive change.
>
> How will our customers handle this transition? Especially if they have
> a code base that must compile with both itkv3 and itkv4. In
> particular, how will this affect one of our largest customers,
> Slicer4?
>
> I am concerned, for example, that ITK3 did not provide a good
> mechanism for specifying libraries. Will the new solution include a
> patch to ITK3 that will be compatible with itkv4?
>
>
> On Mon, Feb 7, 2011 at 3:51 PM, Xiaoxiao Liu <xiaoxiao.liu at kitware.com> wrote:
>> Dear All,
>>
>> During the ITKv4 Boston meeting, we presented the modularization progress
>> and planned to push the modularized ITK into the main ITK git repository on
>> Feb, 28th.   To make this transition easier for all of us, please let us
>> know if you have any suggested improvements as soon as possible. We would
>> like to get more feedback especially on the granularity of the segmentation
>> of the modules and the naming of the modules, since it will be harder to
>> move things around once everyone starts to contribute to
>> the modularized ITK.
>>
>>
>>
>> So far we have created 90 modules out of the monolithic ITK (not including
>> Examples and Reviews). Among the 90 modules, there are 14 utility modules
>> (such as  itk-tiff and itk-xml) ,  and  21 I/O modules (such as
>> itk-io-tiff).  The   Manifest (located ITK/Modularization/Manifest.txt)
>>  lists 2352 source code files and their  locations in the modularized ITK.
>>  Here is a spreadsheet version of the Manifest for your convinence to
>> explore: Manifest.xlsx.  You can also get a copy of a modularized ITK
>> (produced at Feb. 2nd) from  http://itk.org/gitweb?p=tmp/modularITK.git to
>> investigate.
>>
>>
>>
>> The current modularization process involves manually editing the Manifest
>> file, adding tests for each module and running dashboards
>> for modularized ITK every day.  This process is done for the majority of ITK
>> now and will be done for the entire toolkit by Feb 28th. Moreover, this
>> process will continue to be carried out for any new contributions into
>> ITKv4. Therefore, it will be extremely helpful for developers to
>> get familiar with the new lay-out of the toolkit and get ready for the
>> changes.
>>
>>
>>
>> We are working on detailed documentations to help both developers and users
>> to adapt to the modularized version of ITK. More details about the
>> modularization can be found at this wiki
>> page: http://www.itk.org/Wiki/ITK_Release_4/Modularization.
>>
>>
>>
>> Thank you for your attention!
>>
>>
>>
>> - Best,
>>
>>   Modularization Team  (Luis, Bill, Brad, Xiaoxiao)
>>
>>
>>
>> ---------------------------------------------
>> Xiaoxiao Liu, Ph.D.
>> R & D Engineer
>> Kitware Inc.
>> Clifton Park, NY
>> Phone: (518) 881-4924  or  (518) 371-3971 x124
>>
>>
>> _______________________________________________
>> 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.html
>>
>> 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
>>
>>
>


More information about the Insight-developers mailing list