Import 2017-06-07 23:51:09: master 8c5fd778

Author Committer Branch Timestamp Parent
jcfr jcfr master 2013-11-24 03:09:34 master 05de7a4a
Affected Issues 0001739: SLICER_USE_SYSTEM_xyzlib for each superbuild dependency
Changeset

COMP: Support Slicer_USESYSTEM* option. Fixes 0001739

This commit implements four main changes:

(1) it updates Slicer build system to support configuring Slicer passing
Slicer_USESYSTEM* CMake variables

(2) it updates to a newer version of CTK able to understand CTK_USESYSTEM*
options. List of CTK contribution associated with this update are
reported below.

(3) it changes curl library from "slicerlibcurl/cmcurl/curl" v7.12.1
to the more recent official CMake'ified curl v7.33.0. This has the
benefit of making it easier to build against the corresponding
system library.

(4) It implements workaround allowing some CLIs to built on Debian-like
distribution that is providing DCMTK 3.6.0.
See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637687
EMSegment project has also been updated to implement a similar
workaround.

The macro "SlicerMacroCheckExternalProjectDependency" allowing to
recursively traverse the external project dependency tree has been
updated.

The traversal is now done in two passes. The first pass traverses the
complete tree to set the value of Slicer_USESYSTEM*.

The second pass invokes the "ExternalProject_Add" function and displays
informative messages. In addition to the usual "[OK]" and "[INCLUDED]"
suffixes, an additional text "(SYSTEM)" is displayed. It means the
corresponding libraries (and headers) installed on the system will be
used.

On Ubuntu 13.10, support for the following options have been
tested simultaneously:
-DSlicer_USE_PYTHONQT_WITH_OPENSSL:BOOL=ON
-DSlicer_USE_SYSTEM_python:BOOL=ON
-DSlicer_USE_SYSTEM_DCMTK:BOOL=ON
-DSlicer_USE_SYSTEM_LibArchive:BOOL=ON
-DSlicer_USE_SYSTEM_curl:BOOL=ON
-DSlicer_USE_SYSTEM_teem:BOOL=ON
-DSlicer_USE_SYSTEM_OpenIGTLink:BOOL=ON
-DSlicer_USE_SYSTEM_OpenSSL:BOOL=ON # Implicitly set because python depends

on OpenSSL.

-DSlicer_BUILD_OpenIGTLinkIF:BOOL=OFF # Only openigtlink version1 are available

and code does NOT supports only v2.

To successfully build Slicer against system libraries, the corresponding
packages have been installed:
sudo apt-get install libssl-dev \
libdcmtk-dev \
libarchive-dev \
libpython2.7-dev \
python-numpy \
libcurl4-openssl-dev \
libteem-dev \
tk-dev \
tcl-dev \
itcl3-dev \
libopenigtlink1-dev

While not tested, support for the following option has also been
implemented:
-DSlicer_USE_SYSTEM_ITKv4:BOOL=ON
-DSlicer_USE_SYSTEM_VTK:BOOL=ON

CTK updates:

$ git shortlog 91cdf9e0f...02ecc27d0

Jean-Christophe Fillion-Robin (39):
Ensure CTK_INSTALL_QTPLUGIN_DIR is properly set
Ensure "CMAKE_INSTALL_PREFIX" is properly passed to inner project.
By default, do not install application headers
Install CTK's .cmake files
Merge branch '65-packaging-support' into 403-relocatable-ctkconfig-usectk
Set plugin install rules for target and include files
Remove commented code and unused vars from CTKConfig / CTKGenerateCTKConfig
Explicitly set default value for CTK_INSTALL_QTPLUGIN_DIR
Remove explicit setting of CMake policies.
Improve FindDCMTK.cmake documentation
Add DCMTK 3.6.0 support to ctkDICOMUtil.cpp
Ensure DCMTK libraries can be found on system without setting DCMTK_DIR
FindDCMTK - Workaround bug in packaging of DCMTK 3.6.0 on Debian.
Add support for install-able and relocatable package.
Merge branch '382-fix-find-dcmtk-issue'
Merge branch '403-relocatable-ctkconfig-usectk'
Merge branch '405-support-dcmtk-360'
Fix -Wunused-but-set-variable in transfer function tests
Merge branch '209-fix-vtk-transfer-function-test-warnings'
Fix linking of VTKCoreCppTest by adding a check for linker capabilities
Merge branch 'fix-vtk-core-test-link-error'
COMP: FindDCMTK - Exclude -D from DCMTK_DEFINITIONS for easier re-use
Merge branch '382-fix-find-dcmtk-issue'
Associate DCMTK_DEFINITIONS to CTKDICOMCore
Merge branch '413-associated-dcmtk-definitions-to-ctkdicomcore'
Merge pull request 0000410 from NifTK/409-widgets-on-ctkPopupWidget-do-not-get-keyboard-focus
Add DCMTK 3.6.0 support to CTK application.
Merge branch '405-support-dcmtk-360'
Fix configuration of CTKConfig based on DCMTK_HAVE_CONFIG_H_OPTIONAL value
Merge branch '413-associated-dcmtk-definitions-to-ctkdicomcore'
Add convenience function "ctk_list_to_string"
Automatically reformat list passed to "CTK" inner build.
COMP: Add support for CTK_USESYSTEM
options
Merge branch '418-support-use-system-option'
FindDCMTK - Do not explicitly set DCMTK_DEFINITIONS
FindDCMTK - Clean white spaces
Merge branch '382-fix-find-dcmtk-issue' into 413-associated-dcmtk-definitions-to-ctkdicomcore
Associate CTKDICOMCore with DCMTK_DEFINITIONS in build and install tree
Merge branch '413-associated-dcmtk-definitions-to-ctkdicomcore'

