Import 2017-06-07 23:51:09: master 94f10559

Author Committer Branch Timestamp Parent
jcfr jcfr master 2015-02-04 19:11:16 master 47ee30af
Changeset

ENH: Improve build targets organization in IDE that support folders

This commit set the FOLDER property on all targets to group them
into meaningful "units". This will make development easier ensuring
it is possible to quickly re-build and open the source files associated
with the targets of either a given module, the core libraries or even
the Slicer application.

Currently the grouping is:

  • App-SlicerApp
  • CMakePredefinedTargets
  • Core-Base
  • Core-Libs
    • FreeSurfer
    • ITKFactoryRegistration
    • [...]
  • Module-<NameOfModule>
  • [...]

If for some reason, the folder organization needs to be disabled. Slicer
could be configured with Slicer_USE_FOLDERS set to OFF.

Projects updated in this commit:

  • CTK
  • SlicerExecutionModel
  • OtsuThresholdImageFilter

Notes:

(1) some of the targets (EMSegment, BRAINSTools, MultiVolume, ...)
are still associated to the root and not yet categorized.

(2) ideally few more macros/functions should be introduced: one to
easily configure subject hierarchy plugin, and one to easily configure
tests associated with a CLI.

CTK changes:

// -------------
commit commontk/CTK@ac1370e
Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
Date: Wed Feb 4 14:47:09 2015 -0500

Add FOLDER parameter to ctkMacroBuildQtPlugin

If specified, the target(s) associated with designer, icon engine and
style plugins will be added into the specified folder when the project is
configured for an IDE supporting it.

For more details, see http://www.cmake.org/cmake/help/v2.8.9/cmake.html#prop_tgt:FOLDER

// -------------

SlicerExecutionModel changes:

// -------------
commit Slicer/SlicerExecutionModel@0b780eb
Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
Date: Wed Feb 4 18:06:25 2015 -0500

ENH: SEMMacroBuildCLI - Add possibility to associate FOLDER with CLI targets

In project building a lot of modules (i.e Slicer), whenever possible, it
is better to keep the huge list of targets organized. To help with this,
CMake allows to set a FOLDER target property.

See http://www.cmake.org/cmake/help/v2.8.3/cmake.html#prop_tgt:FOLDER

This commit extends the SEMMacroBuildCLI API to accept an optional FOLDER
parameter. If not set, the folder name will default to:

  &lt;SlicerExecutionModel_DEFAULT_CLI_TARGETS_FOLDER_PREFIX>&lt;MODULE_NAME>

By default the prefix is set to an empty string and the folder will be
named after the module name.

There are two ways to specify a default prefix value:

 (1) Set the variable SlicerExecutionModel_DEFAULT_CLI_TARGETS_FOLDER_PREFIX
in the current scope before calling 'SEMMacroBuildCLI'

 (2) Configure the SlicerExecutionModel project with the option
SlicerExecutionModel_DEFAULT_CLI_TARGETS_FOLDER_PREFIX

Note that:
 - FOLDER support has been introduced in CMake >= 2.8.3
and
 - it can optionally be enabled in a project by setting the global
property named USE_FOLDERS.

See http://www.cmake.org/cmake/help/v2.8.3/cmake.html#prop_global:USE_FOLDERS

Finally, to associate CLI test expected to be in the same &quot;FOLDER&quot;,
a variable named &lt;MODULE_NAME>_TARGETS_FOLDER is conveniently set in the
current scope each time the macro SEMMacroBuildCLI is called.

commit Slicer/SlicerExecutionModel@e84d231
Author: Matt McCormick <matt.mccormick@kitware.com>
Date: Thu Aug 7 11:09:39 2014 -0400

BUG: Fix ModuleDescriptionParser test data dir.

Fixes Parser1Test{1,2}.

Simplify by consolidation of variables.

// -------------

OtsuThresholdImageFilter changes:

// -------------
commit :Slicer/Slicer-OtsuThresholdImageFilter@5efe412
Author: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
Date: Wed Feb 4 18:08:28 2015 -0500

Associate folder with test targets.
[...]

// -------------

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

