COMP: Remove obsolete CMakeLists.txt

It's now more than one year that the Superbuild process has been
simplified, it doesn't really make sens to keep that file around.

Indeed, r15174 introduced an easier mechanism to build / super-build Slicer.

External project specification have been added to SuperBuild.cmake

Running:

  1) "cmake ../Slicer"

         => Build using SuperBuild: all dependency will be automatically
                                    checked out. configured and built.


  2) "cmake -DSlicer_SUPERBUILD:BOOL=OFF ../Slicer"

         => Build without Superbuild. It's expected that all required
                                      project paths are passed at configuration.

See [1] for more details.

[1] http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=15174

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19803 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: At build time on unix-like platform, ensure the python executable loads the appropriate library

* Instead of setting slicer_PYTHON_EXECUTABLE with the real python executable,
a launcher is installed and configured to set the environment and invoke
the real python executable.

* Since the windows launcher is currently based on the branch
"no-win32-console", enabling a similar mechanism will prevent the
text output of python executable from being displayed on the console.

Considering the python dll is located along with the executable, this is
not required to build successfully Slicer.

* Note also that to prevent the splash screen from being displayed, a
1x1 pixel transparent image have been associated to the launched.
See https://github.com/commontk/AppLauncher/issues/13

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19804 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Generate meaningful list of warnings by reducing Slicer warning level from 3 to 2

* Considering most of the warning a related to third party classes (for
example use of templated class), it doesn't make sens to enable such level.
It was overflowing the dashboard preventing from catching some more
interesting warnings.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19805 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add settings allowing to enable Extension Manager

* Edit -> Application Settings -> Extensions Settings -> "Enable extensions manager"

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19806 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Make sure qSlicerApplication compile with extensions manager support disabled

* Exclude code dealing with qSlicerSettingsExtensionsPanel
if Slicer_BUILD_EXTENSIONMANAGER_SUPPORT is OFF.

* Thanks to Dominique Belhachemi for reporting the issue :)

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19807 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Attempt to prevent vtkMRMLCameraDisplayableManagerTest1 from being perturbed by other tests.

* By setting the RUN_SERIAL property, this test won't run in parallel with
any other test.
See http://www.cmake.org/cmake/help/cmake-2-8-docs.html#prop_test:RUN_SERIAL

* This is an attempt to prevent issue like the one illustrated in [1]

* Moving forward, it may be safer to compare the actual data instead of
comparing screenshots.

[1] http://slicer.cdash.org/testDetails.php?test=1317222&build=14172

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19808 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add python module 'saferef' allowing to create weak reference to method/function.

* This module is the equivalent of built-in module 'weakref'. The difference
is that 'saferef' safely create weak reference to any function,
including bound methods whereas the 'weakref' module deals "only"
with objects [1].

[1] http://docs.python.org/library/weakref.html

* This module has been imported from "django" code base at revision 17875
See https://code.djangoproject.com/browser/django/trunk/django/dispatch/saferef.py?rev=17875

* The license associated is BSD. Since the code has been originally imported
from PyDispatcher and modified by django, both the license of (a) PyDispatched
and (b) Django are included at the top of the file.

 a) https://code.djangoproject.com/browser/django/trunk/django/dispatch/license.txt?rev=17875

 b) https://code.djangoproject.com/browser/django/trunk/LICENSE?rev=17875

* The associated unittest has also been added. Currently living in
"Base/Python/tests" and added within "Application/SlicerQT/Testing/Python/CMakeLists.txt",
this may change. The macro "SLICER_ADD_PYTHON_UNITTEST" has also been
adapted to understand absolute path.

* Currently, the test itself isn't installed, this may also change in
the future.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19809 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Avoid confusion by removing duplicated code

* Slicelet class was declared at two locations

* Note that all the code related to Slicelet should really be factored out
and tested. May be decorators could be created.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19810 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Address memory leaks associated with SlicerDICOM2FullBrainTractographyModuleGenericTest

* The first issue was related to the presence of a "circular reference"
which was preventing the ctkWorkflow from being properly garbage
collected.

By using the newly introduced module 'saferef', the call back declared
in 'full_tractography_workflow' and associated with a step can be referenced
using a weak reference and resolved when needed.

