CMakeDetermineCompilerABI: Link with standard libraries on MSVC

In commit v2.8.0~395 (Implicit link info for C, CXX, and Fortran,
2009-07-23) we added a '-DCMAKE_${lang}_STANDARD_LIBRARIES=' flag to the
try_compile used to build the ABI detection project.  It is needed when
detecting the implicit libraries added by the GNU compiler on Windows
(MinGW tools) to avoid contaminating the list with standard Windows
libraries.  However, with MSVC we do not detect such implicit link
libraries anyway, and for some target platforms (e.g. Windows Phone) we
may need the standard libraries to link the ABI detection executable.
Drop the flag when detecting the ABI using MSVC.
VS: Mark CMake-generated targets as Utility in .vcxproj files

Targets like 'INSTALL' and 'RUN_TESTS' are Utility targets.
Fix the VS >= 10 generator to set this correctly.  We already
do so for VS < 10.
VS: Set Window Phone/Store app type in CMake-generated targets

Generate the ApplicationType and ApplicationTypeRevision elements in
.vcxproj files for CMake-generated targets like 'INSTALL' and
'RUN_TESTS'.  This was accidentally left out of commit 709cebde (VS:
Generate WindowsPhone and WindowsStore application types, 2014-07-31).
VS: Handle AppxManifest sources explicitly in generator

Teach cmGeneratorTarget to extract .appxmanifest sources separately.
Teach cmVisualStudio10TargetGenerator to write them with the
AppxManifest tool in .vcxproj files.  This will allow us to detect
whether the project provides an application manfiest explicitly.
VS: Handle .pfx files explicitly in generator

Teach cmGeneratorTarget to classify .pfx files as package
certificate key files.  Teach cmVisualStudio10TargetGenerator
to write them as PackageCertificateKeyFile in .vcxproj files.

Inspired-by: Minmin Gong <minmin.gong@gmail.com>
VS: Add VS_WINRT_COMPONENT property to enable CompileAsWinRT

Deprecate VS_WINRT_EXTENSIONS and document VS_WINRT_COMPONENT as for VS
generators only.  Also define _WINRT_DLL in SHARED libraries in order to
get a .lib produced.

Inspired-by: Paul Annetts <paul@lightunobscured.com>
VS: Generate Windows Phone and Windows Store projects as Unicode
VS: Generate Windows Metadata for WinRT components

Inspired-by: Paul Annetts <paul@lightunobscured.com>
VS: Always ignore ole32 on Windows Phone 8.0

Inspired-by: Paul Annetts <paul@lightunobscured.com>
Load CMAKE_USER_MAKE_RULES_OVERRIDE[_ASM] for assembler (#15108)

This is already done for C, CXX, and Fortran.
StringUuid: Implement new string(UUID) sub-command.
CTest: Add missing space in command line help.
VS: Mark Windows Phone and Store targets as App Containers

* Add AppContainerApplication to non-UTILITY targets
* Generate app manifest and related files if project does not provide them.
  Place them in a per-target directory to avoid clashes.
* Mark WinRT components with WinMDAssembly
* Import Windows Phone 8.0 targets in .vcxproj files when necessary,
  and reference platform.winmd.

Inspired-by: Paul Annetts <paul@lightunobscured.com>
VS: Do not compile C sources as WinRT (#15100)

The MSVC /ZW flag is valid only for C++ sources.  Whenever we enable
CompileAsWinRT for the whole target, disable it for all C sources.
Update the documentation of VS_WINRT_COMPONENT to drop the statement
about undefined behavior for non-C++ sources, because it is now
defined as expected.
Help: Add notes for topic 'vs-windows-apps'
MSVC: Define 'WIN32' for Windows Store and Windows Phone

This was accidentally left out of commit c72f0887 (MSVC: Add default
WindowsPhone and WindowsStore compile flags, 2014-07-28).
VS: Add test case for Windows Phone and Windows Store

Add tests to build for each version of each system when the
corresponding tools are available.
Merge topic 'vs-windows-apps'

39fefde2 VS: Add test case for Windows Phone and Windows Store
89da8465 MSVC: Define 'WIN32' for Windows Store and Windows Phone
ed7f085f Help: Add notes for topic 'vs-windows-apps'
dd11ae8f VS: Do not compile C sources as WinRT (#15100)
b8e40538 VS: Mark Windows Phone and Store targets as App Containers
0432f062 VS: Always ignore ole32 on Windows Phone 8.0
e6ff2f8b VS: Generate Windows Metadata for WinRT components
ee48f4c7 VS: Generate Windows Phone and Windows Store projects as Unicode
cb1aceed VS: Add VS_WINRT_COMPONENT property to enable CompileAsWinRT
401269e4 VS: Handle .pfx files explicitly in generator
23782171 VS: Handle AppxManifest sources explicitly in generator
bc373c6d VS: Set Window Phone/Store app type in CMake-generated targets
d89b2889 VS: Mark CMake-generated targets as Utility in .vcxproj files
03ad8f28 CMakeDetermineCompilerABI: Link with standard libraries on MSVC
Help: Add notes for topic 'string-uuid'
liblzma: Added a missing config check for _Bool

This fixes a current build problem for liblzma on Solaris 10, SPARC,
and the Solaris Studio compiler.