mod - Applications/SlicerApp/CMakeLists.txt Diff File
mod - Applications/SlicerApp/Testing/Cpp/CMakeLists.txt Diff File
mod - Base/CLI/CMakeLists.txt Diff File
mod - Base/Logic/CMakeLists.txt Diff File
mod - Base/Logic/Testing/CMakeLists.txt Diff File
mod - Base/QTCLI/CMakeLists.txt Diff File
mod - Base/QTCLI/DesignerPlugins/CMakeLists.txt Diff File
mod - Base/QTCLI/Testing/CMakeLists.txt Diff File
mod - Base/QTCore/Testing/Cxx/CMakeLists.txt Diff File
mod - Base/QTGUI/CMakeLists.txt Diff File
mod - Base/QTGUI/DesignerPlugins/CMakeLists.txt Diff File
mod - Base/QTGUI/StylePlugins/CMakeLists.txt Diff File
mod - Base/QTGUI/Testing/Cxx/CMakeLists.txt Diff File
mod - CMake/SlicerMacroBuildBaseQtLibrary.cmake Diff File
mod - CMake/SlicerMacroBuildModuleLogic.cmake Diff File
mod - CMake/SlicerMacroBuildModuleMRML.cmake Diff File
mod - CMake/SlicerMacroBuildModuleQtLibrary.cmake Diff File
mod - CMake/SlicerMacroBuildModuleVTKLibrary.cmake Diff File
mod - CMake/SlicerMacroBuildModuleWidgets.cmake Diff File
mod - CMake/SlicerMacroBuildQtModule.cmake Diff File
mod - CMake/SlicerMacroConfigureModuleCxxTestDriver.cmake Diff File
mod - CMakeLists.txt Diff File
mod - Libs/CMakeLists.txt Diff File
mod - Libs/FreeSurfer/CMakeLists.txt Diff File
mod - Libs/ITKFactoryRegistration/CMakeLists.txt Diff File
mod - Libs/MGHImageIO/CMakeLists.txt Diff File
mod - Libs/MRML/CLI/CMakeLists.txt Diff File
mod - Libs/MRML/Core/CMakeLists.txt Diff File
mod - Libs/MRML/Core/Testing/CMakeLists.txt Diff File
mod - Libs/MRML/DisplayableManager/CMakeLists.txt Diff File
mod - Libs/MRML/DisplayableManager/Testing/Cxx/CMakeLists.txt Diff File
mod - Libs/MRML/IDImageIO/CMakeLists.txt Diff File
mod - Libs/MRML/Logic/CMakeLists.txt Diff File
mod - Libs/MRML/Logic/Testing/Cxx/CMakeLists.txt Diff File
mod - Libs/MRML/Widgets/CMakeLists.txt Diff File
mod - Libs/MRML/Widgets/DesignerPlugins/CMakeLists.txt Diff File
mod - Libs/MRML/Widgets/Testing/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 - Libs/vtkTeem/CMakeLists.txt Diff File
mod - Libs/vtkTeem/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ACPCTransform/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/AddScalarVolumes/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/CastScalarVolume/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/CheckerBoardFilter/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/CreateDICOMSeries/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/DWIToDTIEstimation/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/DiffusionTensorScalarMeasurements/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/DiffusionTensorTest/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/DiffusionWeightedVolumeMasking/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ExecutionModelTour/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ExpertAutomatedRegistration/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ExtractSkeleton/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/FiducialRegistration/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/GaussianBlurImageFilter/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/GradientAnisotropicDiffusion/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/GrayscaleFillHoleImageFilter/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/GrayscaleGrindPeakImageFilter/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/GrayscaleModelMaker/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/HistogramMatching/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ImageLabelCombine/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/LabelMapSmoothing/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/MaskScalarVolume/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/MedianImageFilter/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/MergeModels/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ModelMaker/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ModelToLabelMap/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/MultiplyScalarVolumes/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/N4ITKBiasFieldCorrection/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/OrientScalarVolume/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/PETStandardUptakeValueComputation/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ResampleDTIVolume/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ResampleScalarVectorDWIVolume/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ResampleScalarVolume/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/RobustStatisticsSegmenter/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/SimpleRegionGrowingSegmentation/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/SubtractScalarVolumes/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/TestGridTransformRegistration/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/ThresholdScalarVolume/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/TractographyLabelMapSeeding/Testing/CMakeLists.txt Diff File
mod - Modules/CLI/VotingBinaryHoleFillingImageFilter/Testing/CMakeLists.txt Diff File
mod - Modules/Loadable/Annotations/Widgets/DesignerPlugins/CMakeLists.txt Diff File
mod - Modules/Loadable/Markups/SubjectHierarchyPlugins/CMakeLists.txt Diff File
mod - Modules/Loadable/Markups/Widgets/DesignerPlugins/CMakeLists.txt Diff File
mod - Modules/Loadable/Models/SubjectHierarchyPlugins/CMakeLists.txt Diff File
mod - Modules/Loadable/Models/Widgets/DesignerPlugins/CMakeLists.txt Diff File
mod - Modules/Loadable/SceneViews/SubjectHierarchyPlugins/CMakeLists.txt Diff File
mod - Modules/Loadable/SubjectHierarchy/Widgets/DesignerPlugins/CMakeLists.txt Diff File
mod - Modules/Loadable/Transforms/SubjectHierarchyPlugins/CMakeLists.txt Diff File
mod - Modules/Loadable/Transforms/Widgets/DesignerPlugins/CMakeLists.txt Diff File
mod - Modules/Loadable/Transforms/Widgets/Testing/CMakeLists.txt Diff File
mod - Modules/Loadable/Units/Widgets/DesignerPlugins/CMakeLists.txt Diff File
mod - Modules/Loadable/VolumeRendering/Widgets/DesignerPlugins/CMakeLists.txt Diff File
mod - Modules/Loadable/Volumes/SubjectHierarchyPlugins/CMakeLists.txt Diff File
mod - Modules/Loadable/Volumes/Testing/Cxx/CMakeLists.txt Diff File
mod - Modules/Scripted/DICOMLib/SubjectHierarchyPlugins/CMakeLists.txt Diff File
mod - Modules/Scripted/DICOMLib/Widgets/DesignerPlugins/CMakeLists.txt Diff File
mod - SuperBuild.cmake Diff File
mod - SuperBuild/External_CTK.cmake Diff File
mod - SuperBuild/External_SlicerExecutionModel.cmake Diff File