From 382edfe5177608bab0491cbfc109743446e32c49 Mon Sep 17 00:00:00 2001 From: Sebastian Eichelbaum Date: Sat, 7 Aug 2010 14:25:19 +0200 Subject: [PATCH] [CHANGE] - our build system now supports module toolboxes. All our current modules where sorted into one of the toolboxes. The file modules-user.toolbox is not versioned and can be used for user defined lists of modules. --- .hgignore | 2 + src/CMakeLists.txt | 3 + src/modules/CMakeLists.txt | 79 +++++++++------------ src/modules/modules-base.toolbox | 17 +++++ src/modules/modules-eeg.toolbox | 1 + src/modules/modules-imageprocessing.toolbox | 2 + src/modules/modules-io.toolbox | 3 + src/modules/modules-others.toolbox | 22 ++++++ 8 files changed, 82 insertions(+), 47 deletions(-) create mode 100644 src/modules/modules-base.toolbox create mode 100644 src/modules/modules-eeg.toolbox create mode 100644 src/modules/modules-imageprocessing.toolbox create mode 100644 src/modules/modules-io.toolbox create mode 100644 src/modules/modules-others.toolbox diff --git a/.hgignore b/.hgignore index 9febdde99..f72028105 100644 --- a/.hgignore +++ b/.hgignore @@ -40,6 +40,8 @@ syntax: regexp ^tools/numCores/Makefile$ ^tools/numCores/cmake_install.cmake$ +# user toolboxes are not versioned +^src/modules/modules-user.toolbox$ syntax: glob .project diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4adc3a837..6ceb85954 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -90,6 +90,9 @@ ELSE() INCLUDE_DIRECTORIES( ${OPENSCENEGRAPH_INCLUDE_DIRS} ) ENDIF() +# some modules need the teem library (http://teem.sourceforge.net/) +find_package( Teem PATHS /usr/local/lib QUIET ) + # other options: #--------------- # Set default build type diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt index 9753e17e3..520f76ac3 100644 --- a/src/modules/CMakeLists.txt +++ b/src/modules/CMakeLists.txt @@ -1,48 +1,33 @@ -ADD_SUBDIRECTORY( applyMask ) -ADD_SUBDIRECTORY( arbitraryPlane ) -ADD_SUBDIRECTORY( arbitraryRois ) -ADD_SUBDIRECTORY( atlasSurfaces ) -ADD_SUBDIRECTORY( boundingBox ) -ADD_SUBDIRECTORY( clusterParamDisplay ) -ADD_SUBDIRECTORY( clusterSlicer ) -ADD_SUBDIRECTORY( contourTree ) -ADD_SUBDIRECTORY( coordinateSystem ) -ADD_SUBDIRECTORY( dataTypeConversion ) -ADD_SUBDIRECTORY( detTractClustering ) -ADD_SUBDIRECTORY( detTractCulling ) -ADD_SUBDIRECTORY( deterministicFTMori ) -ADD_SUBDIRECTORY( distanceMap ) -ADD_SUBDIRECTORY( distanceMapIsosurface ) -ADD_SUBDIRECTORY( eegView ) -ADD_SUBDIRECTORY( effectiveConnectivityCluster ) -ADD_SUBDIRECTORY( fiberSelection ) -ADD_SUBDIRECTORY( fiberTransform ) -ADD_SUBDIRECTORY( gaussFiltering ) -ADD_SUBDIRECTORY( gridRenderer ) -ADD_SUBDIRECTORY( histogramEqualization ) -ADD_SUBDIRECTORY( hud ) -ADD_SUBDIRECTORY( imageExtractor ) -ADD_SUBDIRECTORY( isosurfaceRaytracer ) -ADD_SUBDIRECTORY( lic ) -ADD_SUBDIRECTORY( marchingCubes ) -ADD_SUBDIRECTORY( meshReader ) -ADD_SUBDIRECTORY( probTractDisplay ) -ADD_SUBDIRECTORY( scalarSegmentation ) -ADD_SUBDIRECTORY( splineSurface ) -ADD_SUBDIRECTORY( superquadricGlyphs ) -ADD_SUBDIRECTORY( surfaceParameterAnimator ) -ADD_SUBDIRECTORY( template ) -ADD_SUBDIRECTORY( triangleMeshRenderer ) -ADD_SUBDIRECTORY( vectorPlot ) -ADD_SUBDIRECTORY( voxelizer ) -ADD_SUBDIRECTORY( writeNIfTI ) -ADD_SUBDIRECTORY( writeTracts ) +# Toolbox mechanism. This is a nice possibility to turn on/off several modules. This can speed up build times if unneeded modules are turned off. +option( OW_MODULE_TOOLBOX_ALL "Turn all toolboxes on." OFF ) +option( OW_MODULE_TOOLBOX_BASE "All the basic functionality modules. These modules are useful and needed for common visualizatuion tasks." ON ) +option( OW_MODULE_TOOLBOX_EEG "EEG data processing and visualization." ON ) +option( OW_MODULE_TOOLBOX_IMAGEPROCESSING "Image processing tools like filters." ON ) +option( OW_MODULE_TOOLBOX_IO "Reader and Writer for several kinds of data." ON ) +# this option is a simple list of all modules not in the above lists. +option( OW_MODULE_TOOLBOX_OTHERS "Advanced processing and visualization tools currently in development which have not been categorized to one of the other toolboxes." ON ) + +# Include needed lists +if( OW_MODULE_TOOLBOX_BASE OR OW_MODULE_TOOLBOX_ALL ) + include( modules-base.toolbox ) +endif( OW_MODULE_TOOLBOX_BASE OR OW_MODULE_TOOLBOX_ALL ) + +if( OW_MODULE_TOOLBOX_EEG OR OW_MODULE_TOOLBOX_ALL ) + include( modules-eeg.toolbox ) +endif( OW_MODULE_TOOLBOX_EEG OR OW_MODULE_TOOLBOX_ALL ) + +if( OW_MODULE_TOOLBOX_IMAGEPROCESSING OR OW_MODULE_TOOLBOX_ALL ) + include( modules-imageprocessing.toolbox ) +endif( OW_MODULE_TOOLBOX_IMAGEPROCESSING OR OW_MODULE_TOOLBOX_ALL ) + + if( OW_MODULE_TOOLBOX_IO OR OW_MODULE_TOOLBOX_ALL ) + include( modules-io.toolbox ) +endif( OW_MODULE_TOOLBOX_IO OR OW_MODULE_TOOLBOX_ALL ) + +if( OW_MODULE_TOOLBOX_OTHERS OR OW_MODULE_TOOLBOX_ALL ) + include( modules-others.toolbox ) +endif( OW_MODULE_TOOLBOX_OTHERS OR OW_MODULE_TOOLBOX_ALL ) + +# optional user toolbox which is not unter version control allowing all to only compile their modules needed. +include( modules-user.toolbox OPTIONAL ) -# Modules needing teem library (http://teem.sourceforge.net/) -find_package( Teem PATHS /usr/local/lib QUIET ) -IF( Teem_FOUND ) - MESSAGE( STATUS "Teem found. Enabled building of modules needing the teem libraries." ) - ADD_SUBDIRECTORY( homeGlyphs ) -ELSE() - MESSAGE( STATUS "Teem NOT found. Disabled building of modules needing the teem libraries." ) -ENDIF() diff --git a/src/modules/modules-base.toolbox b/src/modules/modules-base.toolbox new file mode 100644 index 000000000..8c7b82241 --- /dev/null +++ b/src/modules/modules-base.toolbox @@ -0,0 +1,17 @@ +# mostly modules from our default whitelist + +ADD_SUBDIRECTORY( arbitraryRois ) +ADD_SUBDIRECTORY( boundingBox ) +ADD_SUBDIRECTORY( coordinateSystem ) +ADD_SUBDIRECTORY( distanceMap ) +ADD_SUBDIRECTORY( distanceMapIsosurface ) +ADD_SUBDIRECTORY( gridRenderer ) +ADD_SUBDIRECTORY( hud ) +ADD_SUBDIRECTORY( isosurfaceRaytracer ) +ADD_SUBDIRECTORY( lic ) +ADD_SUBDIRECTORY( marchingCubes ) +ADD_SUBDIRECTORY( superquadricGlyphs ) +ADD_SUBDIRECTORY( template ) +ADD_SUBDIRECTORY( triangleMeshRenderer ) +ADD_SUBDIRECTORY( vectorPlot ) +ADD_SUBDIRECTORY( voxelizer ) diff --git a/src/modules/modules-eeg.toolbox b/src/modules/modules-eeg.toolbox new file mode 100644 index 000000000..4138cf155 --- /dev/null +++ b/src/modules/modules-eeg.toolbox @@ -0,0 +1 @@ +ADD_SUBDIRECTORY( eegView ) diff --git a/src/modules/modules-imageprocessing.toolbox b/src/modules/modules-imageprocessing.toolbox new file mode 100644 index 000000000..ea3aeb763 --- /dev/null +++ b/src/modules/modules-imageprocessing.toolbox @@ -0,0 +1,2 @@ +ADD_SUBDIRECTORY( gaussFiltering ) +ADD_SUBDIRECTORY( histogramEqualization ) diff --git a/src/modules/modules-io.toolbox b/src/modules/modules-io.toolbox new file mode 100644 index 000000000..77fda4204 --- /dev/null +++ b/src/modules/modules-io.toolbox @@ -0,0 +1,3 @@ +ADD_SUBDIRECTORY( meshReader ) +ADD_SUBDIRECTORY( writeNIfTI ) +ADD_SUBDIRECTORY( writeTracts ) diff --git a/src/modules/modules-others.toolbox b/src/modules/modules-others.toolbox new file mode 100644 index 000000000..46b1ac798 --- /dev/null +++ b/src/modules/modules-others.toolbox @@ -0,0 +1,22 @@ +ADD_SUBDIRECTORY( atlasSurfaces ) +ADD_SUBDIRECTORY( clusterParamDisplay ) +ADD_SUBDIRECTORY( clusterSlicer ) +ADD_SUBDIRECTORY( contourTree ) +ADD_SUBDIRECTORY( dataTypeConversion ) +ADD_SUBDIRECTORY( detTractClustering ) +ADD_SUBDIRECTORY( detTractCulling ) +ADD_SUBDIRECTORY( deterministicFTMori ) +ADD_SUBDIRECTORY( effectiveConnectivityCluster ) +ADD_SUBDIRECTORY( fiberSelection ) +ADD_SUBDIRECTORY( fiberTransform ) +ADD_SUBDIRECTORY( imageExtractor ) +ADD_SUBDIRECTORY( probTractDisplay ) +ADD_SUBDIRECTORY( scalarSegmentation ) +ADD_SUBDIRECTORY( splineSurface ) +ADD_SUBDIRECTORY( surfaceParameterAnimator ) +ADD_SUBDIRECTORY( applyMask ) +ADD_SUBDIRECTORY( arbitraryPlane ) + +IF( Teem_FOUND ) + ADD_SUBDIRECTORY( homeGlyphs ) +ENDIF() -- GitLab