[Insight-developers] ITKv4 Modularization Plan
Bill Lorensen
bill.lorensen at gmail.com
Mon Feb 7 23:12:47 EST 2011
I suggest we also cleanup ITK itself and ITKApps. These and Slicer4
should be done before we roll out the reorganization.
On Mon, Feb 7, 2011 at 6:13 PM, Luis Ibanez <luis.ibanez at kitware.com> wrote:
> 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