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
COMP: Exclude tests relying on console output when Slicer_BUILD_WIN32_CONSOLE is ON

This should prevent the following tests from failing when option
Slicer_BUILD_WIN32_CONSOLE is OFF:

   qSlicerApplicationTpyclTest1

   slicer_nomainwindow_DisableModulesCommandLineOptionsTest

   MRMLCreateNodeByClassWithoutSetReferenceCount (if VTK_DEBUG_LEAKS also ON)


Also introduced the convenient variable Slicer_HAS_CONSOLE_IO_SUPPORT

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19823 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: removed unused functions from helper
STYLE: reference the layout by name using enum
fixes contributed by JC


git-svn-id: http://svn.slicer.org/Slicer4/trunk@19824 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Ensure that console IO is enabled when Slicer is started from build tree

* Version 0.1.5 rc1 of the launcher is now used.

* The launcher has some new command line options:
   --launcher-version             Show launcher version information
   --launcher-dump-environment    Launcher will print environment variables to be set, then exit
   --launcher-additional-settings Additional settings file to consider

* It also now detects if Qt special command line option are passed
and make sure to pass them to the application to launch.
See http://doc.qt.nokia.com/latest/qapplication.html#QApplication

* On platform that support it, an additional launcher executable is
available. The additional launcher will have the suffix "W" appended
to its name and doesn't have console IO support. This second launcher
is considered when packaging Slicer. Indeed, having the console attached
to the launcher when starting Slicer from an install tree is not wanted.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19825 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: remove unused functions
BUG: remove unnecessary dependency on tcl
fixes contributed by JC


git-svn-id: http://svn.slicer.org/Slicer4/trunk@19826 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Ensure environment is set when running "out-of-source" modules tests.

In the case of extensions bundling modules or module simply built against
a Slicer build-tree, it's common to have either an executable (CLI)
or a plugin (loadable module) that depends on other libraries provided
by the module itself (logic and MRML libraries for example).

In order to successfully be able to run the tests, a file containing
additional settings specific to the module is configured. These settings
include:
  Paths
  LibraryPaths
  EnvironmentVariables (for example PYTHONPATH)

These settings are similar to the values used to update SlicerLauncherSettings.ini
when an extension is installed using the  extension manager model.

Since the LAUNCH_COMMAND is updated with the option '--launcher-additional-settings'
associated with the additional settings file, the tested executables
and libraries should be able to resolve their dependencies properly.

Note also that PYTHONPATH is updated so that python module associated with
a module could be imported. For example, the scripted module.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19827 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: Fix comments in SlicerMacroSimpleTest

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19828 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: Ensure Launcher withou IO Console support is installed when it applies.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19829 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Extension build system should not udpate Slicer source.

Currently the extension build system is used solely to build the
extensions located inside "Slicer/Extensions" directory, if the system
is building these extensions it should not update the associated
repository. Be not updating, we ensure that the extension will be built
against the expected Slicer revision.

As a "quick fix". let's just disable the update using the variable
"run_ctest_with_update".

Moving forward, the mechanism should be revised to support the situation
where "extension description" are in one repo and the "Slicer source"
in a different one.

In that case, if a continuous dashboard is setup, the revision number associated
with Slicer repo should be extracted. Then, very 5 minutes, the revision
extracted from Slicer repo should be compared to the save one.
If they are different, the rebuild of extension should be triggered.

Additionally, if the repo hosting the extension description is updated,
the rebuild should also be triggered.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19830 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fix issue in logic setting environment for "out-of-source" modules tests.

"CMAKE_CFG_INTDIR" variable is now evaluated at the right moment so that
the appropriate intermediate directory is used to configure the
AdditionalSettings file.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@19831 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Prevent a warning level 4 by not using 'vtkDetermineCompilerFlags'

By forcing the warning level to 4, this VTK CMake block was not helping us.

In addition of setting flags for platform no supported by Slicer (AIX, HP-UX, ..)
, it is setting the /MP<X> [1] flags elegantly. This will probably be added
in a following commit.

[1] http://msdn.microsoft.com/en-us/library/bb385193(v=vs.90).aspx

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