Adding support for the Python coverage.py tool.

This assumes that coverage.py has been run in such a way to produce its
standard XML output. This uses the Cobertura schema and should be somewhat
generalizable.
CMake Nightly Date Stamp
CMake Nightly Date Stamp
Pull the coverage.xml file from the binary directory.

This is more consistent with typical CMake-driven development. Thanks
go to Rolf Eike Beer for making this point on the developers list.
Adding a test for Python coverage.py xml output.
Fix the failing coverage test by removing an off-by-one error.
Cleaning up logging output and eliminating redundant comments.
Improving python coverage error handling.

Properly incrementing the Error variable and output a message with the
ERROR context where appropriate.
CMake Nightly Date Stamp
Warn and skip multiple custom commands for the same output (#14446)

In buggy code like

 add_custom_command(
   OUTPUT  ${CMAKE_CURRENT_BINARY_DIR}/out.h
   MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/out.h.in
   ...)
 add_custom_command(
   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/out.h
   ...)

that has more than one rule to generate the same output CMake has always
used the first rule.  However, since commit 2268c41a (Optimize custom
command full-path dependency lookup, 2013-08-06) we update the map from
output to cmSourceFile for every rule generating an output, effectively
keeping the last command instead of the first.

Fix this regression by checking for each map update if the output
already has an entry.  If so, keep only the original entry.  Also
generate a warning to help authors track down such cases and fix their
projects.
Merge topic 'fix-duplicate-custom-commands' into next

68bfed6 Warn and skip multiple custom commands for the same output (#14446)
Make the dummy method public.

This may satisfy the Watcom compiler:

 D:\Dashboards\My Tests\CMake\Tests\PositionIndependentTargets\pic_lib.cpp(7): Warning! W011: col(1) all members are private
 Linking CXX static library test_target_static_library_properties.lib
 [ 53%] Built target test_target_static_library_properties
 Scanning dependencies of target sharedlib
 [ 61%] Building CXX object interface/CMakeFiles/sharedlib.dir/__/pic_lib.cpp.obj
 Linking CXX shared library sharedlib.dll
 Error! No exports in 'sharedlib.dll'
 Error(E42): Last command making (interface\sharedlib.dll) returned a bad status
 Error(E02): Make execution terminated
 Error(E42): Last command making (interface\CMakeFiles\sharedlib.dir\all) returned a bad status
 Error(E02): Make execution terminated
 Error(E42): Last command making (all) returned a bad status
 Error(E02): Make execution terminated
Merge topic 'INTERFACE_LIBRARY-target-type' into next

fb8329d Make the dummy method public.
Replace generated export headers with defines.

The generated headers are not used, but pic_test.h is used instead,
which depends on the definition of PIC_TEST_BUILD_DLL.
Merge topic 'INTERFACE_LIBRARY-target-type' into next

9a435e7 Replace generated export headers with defines.
Merge topic 'Add-coverage.py-Coverage' into next

ddc5cbe Improving python coverage error handling.
eeb110a Cleaning up logging output and eliminating redundant comments.
a1bf495 Fix the failing coverage test by removing an off-by-one error.
cb2d8b5 Adding a test for Python coverage.py xml output.
5d6b090 Pull the coverage.xml file from the binary directory.
6ee1404 Adding support for the Python coverage.py tool.
Remove call to base class default contructor.

Some compilers complained.
Merge topic 'Add-coverage.py-Coverage' into next

1783c54 Remove call to base class default contructor.
Do not warn on multiple custom commands for the same output (#14446)

The VS 8 generator triggers the warning, and it is possible there are
valid use cases with different rules to generate the same output going
into different targets with different MAIN_DEPENDENCY options.  Leave
a TODO comment for warning in the future.
Merge topic 'fix-duplicate-custom-commands' into next

3e888ca Do not warn on multiple custom commands for the same output (#14446)