Slicer: 2145-support-for-installing-extension-from-file 03b89614

Author Committer Branch Timestamp Parent
jcfr jcfr 2145-support-for-installing-extension-from-file 2013-01-11 16:29:52 2145-support-for-installing-extension-from-file f2ccfa63
Affected Issues 0002813: Restore performance of ITKv4 Factory
Changeset

COMP: Add ITKFactoryRegistration library centralizing ITK IO factory registration

This commit will ensure that ITK IO factory are properly registered on all
supported platforms.

When ITKv4 is build shared, the library holding the factory registration code
are build statically. As a consequence, when CLI module are loaded as library
the factory are registered multiple times. Around 800 factories where registered
and this was leading to poor performance when loading images.

This commit enable the building of a shared library named ITKFactoryRegistration
that should be linked against to ensure loading of the factory. This approach
can succeed thanks to the help of the ITK variable ITK_NO_IO_FACTORY_REGISTER_MANAGER.

This variable allow to disable the automatic registration of factory in selected part
of the code.

The following two cases are handled:

  • Registration of the factories within the Slicer executable.
  • Registration of the factories within CLI executable.

Fixes 0002813

From: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21592 3bd1e089-480b-0410-8dfb-8563597acbee

mod - Applications/SlicerApp/CMakeLists.txt Diff File
mod - Applications/SlicerApp/Main.cxx Diff File
mod - Base/CLI/CMakeLists.txt Diff File
add - Base/CLI/SEMCommandLineLibraryWrapper.cxx.in Diff File
mod - CMake/SlicerConfig.cmake.in Diff File
mod - CMake/SlicerGenerateSlicerConfig.cmake Diff File
mod - CMake/UseSlicer.cmake.in Diff File
mod - CMakeLists.txt Diff File
mod - Libs/CMakeLists.txt Diff File
mod - Libs/IGT/CMakeLists.txt Diff File
add - Libs/ITKFactoryRegistration/CMakeLists.txt Diff File
add - Libs/ITKFactoryRegistration/itkFactoryRegistration.cxx Diff File
add - Libs/ITKFactoryRegistration/itkFactoryRegistration.h Diff File
add - Libs/ITKFactoryRegistration/itkFactoryRegistrationConfigure.h.in Diff File
mod - Libs/MGHImageIO/CMakeLists.txt Diff File
mod - Libs/MRML/Core/CMakeLists.txt Diff File
mod - Libs/MRML/IDImageIO/CMakeLists.txt Diff File
mod - Libs/RemoteIO/CMakeLists.txt Diff File
mod - Libs/vtkITK/CMakeLists.txt Diff File
mod - Libs/vtkITK/Testing/CMakeLists.txt Diff File
mod - SuperBuild/External_SlicerExecutionModel.cmake Diff File