1 / 13

Modularization

Explore the modularization efforts in ITK by Bill Hoffman, simplifying software development through kitware source articles. Learn about the Qt and Boost modularization efforts, use ExternalProject_add for easy software management, and gain insights on managing module dependencies. Find out how to avoid the Easter egg hunt with the Titan example, delve into Google Protocol buffers, VTK, Trilinos, and more through git sub-modules. Discover versatile options like itk-complete and itk-optional for developers and applications using ITK module dependencies. Get practical insights into handling module depend information with CMake code and streamline the expansion outside the main repository to enhance software development efficiency.

sminch
Download Presentation

Modularization

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Modularization Bill Hoffman bill.hoffman@kitware.com ITK modularization

  2. We are not alone… • Qt modularization effort • Boost modularization effort Ryppl

  3. Qt

  4. ExternalProject_add • Module introduced in CMake 2.8 • Allows the download, configure, build and install of software via custom commands • Kitware Source Article: October 2009 • http://www.kitware.com/products/html/BuildingExternalProjectsWithCMake2.8.html • ARL CSE • Avoid the Easter Egg Hunt!

  5. Titan Example Titan Google Protocol buffers VTK Trilinos CLAPCK Qt Curl Boost

  6. Trilinos (Multi-Package Dashboard)http://trilinos-dev.sandia.gov/cdash/index.php Main Project Sub Projects

  7. git sub-modules • http://chrisjean.com/2009/04/20/git-submodules-adding-using-removing-and-updating/

  8. Having our cake and eating too, ITK two ways • itk-complete • All of ITK with git sub-modules for each • For ITK developers • itk-optional • An ExternalProject_add version that checks out each sub-module as needed • For applications using ITK

  9. Module Dependencies • A git sub-module itk-depends • CMake Code for handling module depend information • The depend information for each module • Used by both itk-complete and itk-optional • Exploring ways to keep the depend information on branches in each modules git

  10. Proof of Concept • git clone git://itk.org/itk/itk-complete.git • git clone git://itk.org/itk/itk-optional.git

  11. Allows for Expansion Outside Main Repository • Anyone should be able to create an ITK module, and have it work in this system • Each module should contain • Source • Tests • Depend information • Documentation

  12. Demos • cmake-gui turn on off modules • Load itk-optional in VS

  13. The Hard Part…. • We need to partition ITK

More Related