SelectLibraryConfigurations: Do not cache the _LIBRARY variable

SelectLibraryConfigurations module currently cache and mark as advanced
the variable ${basename}_LIBRARY.
${basename}_LIBRARY_RELEASE and ${basename}_LIBRARY_DEBUG are usually
cached, because they often come from find_library().
${basename}_LIBRARY on the other hand is always of type
"optimized;${${basename}_LIBRARY_RELEASE};debug;${${basename}_LIBRARY_DEBUG}"
or just "${basename}_LIBRARY_RELEASE" or "${basename}_LIBRARY_DEBUG" if
only one version of the library is not found, if both have the same
value, or if configuration types are not supported.

Caching and marking as advanced just ${basename}_LIBRARY_RELEASE and
${basename}_LIBRARY_DEBUG is enough, just by modifying these two
variables, the user has enough control on finding the library, and
having 3 variables is redundant and confusing.
OS X: Enable rpath support on Mac OS X when find_library() is used.
add_test: Document test name restrictions (#14298)
UseJava: Update notice of copyright by Kitware
add_custom_command: Manage backtrace memory correctly (#14299)

Add an assignment operator to cmCustomCommand to copy the Backtrace
member pointee and avoid multiple-free on destruction.

Reported-by: Vitezslav Cizek <vcizek@suse.cz>
Teach compiler ABI check to tolerate try_compile COPY_FILE failure

In CMakeDetermineCompilerABI we use try_compile with the COPY_FILE
option to get a copy of the compiled binary used to detect the ABI
information.  We already tolerate the case when compilation fails.
However, when compilation appears to succeed but does not produce the
expected executable the try_compile command immediately reports an error
because the COPY_FILE fails.

Tolerate COPY_FILE failure without stopping the overall configuration
process by using the try_compile COPY_FILE_ERROR option to capture the
error message.  Log the full error to CMakeError.log and simply report
failure to detect the ABI as if compilation had failed.

Teach the RunCMake.Configure test to cover this case and verify that the
messages show up as expected both in stdout and in CMakeError.log.
CMake Nightly Date Stamp
Don't add trailing whitespace to error message.
Remove TODO to uniq COMPILE_OPTIONS

Compile options should not be passed through a uniq filter because
repeated use of an option may have siginificance.
Merge topic 'doc-add_test-names'

d017058 add_test: Document test name restrictions (#14298)
Merge topic 'UseJava-copyright'

53431ea UseJava: Update notice of copyright by Kitware
Merge topic 'custom-command-assignment'

17c841c add_custom_command: Manage backtrace memory correctly (#14299)
Merge topic 'abi-check-tolerate-COPY_FILE-failure'

4dc4018 Teach compiler ABI check to tolerate try_compile COPY_FILE failure
CMake Nightly Date Stamp
MinGW: Find mingw32-make included with Code::Blocks IDE (#14302)

If one installs MinGW using the Code::Blocks IDE installer it goes to a
path like "c:\Program Files\CodeBlocks\MinGW", not "c:\MinGW".  Use the
CodeBlocks registry entry to get the location.

Signed-off-by: Jason Spiro <jasonspiro4@gmail.com>
CPackWIX: Handle CPACK_PACKAGE_EXECUTABLES (#13967)

Add start menu items including an uninstall shortcut.  Add variable
CPACK_WIX_PROGRAM_MENU_FOLDER to configure folder name.
CPackWIX: Fix MSI package layout regression from parent

The parent commit added a regression where if the install directory had:

  parent
    child A
    child B

the produced MSI would install:

  parent
    child A
       child B
CPackWIX: Handle multiple shortcuts in the start menu
CPackWIX: Add option to specify the language(s) of the installer

Add option "CPACK_WIX_CULTURES".
CMakeCPack: Provide an upgrade guid for WiX

Set CPACK_WIX_UPGRADE_GUID.  Without this upgrade GUID, you end up with
multiple instances of the same installation when installing cmake from a
WIX generated installer.