try_compile: Add signature to allow multiple SOURCES

Extend the signature

 try_compile(RESULT_VAR <bindir> <srcfile> ...)

to allow multiple sources as

 try_compile(RESULT_VAR <bindir> SOURCES <srcfile>... ...)

Process the sources to generate a CMakeLists.txt that enables all needed
languages.

Teach the TryCompile test to try cases with two sources of the same
language and of mixed languages.  Teach RunCMake.try_compile to cover
error cases for the signature.
Use --sysroot when cross compiling.

As CMAKE_ROOT_FIND_PATH can be a list, a new CMAKE_SYSROOT is
introduced, which is never a list.

The contents of this variable is passed to supporting compilers
as --sysroot. It is also accounted for when processing implicit
link directories reported by the compiler, and when generating
RPATH information.
Add missing 'seen' check for evaluating COMPILE_OPTIONS.

Commit 089fe1c1 (Optimize genex evaluation for includes and
defines., 2013-02-01) introduced an optimization on DAG processing
to not reprocess properties on targets which have already been seen.

This was refactored slightly in commit 8dfdf1c7 (Fix the tests for
evaluating includes and defines., 2013-02-18), but was not extended
to cover COMPILE_OPTIONS in commit 80ca9c4b (Add COMPILE_OPTIONS target
property., 2013-05-16).

This omission causes the same performance regression in running
cmake on LLVM which 089fe1c1 fixed before, but this time for the
transitive evaluation of the COMPILE_OPTIONS property.
Find targets in INTERFACE_COMPILE_OPTIONS when exporting for try_compile.

This was missing from commit 80ca9c4b (Add COMPILE_OPTIONS target
property., 2013-05-16).
Use a preprocessor loop to manage the valid transitive properties.

Hopefully this will prevent regressions when adding further transitive
properties in the future.
Generate INTERFACE_COMPILE_OPTIONS on export.

This was missing from commit 80ca9c4b (Add COMPILE_OPTIONS target
property., 2013-05-16).
Add compiler target compile options.

For clang, this allows passing -target <triple> to the compiler, and
for qcc, -V<arch> using toolchain files containing something like

 set(triple arm-linux-gnueabihf)
 set(CMAKE_C_COMPILER "/usr/bin/clang")
 set(CMAKE_C_COMPILER_TARGET ${triple})
 set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
 set(CMAKE_CXX_COMPILER_TARGET ${triple})

or

 set(arch gcc_ntoarmv7le)
 set(CMAKE_C_COMPILER /opt/qnx650/host/linux/x86/usr/bin/qcc)
 set(CMAKE_C_COMPILER_TARGET ${arch})
 set(CMAKE_CXX_COMPILER /opt/qnx650/host/linux/x86/usr/bin/QCC)
 set(CMAKE_CXX_COMPILER_TARGET ${arch})

Both clang and qcc are inherently cross compiler( driver)s.
QtAutomoc: Fix handling of list separator for compile definitions.
QtAutomoc: Use config-dependent compile definitions and includes.

Instead of always using the includes and defines which are not
config-specific, ensure that the config specific ones can be used.

Task-number: #13589
De-duplicate version comparison code.

Extend the VersionCompare in cmSystemTools to handle 8 components,
and port the if command to use that.
Add generator expressions for version comparision.
VS: Add support for .NET target framework version

Teach CMake to generate the TargetFrameworkVersion XML node as
documented at

 http://msdn.microsoft.com/en-us/library/vstudio/ff770576.aspx

from target property VS_DOTNET_TARGET_FRAMEWORK_VERSION.
Split cmBootstrapCommands.cxx into two sources

The single translation unit has grown too large for some compilers.
Split it into cmBootstrapCommands1.cxx and cmBootstrapCommands2.cxx.
Document CMAKE_INSTALL_PREFIX in CMAKE_SYSTEM_PREFIX_PATH

Add documentation to both variables to indicate that the install prefix
is also searched.
UseJava.cmake: document add_jar compat shim

Document the logic that parses for backward compatibility the old
variables that were used to control add_jar prior to named argument
support. In particular, document that the reason this logic exists is
for backward compatibility, and that new features do not need to add to
it.
Add cmake_host_system_information command

Expose the internal system information API to the CMake language.  For
example, it is useful to see how much memory the system has available to
estimate an upper limit of tests that can run in parallel.
cmake: Document "-E tar" support for .zip (#14225)

Through use of libarchive internally we support .zip files as well as
.tar format.  The ExternalProject module makes use of this feature.
Document support officially.
FindGTK2: Move check for pangocairo in gtk module
FindGTK2: Detect gthread library
FindX11: Search in /opt/X11 for OS X 10.8 (#14232)

As of Mac OS X 10.8, X11 is no longer installed under /usr/X11, but
under /opt/X11.