Using cmany with Visual Studio
******************************


TL;DR
=====

The general form for choosing the Visual Studio compiler version with
cmany is:

   <vs_version>[_<architecture>][_<vs_toolset>]

where:

* "<vs_version>" is one of "vs2019", "vs2017", "vs2015", "vs2013",
  "vs2012", "vs2010", "vs2008" or "vs2005"

* "<architecture>" is one of "32", "64", "arm", "ia64". Defaults to
  the native architecture when omitted.

* as for "<vs_toolset>":
     * when omitted, uses the default toolset of the chosen VS version

     * when either "clang" or "xp" is given, uses the default toolset
       of the chosen VS version for either clang or xp

     * otherwise, one of:
          * from "vs2019": "v142", "v142_clang", "v142_clang_c2",
            "v142_xp"

          * from "vs2017": "v141", "v141_clang", "v141_clang_c2",
            "v141_xp"

          * from "vs2015": "v140", "v140_clang", "v140_clang_c2",
            "v140_xp"

          * from "vs2013": "v120", "v120_xp"

          * from "vs2012": "v110", "v110_xp"

          * from "vs2010": "v100", "v100_xp"

          * from "vs2008": "v90", "v90_xp"

          * from "vs2008": "v80"

Note that not every combination is valid:
   * you cannot use toolsets newer than your chosen VS version

   * "arm" is not available in VS versions older than VS2012

   * "ia64" is not available in VS versions later than VS2012

   * "clang" is not available in versions older than VS2015.

Note:

  cmany defaults to using the native architecture when no target
  architecture is specified. For example, the command "cmany b -c
  vs2015" will produce a 64 bit build when it is run in a 64 bit
  system; but when it is run in a 32 bit system it will produce a 32
  bit build.This contrasts with cmake: "cmake -G "Visual Studio 15
  2017" ../.." will produce a 32 bit build in any system.


VS alias examples
=================

* "vs2015": depending on the native architecture, same as "cmake -G
  "Visual Studio 14 2015"" **OR** "cmake -G "Visual Studio 14 2015
  Win64""

* "vs2015_clang": ditto, but use the "v140_clang_c2" toolset

* "vs2015_arm": same as "cmake -G "Visual Studio 14 2015 ARM""

* "vs2015_32_clang": same as "cmake -G "Visual Studio 14 2015" -T
  v140_clang_c2"

* "vs2015_64_clang": same as "cmake -G "Visual Studio 14 2015 Win64"
  -T v140_clang_c2"

* "vs2017_64_v140": same as "cmake -G "Visual Studio 15 2017 Win64" -T
  v140". This will generate a VS2017 solution for x86_64 which is
  compiled with the "v140" toolset which is from VS2015.

======================================================================


Complete explanation
====================

Visual Studio (VS) has an awkward numbering system: the year and the
version number (it also has a different version number for the
"cl.exe" compiler, but fortunately we have no need to deal with that
here). Sadly, and confusingly, these have similar values, and cmake
forces you to deal with this by having to explicitly state the full
Visual Studio version and year.

cmany tries to help in this situation by making it easier to specify
which Visual Studio IDE version and toolset version to use via a
simple naming scheme. For example, this will create two VS projects
**in the native architecture** (eg, x86_64), but with different
versions:

   $ cmany b -c vs2015,vs2017,vs2019

