Refactor how bundles and frameworks are supported.

Make handling of directory separators consistent between
non-bundle and bundle code.

Remove xcode specific flag from cmTarget when getting install_name.

Add (more) consistent convenience functions in cmTarget to get
directories inside of bundles and frameworks to add files to.

This refactor also fixes bug #12263 where frameworks
had the wrong install name when SKIP_BUILD_RPATH.

Also make install_name for frameworks consistent between Makefile
and Xcode generator.
Use the qt5::moc imported target instead of a variable.

The variable is provided in the Qt5 config files only for compatibility
with this automoc feature, so use the more-future-proof method instead.
QtAutomoc: Get the Qt version through the target link interface

In Qt 5.1, Qt5::Core has a INTERFACE_QT_MAJOR_VERSION property
of '5', and since CMake 2.8.11, Qt4::QtCore has an
INTERFACE_QT_MAJOR_VERSION of '4'. This was introduced in
commit 4aa10cd6 (FindQt4: Set the INTERFACE_QT_MAJOR_VERSION for
Qt4::QtCore, 2013-03-16), to produce an error if Qt 4 and Qt 5
are erroneously used by the same target. This can also be used
however to determine the Qt major version, and therefore the
particular moc executable to use during automoc steps. This means
that targets in a single buildsystem can use a selection of Qt 4
and Qt 5, and still take advantage of the CMAKE_AUTOMOC feature
without conflicting.
SelectLibraryConfigurations: Fix for cached <base>_LIBRARY

The line

  set( ${basename}_LIBRARY )

removes the normal variable, but if the corresponding cached variable is
present then line

  list( APPEND ${basename}_LIBRARY optimized "${_libname}" )

uses that and fails.  Replace the original line with

  set( ${basename}_LIBRARY "" )

to set the normal variable to empty instead of unsetting it.
FindImageMagick: Find v6 include dir (#14174)

The header files of ImageMagick are now located at
<prefix>/include/ImageMagick-6 instead of <prefix>/include/ImageMagick.
Fix indentation.
Xcode: Add support for shared library versioning

Add a post-build command to shared library targets to create the
versioning symbolic links.
VS: Add VS_GLOBAL_ROOTNAMESPACE target property

Add a setting for Visual Studio projects for the root namespace in the
"Globals" PropertyGroup section of the project file.
try_compile: Add test for bad call error cases

Add a RunCMake.try_compile test to cover cases of bad invocation of the
try_compile command.
try_compile: Refactor argument processing

Process all arguments in a single loop using a simple state machine.
While at it, fix some error message typos.  Also allow LINK_LIBRARIES
with no actual libraries to disable use of the -DLINK_LIBRARIES=...
from the CMAKE_FLAGS.  This was already possible in the old logic if
LINK_LIBRARIES was immediately followed by another keyword argument
instead of the end of the argument list, so allow it in general.
Update the RunCMake.try_compile test cases accordingly.
VS6: Rename some variables to correspond to config values.

This simplifies population of the compile flags.
Add cmLocalGenerator::GetCompileOptions.

Currently it only adds the contents of the COMPILE_FLAGS target
property, but it can be extended to handle a new COMPILE_OPTIONS
generator expression enabled property.
Add <LANG>_COMPILER_ID generator expressions.

These expressions evaluate to the id of the compiler used to build
the target, or can be used to test if the compiler id matches a
specified value.
cmTarget: Rename struct to be more re-usable.

The same struct can be used to represent COMPILE_OPTIONS content.
cmTarget: Rename LinkInterfaceIncludeDirectoriesEntries

This can be used for COMPILE_OPTIONS too.
Add COMPILE_OPTIONS target property.

This method reads generator expressions from the COMPILE_OPTIONS
target property, as well as INTERFACE_COMPILE_OPTIONS from linked
dependents.
Add target_compile_options command.

This command populates the COMPILE_OPTIONS target property.
replace string(... MATCHES "^const$) with string(... STREQUAL "const")
FindQt4: Don't fail if certain Qt modules are unavailable.
Qt4Macros: Handle Qt ActiveX libraries in qt4_use_modules.

These libraries have non-conventional variable names.