cmLocalUnixMakefileGenerator3: Re-organize ConvertToQuotedOutputPath

Use one code path whether the components list is empty or not.
Fix indentation accordingly.
Makefile: Generate single-quoted object lists for Watcom

Drop the CMAKE_NO_QUOTED_OBJECTS internal variable from the Makefile
generators.  The underlying problem is with the Watcom linker, not with
WMake.  The Watcom linker wants object files to be single-quoted.  Add
<LINK-RULE>_USE_WATCOM_QUOTE platform information variables to tell the
generators to use Watcom-style single quotes for object files on link
lines.

On Windows, Watcom uses the GetCommandLine API to get the original
command-line string and do custom parsing that expects single quotes.
On POSIX systems, Watcom approximates the original command line by
joining all argv[] entries separated by a single space.  Therefore we
need to double-quote the single-quoted arguments so that the shell does
not consume them and they are available for the parser to see.
ProcessorCount: use mpsched on HPUX if machinfo is not present

Co-Author: Gerhard Grimm <gerhard.grimm@detec.com>
Check*.cmake : Add CMAKE_REQUIRED_QUIET flag.

Setting this flag can silence messages from the Check*.cmake modules.
This can be used by Find*.cmake modules when they are in silent mode.
Find*: Make find_package(.. QUIET) affect Check* modules.

Fixes issues #14812 and #14813 where find_package(OpenMP QUIET) and
find_package(Qt4 QUIET) would still print out messages when calling
check*() functions.

Also a partial fix for  #14445 where building CMake
(without cmake-gui) when Qt5 is installed and Qt4 is not installed
and warnings come out of FindQt4.cmake.
cmake-gui: Don't resolve symlinks with using file dialog.

This fixes bug #14274 where a clang++ symlink was resolved to
a clang executable.
create_test_sourcelist: Initialize variable at declaration

Clang -Wconditional-uninitialized warns otherwise.
Remove 'return' statements that can never be reached

Clang -Wunreachable-code-return warns otherwise.
Policies: omit warnings about unset policies when they are actually set to NEW
Help: Add option to create and install Qt .qch file.
UseSWIG: Enable NO_SONAME on swig modules (#14815)

Swig modules are plugins and do not need the SONAME field set.
ExternalProject: Strip trailing space from git hash
ExternalProject: Improve handling of git remote branches

ExternalProject handles git remote branches by commit hash. Due to
this, the git repository ends in detached states, and local commits
are discarded.

Use "git rebase" for remote branches instead of "git checkout".  If
there are uncommitted changes, use "git stash save/pop" to save changes
and restore them after the rebase.  If any of these operations fails,
try to restore the original status and exit with a fatal error, asking
the user to resolve the conflicts manually.

This also makes the behaviour of ExternalProject using git more similar
to the svn version, and probably more likely to what the user expects
by setting GIT_TAG to a branch.
Ninja: Simplify code for linker commands

Use GetCreateRuleVariable function instead of redundant code for Rule
variable name.  Use temporary variables to improve code.
Merge topic 'UseSWIG-NO_SONAME'

f26147b8 UseSWIG: Enable NO_SONAME on swig modules (#14815)
Merge topic 'link-line-quoting'

423009c1 Makefile: Generate single-quoted object lists for Watcom
a863a8fe cmLocalUnixMakefileGenerator3: Re-organize ConvertToQuotedOutputPath
Merge topic 'ExternalProject_GitUpdate'

f2128d4c ExternalProject: Improve handling of git remote branches
ff2451dc ExternalProject: Strip trailing space from git hash
Merge topic 'hpux-processorcount'

c3e238dd ProcessorCount: use mpsched on HPUX if machinfo is not present
Merge topic 'find_package-check-quiet'

83934757 Find*: Make find_package(.. QUIET) affect Check* modules.
4c0cc9ab Check*.cmake : Add CMAKE_REQUIRED_QUIET flag.
Merge topic 'cmake-gui-symlinks'

480be00b cmake-gui: Don't resolve symlinks with using file dialog.