premake5.exe vs2015 vs2017premake5.exe vs2015
premake5.exe vs2017function ModelerProject( AutocadMajorVersion )
    --  .arx can be compiled only against Visual Studio version which it supports.    if AutocadMajorVersion == 18 and ( buildvsver ~= "vs2008" ) then        return    end
    if AutocadMajorVersion == 19 and ( buildvsver ~= "vs2010" ) then        return    end
    if AutocadMajorVersion == 20 and ( buildvsver ~= "vs2012" ) then        return    end
    if AutocadMajorVersion == 21 and ( buildvsver ~= "vs2015" ) then        return    end
    solution ("vm-modeler" .. AutocadMajorVersion .. "_" .. buildvsver)        platforms {  "x32", "x64" }        configurations { "Debug", "Release" }        objdir (  "obj/" .. "R" .. AutocadMajorVersion .. "_" .. buildvsver)
    project ("vm-modeler" .. AutocadMajorVersion .. "_" .. buildvsver)...
        if AutocadMajorVersion == 21 then            acadVersion = "2017"        elseif AutocadMajorVersion == 20 then            acadVersion = "2015"        elseif AutocadMajorVersion == 19 then            acadVersion = "2013"        elseif AutocadMajorVersion == 18 then            acadVersion = "2011"        end
        includedirs {             "\\libraries\\ObjectARX" .. acadVersion .. "\\utils\\brep\\inc",             "\\libraries\\ObjectARX" .. acadVersion .. "\\inc-x64",             "\\libraries\\ObjectARX" .. acadVersion .. "\\inc",         }...
end  --function ModelerProject
    ModelerProject(18)    ModelerProject(19)    ModelerProject(20)    ModelerProject(21)
/// <summary>/// Tags platform/// </summary>public enum EKeyword{    /// <summary>    /// Typically set for Android packaging project.    /// </summary>    None = 0,
    /// <summary>    /// Windows project (32 or 64 bit)    /// </summary>    Win32Proj,
    /// <summary>    /// Android project    /// </summary>    Android}
... class Project:
...
    /// <summary>    /// "4.0" for vs2010/vs2012, "12.0" for vs2013, "14.0" for vs2015    /// </summary>    public String ToolsVersion;    public EKeyword Keyword;
    public String getOsBase()    {        switch (Keyword)        {            case EKeyword.Android:                return "android";            case EKeyword.None:                return "package";            default:            case EKeyword.Win32Proj:                if (Double.Parse(ToolsVersion) <= 4.0)                    return "vs2012";                return "vs2015";        }    } //getOsBase
    /// <summary>    /// Sets os base, returns false if not supported.    /// </summary>    public bool setOsBase(String osBase)    {        switch (osBase.ToLower())        {            case "package":                ToolsVersion = "14.0";                Keyword = EKeyword.None;                break;            case "vs2010":            case "vs2012":                ToolsVersion = "4.0";                Keyword = EKeyword.Win32Proj;                break;            case "vs2013":                ToolsVersion = "12.0";                Keyword = EKeyword.Win32Proj;                break;            case "vs2015":                ToolsVersion = "14.0";                Keyword = EKeyword.Win32Proj;                break;            case "android":                Keyword = EKeyword.Android;                break;            default:                return false;        }
        return true;    } //setOsBase
    project("test_Android1.NativeActivity");        osbase("android");        configurations(  "Debug","Release" );        platforms( "ARM","ARM64","x64","x86" );        uuid("a5651b81-1c70-4416-b60f-a5b2094a211a");        kind("SharedLib");        toolset("Clang_3_8");