VS: Generate MASM flag tables from MSBuild tool files

Run cmparseMSBuildXML.py on masm.xml to generate our flag tables:

 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/BuildCustomizations/masm.xml" > cmVS10MASMFlagTable.h
 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/V110/BuildCustomizations/masm.xml" > cmVS11MASMFlagTable.h
 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/V120/BuildCustomizations/masm.xml" > cmVS12MASMFlagTable.h
 python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/V140/BuildCustomizations/masm.xml" > cmVS14MASMFlagTable.h

Fix up the declaration names at the top of each file.
This commit is contained in:
Brad King 2014-08-13 10:02:12 -04:00
parent 4f6940df8c
commit 1d662e4806
4 changed files with 384 additions and 0 deletions

View File

@ -0,0 +1,96 @@
static cmVS7FlagTable cmVS10MASMFlagTable[] =
{
//Enum Properties
{"PreserveIdentifierCase", "",
"Default", "0", 0},
{"PreserveIdentifierCase", "/Cp",
"Preserves Identifier Case (/Cp)", "1", 0},
{"PreserveIdentifierCase", "/Cu",
"Maps all identifiers to upper case. (/Cu)", "2", 0},
{"PreserveIdentifierCase", "/Cx",
"Preserves case in public and extern symbols. (/Cx)", "3", 0},
{"WarningLevel", "/W0",
"Warning Level 0 (/W0)", "0", 0},
{"WarningLevel", "/W1",
"Warning Level 1 (/W1)", "1", 0},
{"WarningLevel", "/W2",
"Warning Level 2 (/W2)", "2", 0},
{"WarningLevel", "/W3",
"Warning Level 3 (/W3)", "3", 0},
{"PackAlignmentBoundary", "",
"Default", "0", 0},
{"PackAlignmentBoundary", "/Zp1",
"One Byte Boundary (/Zp1)", "1", 0},
{"PackAlignmentBoundary", "/Zp2",
"Two Byte Boundary (/Zp2)", "2", 0},
{"PackAlignmentBoundary", "/Zp4",
"Four Byte Boundary (/Zp4)", "3", 0},
{"PackAlignmentBoundary", "/Zp8",
"Eight Byte Boundary (/Zp8)", "4", 0},
{"PackAlignmentBoundary", "/Zp16",
"Sixteen Byte Boundary (/Zp16)", "5", 0},
{"CallingConvention", "",
"Default", "0", 0},
{"CallingConvention", "/Gd",
"Use C-style Calling Convention (/Gd)", "1", 0},
{"CallingConvention", "/Gz",
"Use stdcall Calling Convention (/Gz)", "2", 0},
{"CallingConvention", "/Gc",
"Use Pascal Calling Convention (/Gc)", "3", 0},
{"ErrorReporting", "/errorReport:prompt",
"Prompt to send report immediately (/errorReport:prompt)", "0", 0},
{"ErrorReporting", "/errorReport:queue",
"Prompt to send report at the next logon (/errorReport:queue)", "1", 0},
{"ErrorReporting", "/errorReport:send",
"Automatically send report (/errorReport:send)", "2", 0},
{"ErrorReporting", "/errorReport:none",
"Do not send report (/errorReport:none)", "3", 0},
//Bool Properties
{"NoLogo", "/nologo", "", "true", 0},
{"GeneratePreprocessedSourceListing", "/EP", "", "true", 0},
{"ListAllAvailableInformation", "/Sa", "", "true", 0},
{"UseSafeExceptionHandlers", "/safeseh", "", "true", 0},
{"AddFirstPassListing", "/Sf", "", "true", 0},
{"EnableAssemblyGeneratedCodeListing", "/Sg", "", "true", 0},
{"DisableSymbolTable", "/Sn", "", "true", 0},
{"EnableFalseConditionalsInListing", "/Sx", "", "true", 0},
{"TreatWarningsAsErrors", "/WX", "", "true", 0},
{"MakeAllSymbolsPublic", "/Zf", "", "true", 0},
{"GenerateDebugInformation", "/Zi", "", "true", 0},
{"EnableMASM51Compatibility", "/Zm", "", "true", 0},
{"PerformSyntaxCheckOnly", "/Zs", "", "true", 0},
//Bool Properties With Argument
//String List Properties
{"PreprocessorDefinitions", "/D"[value]"",
"Preprocessor Definitions",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"IncludePaths", "/I "[value]"",
"Include Paths",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"BrowseFile", "/FR"[value]"",
"Generate Browse Information File",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
// Skip [AdditionalDependencies] - no command line Switch.
//String Properties
// Skip [Inputs] - no command line Switch.
{"ObjectFileName", "/Fo"[value]"",
"Object File Name",
"", cmVS7FlagTable::UserValue},
{"AssembledCodeListingFile", "/Fl"[value]"",
"Assembled Code Listing File",
"", cmVS7FlagTable::UserValue},
// Skip [CommandLineTemplate] - no command line Switch.
// Skip [ExecutionDescription] - no command line Switch.
// Skip [AdditionalOptions] - no command line Switch.
{0,0,0,0,0}
};

View File

@ -0,0 +1,96 @@
static cmVS7FlagTable cmVS11MASMFlagTable[] =
{
//Enum Properties
{"PreserveIdentifierCase", "",
"Default", "0", 0},
{"PreserveIdentifierCase", "/Cp",
"Preserves Identifier Case (/Cp)", "1", 0},
{"PreserveIdentifierCase", "/Cu",
"Maps all identifiers to upper case. (/Cu)", "2", 0},
{"PreserveIdentifierCase", "/Cx",
"Preserves case in public and extern symbols. (/Cx)", "3", 0},
{"WarningLevel", "/W0",
"Warning Level 0 (/W0)", "0", 0},
{"WarningLevel", "/W1",
"Warning Level 1 (/W1)", "1", 0},
{"WarningLevel", "/W2",
"Warning Level 2 (/W2)", "2", 0},
{"WarningLevel", "/W3",
"Warning Level 3 (/W3)", "3", 0},
{"PackAlignmentBoundary", "",
"Default", "0", 0},
{"PackAlignmentBoundary", "/Zp1",
"One Byte Boundary (/Zp1)", "1", 0},
{"PackAlignmentBoundary", "/Zp2",
"Two Byte Boundary (/Zp2)", "2", 0},
{"PackAlignmentBoundary", "/Zp4",
"Four Byte Boundary (/Zp4)", "3", 0},
{"PackAlignmentBoundary", "/Zp8",
"Eight Byte Boundary (/Zp8)", "4", 0},
{"PackAlignmentBoundary", "/Zp16",
"Sixteen Byte Boundary (/Zp16)", "5", 0},
{"CallingConvention", "",
"Default", "0", 0},
{"CallingConvention", "/Gd",
"Use C-style Calling Convention (/Gd)", "1", 0},
{"CallingConvention", "/Gz",
"Use stdcall Calling Convention (/Gz)", "2", 0},
{"CallingConvention", "/Gc",
"Use Pascal Calling Convention (/Gc)", "3", 0},
{"ErrorReporting", "/errorReport:prompt",
"Prompt to send report immediately (/errorReport:prompt)", "0", 0},
{"ErrorReporting", "/errorReport:queue",
"Prompt to send report at the next logon (/errorReport:queue)", "1", 0},
{"ErrorReporting", "/errorReport:send",
"Automatically send report (/errorReport:send)", "2", 0},
{"ErrorReporting", "/errorReport:none",
"Do not send report (/errorReport:none)", "3", 0},
//Bool Properties
{"NoLogo", "/nologo", "", "true", 0},
{"GeneratePreprocessedSourceListing", "/EP", "", "true", 0},
{"ListAllAvailableInformation", "/Sa", "", "true", 0},
{"UseSafeExceptionHandlers", "/safeseh", "", "true", 0},
{"AddFirstPassListing", "/Sf", "", "true", 0},
{"EnableAssemblyGeneratedCodeListing", "/Sg", "", "true", 0},
{"DisableSymbolTable", "/Sn", "", "true", 0},
{"EnableFalseConditionalsInListing", "/Sx", "", "true", 0},
{"TreatWarningsAsErrors", "/WX", "", "true", 0},
{"MakeAllSymbolsPublic", "/Zf", "", "true", 0},
{"GenerateDebugInformation", "/Zi", "", "true", 0},
{"EnableMASM51Compatibility", "/Zm", "", "true", 0},
{"PerformSyntaxCheckOnly", "/Zs", "", "true", 0},
//Bool Properties With Argument
//String List Properties
{"PreprocessorDefinitions", "/D"[value]"",
"Preprocessor Definitions",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"IncludePaths", "/I "[value]"",
"Include Paths",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"BrowseFile", "/FR"[value]"",
"Generate Browse Information File",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
// Skip [AdditionalDependencies] - no command line Switch.
//String Properties
// Skip [Inputs] - no command line Switch.
{"ObjectFileName", "/Fo"[value]"",
"Object File Name",
"", cmVS7FlagTable::UserValue},
{"AssembledCodeListingFile", "/Fl"[value]"",
"Assembled Code Listing File",
"", cmVS7FlagTable::UserValue},
// Skip [CommandLineTemplate] - no command line Switch.
// Skip [ExecutionDescription] - no command line Switch.
// Skip [AdditionalOptions] - no command line Switch.
{0,0,0,0,0}
};

View File

@ -0,0 +1,96 @@
static cmVS7FlagTable cmVS12MASMFlagTable[] =
{
//Enum Properties
{"PreserveIdentifierCase", "",
"Default", "0", 0},
{"PreserveIdentifierCase", "/Cp",
"Preserves Identifier Case (/Cp)", "1", 0},
{"PreserveIdentifierCase", "/Cu",
"Maps all identifiers to upper case. (/Cu)", "2", 0},
{"PreserveIdentifierCase", "/Cx",
"Preserves case in public and extern symbols. (/Cx)", "3", 0},
{"WarningLevel", "/W0",
"Warning Level 0 (/W0)", "0", 0},
{"WarningLevel", "/W1",
"Warning Level 1 (/W1)", "1", 0},
{"WarningLevel", "/W2",
"Warning Level 2 (/W2)", "2", 0},
{"WarningLevel", "/W3",
"Warning Level 3 (/W3)", "3", 0},
{"PackAlignmentBoundary", "",
"Default", "0", 0},
{"PackAlignmentBoundary", "/Zp1",
"One Byte Boundary (/Zp1)", "1", 0},
{"PackAlignmentBoundary", "/Zp2",
"Two Byte Boundary (/Zp2)", "2", 0},
{"PackAlignmentBoundary", "/Zp4",
"Four Byte Boundary (/Zp4)", "3", 0},
{"PackAlignmentBoundary", "/Zp8",
"Eight Byte Boundary (/Zp8)", "4", 0},
{"PackAlignmentBoundary", "/Zp16",
"Sixteen Byte Boundary (/Zp16)", "5", 0},
{"CallingConvention", "",
"Default", "0", 0},
{"CallingConvention", "/Gd",
"Use C-style Calling Convention (/Gd)", "1", 0},
{"CallingConvention", "/Gz",
"Use stdcall Calling Convention (/Gz)", "2", 0},
{"CallingConvention", "/Gc",
"Use Pascal Calling Convention (/Gc)", "3", 0},
{"ErrorReporting", "/errorReport:prompt",
"Prompt to send report immediately (/errorReport:prompt)", "0", 0},
{"ErrorReporting", "/errorReport:queue",
"Prompt to send report at the next logon (/errorReport:queue)", "1", 0},
{"ErrorReporting", "/errorReport:send",
"Automatically send report (/errorReport:send)", "2", 0},
{"ErrorReporting", "/errorReport:none",
"Do not send report (/errorReport:none)", "3", 0},
//Bool Properties
{"NoLogo", "/nologo", "", "true", 0},
{"GeneratePreprocessedSourceListing", "/EP", "", "true", 0},
{"ListAllAvailableInformation", "/Sa", "", "true", 0},
{"UseSafeExceptionHandlers", "/safeseh", "", "true", 0},
{"AddFirstPassListing", "/Sf", "", "true", 0},
{"EnableAssemblyGeneratedCodeListing", "/Sg", "", "true", 0},
{"DisableSymbolTable", "/Sn", "", "true", 0},
{"EnableFalseConditionalsInListing", "/Sx", "", "true", 0},
{"TreatWarningsAsErrors", "/WX", "", "true", 0},
{"MakeAllSymbolsPublic", "/Zf", "", "true", 0},
{"GenerateDebugInformation", "/Zi", "", "true", 0},
{"EnableMASM51Compatibility", "/Zm", "", "true", 0},
{"PerformSyntaxCheckOnly", "/Zs", "", "true", 0},
//Bool Properties With Argument
//String List Properties
{"PreprocessorDefinitions", "/D"[value]"",
"Preprocessor Definitions",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"IncludePaths", "/I "[value]"",
"Include Paths",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"BrowseFile", "/FR"[value]"",
"Generate Browse Information File",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
// Skip [AdditionalDependencies] - no command line Switch.
//String Properties
// Skip [Inputs] - no command line Switch.
{"ObjectFileName", "/Fo"[value]"",
"Object File Name",
"", cmVS7FlagTable::UserValue},
{"AssembledCodeListingFile", "/Fl"[value]"",
"Assembled Code Listing File",
"", cmVS7FlagTable::UserValue},
// Skip [CommandLineTemplate] - no command line Switch.
// Skip [ExecutionDescription] - no command line Switch.
// Skip [AdditionalOptions] - no command line Switch.
{0,0,0,0,0}
};

View File

@ -0,0 +1,96 @@
static cmVS7FlagTable cmVS14MASMFlagTable[] =
{
//Enum Properties
{"PreserveIdentifierCase", "",
"Default", "0", 0},
{"PreserveIdentifierCase", "/Cp",
"Preserves Identifier Case (/Cp)", "1", 0},
{"PreserveIdentifierCase", "/Cu",
"Maps all identifiers to upper case. (/Cu)", "2", 0},
{"PreserveIdentifierCase", "/Cx",
"Preserves case in public and extern symbols. (/Cx)", "3", 0},
{"WarningLevel", "/W0",
"Warning Level 0 (/W0)", "0", 0},
{"WarningLevel", "/W1",
"Warning Level 1 (/W1)", "1", 0},
{"WarningLevel", "/W2",
"Warning Level 2 (/W2)", "2", 0},
{"WarningLevel", "/W3",
"Warning Level 3 (/W3)", "3", 0},
{"PackAlignmentBoundary", "",
"Default", "0", 0},
{"PackAlignmentBoundary", "/Zp1",
"One Byte Boundary (/Zp1)", "1", 0},
{"PackAlignmentBoundary", "/Zp2",
"Two Byte Boundary (/Zp2)", "2", 0},
{"PackAlignmentBoundary", "/Zp4",
"Four Byte Boundary (/Zp4)", "3", 0},
{"PackAlignmentBoundary", "/Zp8",
"Eight Byte Boundary (/Zp8)", "4", 0},
{"PackAlignmentBoundary", "/Zp16",
"Sixteen Byte Boundary (/Zp16)", "5", 0},
{"CallingConvention", "",
"Default", "0", 0},
{"CallingConvention", "/Gd",
"Use C-style Calling Convention (/Gd)", "1", 0},
{"CallingConvention", "/Gz",
"Use stdcall Calling Convention (/Gz)", "2", 0},
{"CallingConvention", "/Gc",
"Use Pascal Calling Convention (/Gc)", "3", 0},
{"ErrorReporting", "/errorReport:prompt",
"Prompt to send report immediately (/errorReport:prompt)", "0", 0},
{"ErrorReporting", "/errorReport:queue",
"Prompt to send report at the next logon (/errorReport:queue)", "1", 0},
{"ErrorReporting", "/errorReport:send",
"Automatically send report (/errorReport:send)", "2", 0},
{"ErrorReporting", "/errorReport:none",
"Do not send report (/errorReport:none)", "3", 0},
//Bool Properties
{"NoLogo", "/nologo", "", "true", 0},
{"GeneratePreprocessedSourceListing", "/EP", "", "true", 0},
{"ListAllAvailableInformation", "/Sa", "", "true", 0},
{"UseSafeExceptionHandlers", "/safeseh", "", "true", 0},
{"AddFirstPassListing", "/Sf", "", "true", 0},
{"EnableAssemblyGeneratedCodeListing", "/Sg", "", "true", 0},
{"DisableSymbolTable", "/Sn", "", "true", 0},
{"EnableFalseConditionalsInListing", "/Sx", "", "true", 0},
{"TreatWarningsAsErrors", "/WX", "", "true", 0},
{"MakeAllSymbolsPublic", "/Zf", "", "true", 0},
{"GenerateDebugInformation", "/Zi", "", "true", 0},
{"EnableMASM51Compatibility", "/Zm", "", "true", 0},
{"PerformSyntaxCheckOnly", "/Zs", "", "true", 0},
//Bool Properties With Argument
//String List Properties
{"PreprocessorDefinitions", "/D"[value]"",
"Preprocessor Definitions",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"IncludePaths", "/I "[value]"",
"Include Paths",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
{"BrowseFile", "/FR"[value]"",
"Generate Browse Information File",
"", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable},
// Skip [AdditionalDependencies] - no command line Switch.
//String Properties
// Skip [Inputs] - no command line Switch.
{"ObjectFileName", "/Fo"[value]"",
"Object File Name",
"", cmVS7FlagTable::UserValue},
{"AssembledCodeListingFile", "/Fl"[value]"",
"Assembled Code Listing File",
"", cmVS7FlagTable::UserValue},
// Skip [CommandLineTemplate] - no command line Switch.
// Skip [ExecutionDescription] - no command line Switch.
// Skip [AdditionalOptions] - no command line Switch.
{0,0,0,0,0}
};