Miklos Espak (1):
Active window flag transferred on RequestSoftwareInputPanel event

Steve Pieper (2):
Put all tags for a given instance into a list for a single batch insert
Merge pull request 0000415 from pieper/414-batch-insert-tags

See 0001739

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

mod - CMake/SlicerBlockCTKAppLauncherSettings.cmake Diff File
mod - CMake/SlicerCPack.cmake Diff File
mod - CMake/SlicerConfig.cmake.in Diff File
mod - CMake/SlicerGenerateSlicerConfig.cmake Diff File
mod - CMake/SlicerMacroCheckExternalProjectDependency.cmake Diff File
mod - CMakeLists.txt Diff File
mod - Libs/RemoteIO/CMakeLists.txt Diff File
mod - Libs/RemoteIO/vtkHTTPHandler.h Diff File
mod - Modules/CLI/DiffusionWeightedVolumeMasking/DiffusionWeightedVolumeMasking.cxx Diff File
mod - Modules/CLI/MIDASApplications/DownloadSlicerTutorials/CMakeLists.txt Diff File
mod - Modules/CLI/MIDASApplications/DownloadSlicerTutorials/DownloadSlicerTutorials.cxx Diff File
mod - Modules/CLI/PETStandardUptakeValueComputation/PETStandardUptakeValueComputation.cxx Diff File
mod - Modules/CLI/PETStandardUptakeValueComputation/itkDCMTKFileReader.cxx Diff File
mod - Modules/CLI/PETStandardUptakeValueComputation/itkDCMTKFileReader.h Diff File
mod - SuperBuild.cmake Diff File
mod - SuperBuild/External_BRAINSTools.cmake Diff File
mod - SuperBuild/External_BatchMake.cmake Diff File
mod - SuperBuild/External_CTK.cmake Diff File
mod - SuperBuild/External_CTKAPPLAUNCHER.cmake Diff File
mod - SuperBuild/External_DCMTK.cmake Diff File
mod - SuperBuild/External_EMSegment.cmake Diff File
mod - SuperBuild/External_ITKv3.cmake Diff File
mod - SuperBuild/External_ITKv4.cmake Diff File
mod - SuperBuild/External_LibArchive.cmake Diff File
mod - SuperBuild/External_MultiVolumeExplorer.cmake Diff File
mod - SuperBuild/External_MultiVolumeImporter.cmake Diff File
mod - SuperBuild/External_NUMPY.cmake Diff File
mod - SuperBuild/External_OpenIGTLink.cmake Diff File
mod - SuperBuild/External_OpenIGTLinkIF.cmake Diff File
mod - SuperBuild/External_OpenSSL.cmake Diff File
mod - SuperBuild/External_PCRE.cmake Diff File
mod - SuperBuild/External_SciPy.cmake Diff File
mod - SuperBuild/External_SimpleFilters.cmake Diff File
mod - SuperBuild/External_SimpleITK.cmake Diff File
mod - SuperBuild/External_SlicerExecutionModel.cmake Diff File
mod - SuperBuild/External_Swig.cmake Diff File
mod - SuperBuild/External_VTK.cmake Diff File
rm - SuperBuild/External_cmcurl.cmake Diff File
add - SuperBuild/External_curl.cmake Diff File
mod - SuperBuild/External_incrTcl.cmake Diff File
mod - SuperBuild/External_jqPlot.cmake Diff File
mod - SuperBuild/External_python.cmake Diff File
mod - SuperBuild/External_qRestAPI.cmake Diff File
mod - SuperBuild/External_teem.cmake Diff File
mod - SuperBuild/External_tk.cmake Diff File
mod - SuperBuild/External_zlib.cmake Diff File