As usual, this would be the result the command:

   $ ls -1 build/*
   build/windows-x86_64-vs2015-Release/
   build/windows-x86_64-vs2017-Release/
   build/windows-x86_64-vs2019-Release/

For comparison, to achieve this with direct use of CMake, the
equivalent (bash) commands would have to be:

   $ mkdir build/windows-x86_64-vs2015-Release
   $ mkdir build/windows-x86_64-vs2017-Release
   $ mkdir build/windows-x86_64-vs2019-Release
   $ cd build/windows-x86_64-vs2015-Release
   $ cmake -G "Visual Studio 14 2015 Win64" ../..
   $ cd -
   $ cd build/windows-x86_64-vs2017-Release
   $ cmake -G "Visual Studio 15 2017 Win64" ../..
   $ cd -
   $ cd build/windows-x86_64-vs2019-Release
   $ cmake -G "Visual Studio 15 2019 Win64" ../..
   $ cd -

A further point of confusion with Visual Studio is that a given VS
solution version actually consists of two separate items: a) the
compiler version (the toolset) and b) the IDE version. When you run eg
"cmake -G "Visual Studio 14 2015"" you get a solution for editing your
code with the 2015 IDE, *and* your code will be compiled with Visual
Studio 2015's default toolset which is "v140". But you do not have to
use this toolset when using the VS 2015 IDE. For example, you can
generate a 2015 solution which uses the 2013 toolset, "v120". To do
that in CMake, the command would be "cmake -G "Visual Studio 14 2015"
-T v120".

The issue of the Visual Studio toolsets was made less of a corner case
with the recent addition (since VS 2015) of a clang frontend, which is
convenient for multi-compiler validation of a project's code. So
making it easier to specify non-standard VS toolsets was also from the
outset a requirement for cmany.


Aliasing scheme
===============

cmany allows you to create any valid combination of the Visual Studio
project versions (from vs2017 to vs2005), target architectures (32,
64, arm, ia64) and toolsets (from v141 to v80, with clang_c2 and xp
variants). The general form for the cmany VS alias is:

   <vs_version>[_<vs_platform>][_<vs_toolset>]

Note that the platform or the toolset can be omitted, in which case a
sensible default will be used:

   * if the platform is omitted, then the current platform will be
     used

   * if the toolset is omitted, then the toolset of the given project
     version will be used.

Note also that the order must be exactly as given: first the VS
version, then the platform, then the toolset. For example, when the
platform is omitted, then the alias should have the following form:

   <vs_version>[_<vs_toolset>]

When the toolset is omitted, then the alias should have the form:

   <vs_version>[_<vs_platform>]

If both the architecture and platform are omitted, then the alias
becomes simply:

   <vs_version>

Check the VS alias examples for seeing this scheme at work. The next
subsections give a complete enumeration of the possible values for
each item in the triplet.


Visual Studio versions
----------------------

Here's a correspondence between the basic cmany names and the cmake
specification. CMake simultaneously specifies the VS version and the
target architecture.

+-------------------+-----------------------------------+------------------------------+
| cmany             | cmake                             | target architecture          |
|===================|===================================|==============================|
| "vs2019"          | "Visual Studio 16 2019 ???"       | native, ie 32 or 64 bits     |
+-------------------+-----------------------------------+------------------------------+
| "vs2019_32"       | "Visual Studio 16 2019"           | x86                          |
+-------------------+-----------------------------------+------------------------------+
| "vs2019_64"       | "Visual Studio 16 2019 Win64"     | x86_64                       |
+-------------------+-----------------------------------+------------------------------+
| "vs2019_arm"      | "Visual Studio 16 2019 ARM"       | arm                          |
+-------------------+-----------------------------------+------------------------------+
| "vs2017"          | "Visual Studio 15 2017 ???"       | native, ie 32 or 64 bits     |
+-------------------+-----------------------------------+------------------------------+
| "vs2017_32"       | "Visual Studio 15 2017"           | x86                          |
+-------------------+-----------------------------------+------------------------------+
| "vs2017_64"       | "Visual Studio 15 2017 Win64"     | x86_64                       |
+-------------------+-----------------------------------+------------------------------+
| "vs2017_arm"      | "Visual Studio 15 2017 ARM"       | arm                          |
+-------------------+-----------------------------------+------------------------------+
| "vs2015"          | "Visual Studio 14 2015 ???"       | native, ie 32 or 64 bits     |
+-------------------+-----------------------------------+------------------------------+
| "vs2015_32"       | "Visual Studio 14 2015"           | x86                          |
+-------------------+-----------------------------------+------------------------------+
| "vs2015_64"       | "Visual Studio 14 2015 Win64"     | x86_64                       |
+-------------------+-----------------------------------+------------------------------+
| "vs2015_arm"      | "Visual Studio 14 2015 ARM"       | arm                          |
+-------------------+-----------------------------------+------------------------------+
| "vs2013"          | "Visual Studio 12 2013 ???"       | native, ie 32 or 64 bits     |
+-------------------+-----------------------------------+------------------------------+
| "vs2013_32"       | "Visual Studio 12 2013"           | x86                          |
+-------------------+-----------------------------------+------------------------------+
| "vs2013_64"       | "Visual Studio 12 2013 Win64"     | x86_64                       |
+-------------------+-----------------------------------+------------------------------+
| "vs2013_arm"      | "Visual Studio 12 2013 ARM"       | arm                          |
+-------------------+-----------------------------------+------------------------------+
| "vs2012"          | "Visual Studio 11 2012 ???"       | native, ie 32 or 64 bits     |
+-------------------+-----------------------------------+------------------------------+
| "vs2012_32"       | "Visual Studio 11 2012"           | x86                          |
+-------------------+-----------------------------------+------------------------------+
| "vs2012_64"       | "Visual Studio 11 2012 Win64"     | x86_64                       |
+-------------------+-----------------------------------+------------------------------+
| "vs2012_arm"      | "Visual Studio 11 2012 ARM"       | arm                          |
+-------------------+-----------------------------------+------------------------------+
| "vs2010"          | "Visual Studio 10 2010 ???"       | native, ie 32 or 64 bits     |
+-------------------+-----------------------------------+------------------------------+
| "vs2010_32"       | "Visual Studio 10 2010"           | x86                          |
+-------------------+-----------------------------------+------------------------------+
| "vs2010_64"       | "Visual Studio 10 2010 Win64"     | x86_64                       |
+-------------------+-----------------------------------+------------------------------+
| "vs2010_ia64"     | "Visual Studio 10 2010 IA64"      | ia64                         |
+-------------------+-----------------------------------+------------------------------+
| "vs2008"          | "Visual Studio 9 2008 ???"        | native, ie 32 or 64 bits     |
+-------------------+-----------------------------------+------------------------------+
| "vs2008_32"       | "Visual Studio 9 2008"            | x86                          |
+-------------------+-----------------------------------+------------------------------+
| "vs2008_64"       | "Visual Studio 9 2008 Win64"      | x86_64                       |
+-------------------+-----------------------------------+------------------------------+
| "vs2008_ia64"     | "Visual Studio 9 2008 IA64"       | ia64                         |
+-------------------+-----------------------------------+------------------------------+
| "vs2005"          | "Visual Studio 8 2005 ???"        | native, ie 32 or 64 bits     |
+-------------------+-----------------------------------+------------------------------+
| "vs2005_32"       | "Visual Studio 8 2005"            | x86                          |
+-------------------+-----------------------------------+------------------------------+
| "vs2005_64"       | "Visual Studio 8 2005 Win64"      | x86_64                       |
+-------------------+-----------------------------------+------------------------------+


Target architecture
-------------------

From the list above, it is easy to gather the list of valid
architecture names in cmany's VS aliasing scheme:

   * "32"

   * "64"

   * "arm"

   * "ia64"


Visual Studio toolset
---------------------

Here's the list of valid Visual Studio toolsets:

* "vs2019" compiler toolsets: "v142", "v142_clang_c2", "v142_xp"

* "vs2017" compiler toolsets: "v141", "v141_clang_c2", "v141_xp"

* "vs2015" compiler toolsets: "v140", "v140_clang_c2", "v140_xp"

* "vs2013" compiler toolsets: "v120", "v120_xp"

* "vs2012" compiler toolsets: "v110", "v110_xp"

* "vs2010" compiler toolsets: "v100", "v100_xp"

* "vs2008" compiler toolsets: "v90", "v90_xp"

* "vs2005" compiler toolsets: "v80",

cmany allows several shorter forms for specifying some of these
toolsets:

* the default toolset can be omitted. For example, "vs2017" is exactly
  the same as "vs2017_v141", and "vs2013" is exactly the same as
  "vs2013_v120"

* the clang toolset can be shortened to "clang" instead of "clang_c2".
  Also, omitting the version from a clang toolset will default to the
  current VS version's toolset. So for example, "vs2015_clang" or
  "vs2015_clang_c2" are the same as "vs2015_v140_clang_c2".

* the xp toolset has the same ommission behaviour as clang. For
  example, "vs2015_xp" is the same as "vs2015_v140_xp".


Alias list
==========

It is easy to see that combining the VS solution version, target
architecture and toolsets above creates hundreds of different
possibilities. This section shows what each of them mean. (If you find
any errors, please submit a bug or PR).


VS2019
------

+--------------------------------+-------------------------------+----------------------+-----------------------+
| cmany compiler alias           | project VS version            | Target arch.         | VS Toolset            |
|================================|===============================|======================|=======================|
| "vs2019"                       | "16 2019"                     | "(native)"           | "v142"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_clang"                 | "16 2019"                     | "(native)"           | "v142_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_xp"                    | "16 2019"                     | "(native)"           | "v142_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v142"                  | "16 2019"                     | "(native)"           | "v142"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v142_xp"               | "16 2019"                     | "(native)"           | "v142_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v142_clang"            | "16 2019"                     | "(native)"           | "v142_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v141"                  | "16 2019"                     | "(native)"           | "v141"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v141_xp"               | "16 2019"                     | "(native)"           | "v141_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v141_clang"            | "16 2019"                     | "(native)"           | "v141_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v140"                  | "16 2019"                     | "(native)"           | "v140"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v140_xp"               | "16 2019"                     | "(native)"           | "v140_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v140_clang"            | "16 2019"                     | "(native)"           | "v140_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v120"                  | "16 2019"                     | "(native)"           | "v120"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v120_xp"               | "16 2019"                     | "(native)"           | "v120_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v110"                  | "16 2019"                     | "(native)"           | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v110_xp"               | "16 2019"                     | "(native)"           | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v100"                  | "16 2019"                     | "(native)"           | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v100_xp"               | "16 2019"                     | "(native)"           | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v90"                   | "16 2019"                     | "(native)"           | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v90_xp"                | "16 2019"                     | "(native)"           | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_v80"                   | "16 2019"                     | "(native)"           | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32"                    | "16 2019"                     | "x86"                | "v142"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_clang"              | "16 2019"                     | "x86"                | "v142_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_xp"                 | "16 2019"                     | "x86"                | "v142_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v142"               | "16 2019"                     | "x86"                | "v142"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v142_xp"            | "16 2019"                     | "x86"                | "v142_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v142_clang"         | "16 2019"                     | "x86"                | "v142_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v141"               | "16 2019"                     | "x86"                | "v141"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v141_xp"            | "16 2019"                     | "x86"                | "v141_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v141_clang"         | "16 2019"                     | "x86"                | "v141_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v140"               | "16 2019"                     | "x86"                | "v140"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v140_xp"            | "16 2019"                     | "x86"                | "v140_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v140_clang"         | "16 2019"                     | "x86"                | "v140_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v120"               | "16 2019"                     | "x86"                | "v120"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v120_xp"            | "16 2019"                     | "x86"                | "v120_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v110"               | "16 2019"                     | "x86"                | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v110_xp"            | "16 2019"                     | "x86"                | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v100"               | "16 2019"                     | "x86"                | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v100_xp"            | "16 2019"                     | "x86"                | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v90"                | "16 2019"                     | "x86"                | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v90_xp"             | "16 2019"                     | "x86"                | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_32_v80"                | "16 2019"                     | "x86"                | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64"                    | "16 2019"                     | "x86_64"             | "v142"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_clang"              | "16 2019"                     | "x86_64"             | "v142_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_xp"                 | "16 2019"                     | "x86_64"             | "v142_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v142"               | "16 2019"                     | "x86_64"             | "v142"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v142_xp"            | "16 2019"                     | "x86_64"             | "v142_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v142_clang"         | "16 2019"                     | "x86_64"             | "v142_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v141"               | "16 2019"                     | "x86_64"             | "v141"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v141_xp"            | "16 2019"                     | "x86_64"             | "v141_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v141_clang"         | "16 2019"                     | "x86_64"             | "v141_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v140"               | "16 2019"                     | "x86_64"             | "v140"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v140_xp"            | "16 2019"                     | "x86_64"             | "v140_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v140_clang"         | "16 2019"                     | "x86_64"             | "v140_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v120"               | "16 2019"                     | "x86_64"             | "v120"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v120_xp"            | "16 2019"                     | "x86_64"             | "v120_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v110"               | "16 2019"                     | "x86_64"             | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v110_xp"            | "16 2019"                     | "x86_64"             | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v100"               | "16 2019"                     | "x86_64"             | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v100_xp"            | "16 2019"                     | "x86_64"             | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v90"                | "16 2019"                     | "x86_64"             | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v90_xp"             | "16 2019"                     | "x86_64"             | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_64_v80"                | "16 2019"                     | "x86_64"             | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_arm"                   | "16 2019"                     | "arm"                | "v142"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_arm_clang"             | "16 2019"                     | "arm"                | "v142_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_arm_v142"              | "16 2019"                     | "arm"                | "v142"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_arm_v142_clang"        | "16 2019"                     | "arm"                | "v142_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_arm_v141"              | "16 2019"                     | "arm"                | "v141"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_arm_v141_clang"        | "16 2019"                     | "arm"                | "v141_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_arm_v140"              | "16 2019"                     | "arm"                | "v140"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_arm_v140_clang"        | "16 2019"                     | "arm"                | "v140_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_arm_v120"              | "16 2019"                     | "arm"                | "v120"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_arm_v110"              | "16 2019"                     | "arm"                | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2019_arm_v100"              | "16 2019"                     | "arm"                | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+


VS2017
------

+--------------------------------+-------------------------------+----------------------+-----------------------+
| cmany compiler alias           | project VS version            | Target arch.         | VS Toolset            |
|================================|===============================|======================|=======================|
| "vs2017"                       | "15 2017"                     | "(native)"           | "v141"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_clang"                 | "15 2017"                     | "(native)"           | "v141_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_xp"                    | "15 2017"                     | "(native)"           | "v141_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_v141"                  | "15 2017"                     | "(native)"           | "v141"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_v141_xp"               | "15 2017"                     | "(native)"           | "v141_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_v141_clang"            | "15 2017"                     | "(native)"           | "v141_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_v140"                  | "15 2017"                     | "(native)"           | "v140"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_v140_xp"               | "15 2017"                     | "(native)"           | "v140_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_v140_clang"            | "15 2017"                     | "(native)"           | "v140_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_v120"                  | "15 2017"                     | "(native)"           | "v120"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_v120_xp"               | "15 2017"                     | "(native)"           | "v120_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_v110"                  | "15 2017"                     | "(native)"           | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_v110_xp"               | "15 2017"                     | "(native)"           | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_v100"                  | "15 2017"                     | "(native)"           | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_v100_xp"               | "15 2017"                     | "(native)"           | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_v90"                   | "15 2017"                     | "(native)"           | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_v90_xp"                | "15 2017"                     | "(native)"           | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_v80"                   | "15 2017"                     | "(native)"           | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32"                    | "15 2017"                     | "x86"                | "v141"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_clang"              | "15 2017"                     | "x86"                | "v141_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_xp"                 | "15 2017"                     | "x86"                | "v141_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v141"               | "15 2017"                     | "x86"                | "v141"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v141_xp"            | "15 2017"                     | "x86"                | "v141_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v141_clang"         | "15 2017"                     | "x86"                | "v141_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v140"               | "15 2017"                     | "x86"                | "v140"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v140_xp"            | "15 2017"                     | "x86"                | "v140_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v140_clang"         | "15 2017"                     | "x86"                | "v140_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v120"               | "15 2017"                     | "x86"                | "v120"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v120_xp"            | "15 2017"                     | "x86"                | "v120_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v110"               | "15 2017"                     | "x86"                | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v110_xp"            | "15 2017"                     | "x86"                | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v100"               | "15 2017"                     | "x86"                | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v100_xp"            | "15 2017"                     | "x86"                | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v90"                | "15 2017"                     | "x86"                | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v90_xp"             | "15 2017"                     | "x86"                | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v80"                | "15 2017"                     | "x86"                | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64"                    | "15 2017"                     | "x86_64"             | "v141"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_clang"              | "15 2017"                     | "x86_64"             | "v141_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_xp"                 | "15 2017"                     | "x86_64"             | "v141_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_v141"               | "15 2017"                     | "x86_64"             | "v141"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_v141_xp"            | "15 2017"                     | "x86_64"             | "v141_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_v141_clang"         | "15 2017"                     | "x86_64"             | "v141_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_v140"               | "15 2017"                     | "x86_64"             | "v140"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_v140_xp"            | "15 2017"                     | "x86_64"             | "v140_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_v140_clang"         | "15 2017"                     | "x86_64"             | "v140_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_v120"               | "15 2017"                     | "x86_64"             | "v120"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_v120_xp"            | "15 2017"                     | "x86_64"             | "v120_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_v110"               | "15 2017"                     | "x86_64"             | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_v110_xp"            | "15 2017"                     | "x86_64"             | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_v100"               | "15 2017"                     | "x86_64"             | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_v100_xp"            | "15 2017"                     | "x86_64"             | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_v90"                | "15 2017"                     | "x86_64"             | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_v90_xp"             | "15 2017"                     | "x86_64"             | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_64_v80"                | "15 2017"                     | "x86_64"             | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_arm"                   | "15 2017"                     | "arm"                | "v141"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_arm_clang"             | "15 2017"                     | "arm"                | "v141_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_arm_v141"              | "15 2017"                     | "arm"                | "v141"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_arm_v141_clang"        | "15 2017"                     | "arm"                | "v141_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_arm_v140"              | "15 2017"                     | "arm"                | "v140"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_arm_v140_clang"        | "15 2017"                     | "arm"                | "v140_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_arm_v120"              | "15 2017"                     | "arm"                | "v120"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_arm_v110"              | "15 2017"                     | "arm"                | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_arm_v100"              | "15 2017"                     | "arm"                | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+


VS2015
------

+--------------------------------+-------------------------------+----------------------+-----------------------+
| cmany compiler alias           | project VS version            | Target arch.         | VS Toolset            |
|================================|===============================|======================|=======================|
| "vs2015"                       | "14 2015"                     | "(native)"           | "v140"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_clang"                 | "14 2015"                     | "(native)"           | "v140_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_xp"                    | "14 2015"                     | "(native)"           | "v140_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_v140"                  | "14 2015"                     | "(native)"           | "v140"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_v140_xp"               | "14 2015"                     | "(native)"           | "v140_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_v140_clang"            | "14 2015"                     | "(native)"           | "v120"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_v120"                  | "14 2015"                     | "(native)"           | "v120_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_v120_xp"               | "14 2015"                     | "(native)"           | "v120_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_v110"                  | "14 2015"                     | "(native)"           | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_v110_xp"               | "14 2015"                     | "(native)"           | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_v100"                  | "14 2015"                     | "(native)"           | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_v100_xp"               | "14 2015"                     | "(native)"           | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_v90"                   | "14 2015"                     | "(native)"           | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_v90_xp"                | "14 2015"                     | "(native)"           | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_v80"                   | "14 2015"                     | "(native)"           | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_32"                    | "14 2015"                     | "x86"                | "v140"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_32_clang"              | "14 2015"                     | "x86"                | "v140_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_32_xp"                 | "14 2015"                     | "x86"                | "v140_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_32_v140"               | "14 2015"                     | "x86"                | "v140"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_32_v140_xp"            | "14 2015"                     | "x86"                | "v140_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_32_v140_clang"         | "14 2015"                     | "x86"                | "v140_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_32_v120"               | "14 2015"                     | "x86"                | "v120"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_32_v120_xp"            | "14 2015"                     | "x86"                | "v120_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_32_v110"               | "14 2015"                     | "x86"                | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_32_v110_xp"            | "14 2015"                     | "x86"                | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_32_v100"               | "14 2015"                     | "x86"                | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_32_v100_xp"            | "14 2015"                     | "x86"                | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v90"                | "14 2015"                     | "x86"                | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v90_xp"             | "14 2015"                     | "x86"                | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2017_32_v80"                | "14 2015"                     | "x86"                | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_64"                    | "14 2015"                     | "x86_64"             | "v140"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_64_clang"              | "14 2015"                     | "x86_64"             | "v140_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_64_xp"                 | "14 2015"                     | "x86_64"             | "v140_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_64_v140"               | "14 2015"                     | "x86_64"             | "v140"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_64_v140_xp"            | "14 2015"                     | "x86_64"             | "v140_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_64_v140_clang"         | "14 2015"                     | "x86_64"             | "v140_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_64_v120"               | "14 2015"                     | "x86_64"             | "v120"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_64_v120_xp"            | "14 2015"                     | "x86_64"             | "v120_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_64_v110"               | "14 2015"                     | "x86_64"             | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_64_v110_xp"            | "14 2015"                     | "x86_64"             | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_64_v100"               | "14 2015"                     | "x86_64"             | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_64_v100_xp"            | "14 2015"                     | "x86_64"             | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_64_v90"                | "14 2015"                     | "x86_64"             | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_64_v90_xp"             | "14 2015"                     | "x86_64"             | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_64_v80"                | "14 2015"                     | "x86_64"             | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_arm"                   | "14 2015"                     | "arm"                | "v140"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2015_arm_clang"             | "14 2015"                     | "arm"                | "v140_clang_c2"       |
+--------------------------------+-------------------------------+----------------------+-----------------------+


VS2013
------

+--------------------------------+-------------------------------+----------------------+-----------------------+
| cmany compiler alias           | project VS version            | Target arch.         | VS Toolset            |
|================================|===============================|======================|=======================|
| "vs2013"                       | "12 2013"                     | "(native)"           | "v120"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_xp"                    | "12 2013"                     | "(native)"           | "v120_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_32"                    | "12 2013"                     | "x86"                | "v120"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_32_xp"                 | "12 2013"                     | "x86"                | "v120_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_64"                    | "12 2013"                     | "x86_64"             | "v120"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_64_xp"                 | "12 2013"                     | "x86_64"             | "v120_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_v110"                  | "12 2013"                     | "(native)"           | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_v110_xp"               | "12 2013"                     | "(native)"           | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_32_v110"               | "12 2013"                     | "x86"                | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_32_v110_xp"            | "12 2013"                     | "x86"                | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_64_v110"               | "12 2013"                     | "x86_64"             | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_64_v110_xp"            | "12 2013"                     | "x86_64"             | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_v100"                  | "12 2013"                     | "(native)"           | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_v100_xp"               | "12 2013"                     | "(native)"           | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_32_v100"               | "12 2013"                     | "x86"                | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_32_v100_xp"            | "12 2013"                     | "x86"                | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_64_v100"               | "12 2013"                     | "x86_64"             | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_64_v100_xp"            | "12 2013"                     | "x86_64"             | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_v90"                   | "12 2013"                     | "(native)"           | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_v90_xp"                | "12 2013"                     | "(native)"           | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_32_v90"                | "12 2013"                     | "x86"                | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_32_v90_xp"             | "12 2013"                     | "x86"                | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_64_v90"                | "12 2013"                     | "x86_64"             | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_64_v90_xp"             | "12 2013"                     | "x86_64"             | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_v80"                   | "12 2013"                     | "(native)"           | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_32_v80"                | "12 2013"                     | "x86"                | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2013_64_v80"                | "12 2013"                     | "x86_64"             | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+


VS2012
------

+--------------------------------+-------------------------------+----------------------+-----------------------+
| cmany compiler alias           | project VS version            | Target arch.         | VS Toolset            |
|================================|===============================|======================|=======================|
| "vs2012"                       | "11 2012"                     | "(native)"           | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_xp"                    | "11 2012"                     | "(native)"           | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_32"                    | "11 2012"                     | "x86"                | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_32_xp"                 | "11 2012"                     | "x86"                | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_64"                    | "11 2012"                     | "x86_64"             | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_64_xp"                 | "11 2012"                     | "x86_64"             | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_arm"                   | "11 2012"                     | "arm"                | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_arm_xp"                | "11 2012"                     | "arm"                | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_v110"                  | "11 2012"                     | "(native)"           | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_v110_xp"               | "11 2012"                     | "(native)"           | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_32_v110"               | "11 2012"                     | "x86"                | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_32_v110_xp"            | "11 2012"                     | "x86"                | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_64_v110"               | "11 2012"                     | "x86_64"             | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_64_v110_xp"            | "11 2012"                     | "x86_64"             | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_arm_v110"              | "11 2012"                     | "arm"                | "v110"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_arm_v110_xp"           | "11 2012"                     | "arm"                | "v110_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_v100"                  | "11 2012"                     | "(native)"           | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_v100_xp"               | "11 2012"                     | "(native)"           | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_32_v100"               | "11 2012"                     | "x86"                | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_32_v100_xp"            | "11 2012"                     | "x86"                | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_64_v100"               | "11 2012"                     | "x86_64"             | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_64_v100_xp"            | "11 2012"                     | "x86_64"             | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_arm_v100"              | "11 2012"                     | "arm"                | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_arm_v100_xp"           | "11 2012"                     | "arm"                | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_v90"                   | "11 2012"                     | "(native)"           | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_v90_xp"                | "11 2012"                     | "(native)"           | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_32_v90"                | "11 2012"                     | "x86"                | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_32_v90_xp"             | "11 2012"                     | "x86"                | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_64_v90"                | "11 2012"                     | "x86_64"             | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_64_v90_xp"             | "11 2012"                     | "x86_64"             | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_arm_v90"               | "11 2012"                     | "arm"                | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_arm_v90_xp"            | "11 2012"                     | "arm"                | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_v80"                   | "11 2012"                     | "(native)"           | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_32_v80"                | "11 2012"                     | "x86"                | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_64_v80"                | "11 2012"                     | "x86_64"             | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2012_arm_v80"               | "11 2012"                     | "arm"                | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+


VS2010
------

+--------------------------------+-------------------------------+----------------------+-----------------------+
| cmany compiler alias           | project VS version            | Target arch.         | VS Toolset            |
|================================|===============================|======================|=======================|
| "vs2010"                       | "10 2010"                     | "(native)"           | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_xp"                    | "10 2010"                     | "(native)"           | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_32"                    | "10 2010"                     | "x86"                | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_32_xp"                 | "10 2010"                     | "x86"                | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_64"                    | "10 2010"                     | "x86_64"             | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_64_xp"                 | "10 2010"                     | "x86_64"             | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_ia64"                  | "10 2010"                     | "ia64"               | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_ia64_xp"               | "10 2010"                     | "ia64"               | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_v100"                  | "10 2010"                     | "(native)"           | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_v100_xp"               | "10 2010"                     | "(native)"           | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_32_v100"               | "10 2010"                     | "x86"                | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_32_v100_xp"            | "10 2010"                     | "x86"                | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_64_v100"               | "10 2010"                     | "x86_64"             | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_64_v100_xp"            | "10 2010"                     | "x86_64"             | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_ia64_v100"             | "10 2010"                     | "ia64"               | "v100"                |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_ia64_v100_xp"          | "10 2010"                     | "ia64"               | "v100_xp"             |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_v90"                   | "10 2010"                     | "(native)"           | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_v90_xp"                | "10 2010"                     | "(native)"           | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_32_v90"                | "10 2010"                     | "x86"                | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_32_v90_xp"             | "10 2010"                     | "x86"                | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_64_v90"                | "10 2010"                     | "x86_64"             | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_64_v90_xp"             | "10 2010"                     | "x86_64"             | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_ia64_v90"              | "10 2010"                     | "ia64"               | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_ia64_v90_xp"           | "10 2010"                     | "ia64"               | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_v80"                   | "10 2010"                     | "(native)"           | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_32_v80"                | "10 2010"                     | "x86"                | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2010_64_v80"                | "10 2010"                     | "x86_64"             | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+


VS2008
------

+--------------------------------+-------------------------------+----------------------+-----------------------+
| cmany compiler alias           | project VS version            | Target arch.         | VS Toolset            |
|================================|===============================|======================|=======================|
| "vs2008"                       | "9 2008"                      | "(native)"           | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_xp"                    | "9 2008"                      | "(native)"           | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_32"                    | "9 2008"                      | "x86"                | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_32_xp"                 | "9 2008"                      | "x86"                | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_64"                    | "9 2008"                      | "x86_64"             | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_64_xp"                 | "9 2008"                      | "x86_64"             | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_ia64"                  | "9 2008"                      | "ia64"               | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_ia64_xp"               | "9 2008"                      | "ia64"               | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_v90"                   | "9 2008"                      | "(native)"           | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_v90_xp"                | "9 2008"                      | "(native)"           | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_32_v90"                | "9 2008"                      | "x86"                | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_32_v90_xp"             | "9 2008"                      | "x86"                | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_64_v90"                | "9 2008"                      | "x86_64"             | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_64_v90_xp"             | "9 2008"                      | "x86_64"             | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_ia64_v90"              | "9 2008"                      | "ia64"               | "v90"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_ia64_v90_xp"           | "9 2008"                      | "ia64"               | "v90_xp"              |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_v80"                   | "9 2008"                      | "(native)"           | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_32_v80"                | "9 2008"                      | "x86"                | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_64_v80"                | "9 2008"                      | "x86_64"             | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2008_ia64_v80"              | "9 2008"                      | "ia64"               | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+


VS2005
------

+--------------------------------+-------------------------------+----------------------+-----------------------+
| cmany compiler alias           | project VS version            | Target arch.         | VS Toolset            |
|================================|===============================|======================|=======================|
| "vs2005"                       | "8 2005"                      | "(native)"           | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2005_32"                    | "8 2005"                      | "x86"                | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2005_64"                    | "8 2005"                      | "x86_64"             | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2005_v80"                   | "8 2005"                      | "(native)"           | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2005_32_v80"                | "8 2005"                      | "x86"                | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
| "vs2005_64_v80"                | "8 2005"                      | "x86_64"             | "v80"                 |
+--------------------------------+-------------------------------+----------------------+-----------------------+
