ENH: Add 'pydicom' python module as external project.

"pydicom is a pure python package for working with DICOM files. It
was made for inspecting and modifying DICOM data in an easy "pythonic"
way. The modifications can be written again to a new file. As a pure
python package, it should run anywhere python runs without any other
requirements.

pydicom is not a DICOM server, and is not primarily about viewing
images. It is designed to let you manipulate data elements in DICOM
files with python code.

Limitations -- the main limitation of the current version is that
compressed pixel data (e.g. JPEG) cannot be altered in an intelligent
way as it can for uncompressed pixels. Files can always be read and
saved, but compressed pixel data cannot easily be modified."
See http://code.google.com/p/pydicom/

The module being licensed under MIT license, it is compatible with
the Slicer BSD like license.

Co-authored-by: Andriy Fedorov <fedorov@bwh.harvard.edu>

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

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22815 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: expose the displable manager and other MRML libs in python

The MRMLDisplayableManager code is needed to access the picker
from a python module.  This feature was added to support
DTI/Tractography processing tools being written by Lauren
O'Donnel.

From: Steve Pieper <pieper@isomics.com>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22816 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: BRAINSTools should not be built when CLIs are disabled

From: Andrey Fedorov <fedorov@bwh.harvard.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22817 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: vtkTeem - Remove cmake configuration warning

CMake Warning (dev) in Libs/vtkTeem/CMakeLists.txt:
  Syntax Warning in cmake code at
      Slicer/Libs/vtkTeem/CMakeLists.txt:21:55

  Argument not separated from preceding token by whitespace.

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22818 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: vtkPichonFastMarching - Replace finite() with isfinite()

finite() is not universally in the c standard.
isfinite is support in all c compilers since
c99.

As of Mac 10.9 under clang, finite() issues a
warning that it will be deprecated and that the
standards conforming isfinite() should be used.

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22819 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: C++11 require space between string constants

C++11 now allows for custom type specifiers so needs
a space when two string constants are to be concatenated.

Co-authored-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>

From: Hans Johnson <hans-johnson@uiowa.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22820 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Revert - vtkPichonFastMarching - Replace finite() with isfinite()"

This reverts commit r22819

isfinite() function is not available on windows 2008:

20>47>..\..\..\..\..\..\Slicer4\Modules\Scripted\EditorLib\Logic\vtkPichonFastMarchingPDF.cxx(193) : error C3861: 'isfinite': identifier not found

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22821 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix configuration of Slicer against system python

When building against system python, the pydicom module won't be
installed at configure/build time.

A Slicer runtime test could be added to check if expected python module
are available.

Thanks to "Dominique Belhachemi <domibel@debian.org>" for reporting the
problem.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22822 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: avoid spurious warnings from DataProbe during startup

Make sure the frame member of the widget is set before
setting up observers to avoid a situation where the processEvents
is called before setup is complete.  This avoids some spurious
warning messages during startup.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22823 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Update ExternalProjectDependency based on commontk/Artichoke@da5367b

$ git shortlog 243982e..da5367b
Jean-Christophe Fillion-Robin (1):
      Fix typo preventing additional external project from being considered

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22824 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Associate FiberBundleToLabelMap module with BUILD_DIFFUSION_SUPPORT

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22825 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix typo introduced in previous commit

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22826 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: #3158 fix NUMPY build on Visual Studio 2010/2012

Patch Python distutils to avoid using a manifest as
discussed here:

http://mail.scipy.org/pipermail/numpy-discussion/2012-November/064488.html

From: Isaiah Norton <inorton@bwh.harvard.edu>

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22827 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Properly pass parameter to python_patch.cmake

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22828 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Specify python patch step only if MSVC variable is True

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22829 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Use PATCH_COMMAND to set python project patch step

Using PATCH_STEP was preventing python from being configured, using
PATCH_COMMAND is the only documented way of associating a patch step with
an external project.

See http://www.cmake.org/cmake/help/v2.8.12/cmake.html#module:ExternalProject

See #3158

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22830 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Python ExternalProject - Fix configure warnings, consistent symlinks

$ git shortlog 892c95b5..82e1494
Jean-Christophe Fillion-Robin (3):
      Merge branch '26-create-installed-python-executable-symlinks'
      Escape double-quote in ConfigureChecks to fix CMake 2.8.12.1 warnings.
      Merge branch '32-fix-cmake2.8.12.1-configure-warning'

Will Dicharry (1):
      Create versioned symlinks on install to match autoconf python install.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22831 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Ensure OpenSSL libs can be referenced with single-config generator

When building Slicer on windows, the OpenSSL libraries are
available for both Debug and Release in a single package.

This commit ensure that the library can also be referenced when building
on windows in the case a single config CMake generator like Ninja is used.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22832 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Tweak python external project to use CMAKE_CFG_INTDIR only when needed

This commit doesn't change the outcome of the current build process. It
simply re-organize the code to minimize confusion.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22833 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix parallel build associating patch step with "python-source" project

It is not clear why associating the PATCH_COMMAND with the python
project caused issue when doing parallel build using Ninja on Windows.
The patch step was executed before the download of python could finish.

This commit "resolves" the problem by associated the patch command
with the python source project.

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