* The second issue came after the problem of circular reference has been
addressed. During python finalization, the workflow widget was dealing
with a dangling pointer to the ctkWorkflow. This was causing a crash.
By making use of QWeakPointer within the workflow widget, we can now make
sure the pointer to the workflow is in a good state.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19811 3bd1e089-480b-0410-8dfb-8563597acbee
BUG vtkMRMLScene::GetReferencedSubScene() creates referenced singleton nodes

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19812 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Use CData in CLI extension template XML description

Using CData allow to embed HTML tag like <p></p>, <br>in the
description and acknowledgements.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19813 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Associate a valid project name when building extensions using CTest

* The "WARNING non-zero return value in ctest from" was occurring on
windows and was the expression of one of the problem preventing the
build from being successfully driven and completed.

* By configuring properly the variable CTEST_PROJECT_NAME in CTestConfig,
the proper build command is now generated by CTest.

* the problem wasn't occurring on unix-like system because knowing the
project name is not required to either configure, build or package.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19814 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Simplify extension CMakeLists.txt moving description file generation.

The call to "slicerFunctionGenerateExtensionDescription" now happens
into SlicerExtensionCPack file. It has the inconvenient of
obfuscating where the generation of the extension description file
occurs but I believe it un-clutter the CMakeLists of each extension file.

This change is somewhat backward compatible. Indeed, if extension
maintainer does not update its CMakeLists, the file will be generated
two times.

It's possible to skip the generation of the file by setting the variable
Slicer_CPACK_SKIP_GENERATE_EXTENSION_DESCRIPTION to TRUE.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19815 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Prevent confusion by avoiding duplication of MSVC flag

* Since CMAKE_{C,CXX}_FLAGS is set using CMAKE_{C,CXX}_FLAGS_INIT,
Slicer_REQUIRED_{C, CXX}_FLAGS, ITK_REQUIRED_{C, CXX}_FLAGS, ..
settings these flag again is redundant.
See https://github.com/Slicer/Slicer/blob/bfb64c7b12c3406e2191fe33e2cda0a85840f2a5/CMakeLists.txt#L711

Indeed, CMAKE_{C,CXX}_FLAGS_INIT is already set with /W3 /Zm1000 /EHsc /GR
within "modules/Platform/Windows-cl.cmake
See http://cmake.org/gitweb?p=cmake.git;a=blob;f=Modules/Platform/Windows-cl.cmake;h=be6abb690d17705b7d8557da21ba08ab9dc18b10;hb=f999a59afe804063cebf4dd89ef99662829bf3e4#l156

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19816 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Force warning level 2 by updating CMAKE_{C,CXX}_FLAGS

Change introduced by r10805 reveals to be ineffective, indeed the warning
level /W2 was previously appended to the list of flags already configured.

Since only the first "/Wx" flag seems to be considered by CL.exe, this
commit make sure the default warning level is overwritten.

Note also that this change will affect only Slicer, external project
are not affected. Indeed "ep_common_{c, cxx}_flags" are set with
CMAKE_{C, CXX}_FLAGS_INIT and ADDITIONAL_{C, CXX}_FLAGS. It could probably
make sens to update CMAKE_{C, CXX}_FLAGS_INIT so that warning level of 2
is also used when compiling external project.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19817 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Make sure comments are consistent across all extension template CMakeLists.txt

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19818 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Ensure external projects are compiled with a warning level 2.

* Considering Slicer itself is now compiled with a warning level of 2,
it make sens to compiled all external project with a warning level
lower or equal.

See also r19791, r19805 and r19817

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19819 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Ensure Slicer inner project is configured with a warning level 2.

Since the variable Slicer_REQUIRED_{C, CXX}_FLAGS where used to configure
the inner project, the content of SlicerBlockCXXRequiredFlags wasn't
evaluated because it was inside a "if(Slicer_REQUIRED_C_FLAGS ...)" statement.

Moving the update of CMake C/CXX flags outside of the if statement should
ensure Slicer inner-build is configured with the appropriate warning level.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19820 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Facilitate maintenance by keeping overwrite of warning level in one location.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19821 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Move build option specific to SlicerQT into associated CMakeLists.txt

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