1<?xml version="1.0" encoding="utf-8"?>
2<ProjectSchemaDefinitions xmlns="http://schemas.microsoft.com/build/2009/properties" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib">
3  <Rule Name="NASM" PageTemplate="tool" DisplayName="Netwide Assembler" Order="200">
4    <Rule.DataSource>
5      <DataSource Persistence="ProjectFile" ItemType="NASM"/>
6    </Rule.DataSource>
7    <Rule.Categories>
8      <Category Name="General">
9        <Category.DisplayName>
10          <sys:String>General</sys:String>
11        </Category.DisplayName>
12      </Category>
13      <Category Name="Preprocessor">
14        <Category.DisplayName>
15          <sys:String>Preprocessing Options</sys:String>
16        </Category.DisplayName>
17      </Category>
18      <Category Name="Assembler Options">
19        <Category.DisplayName>
20          <sys:String>Assembler Options</sys:String>
21        </Category.DisplayName>
22      </Category>
23      <Category Name="Advanced">
24        <Category.DisplayName>
25          <sys:String>Advanced </sys:String>
26        </Category.DisplayName>
27      </Category>
28      <Category Name="Command Line" Subtype="CommandLine">
29        <Category.DisplayName>
30          <sys:String>Command Line</sys:String>
31        </Category.DisplayName>
32      </Category>
33    </Rule.Categories>
34    <StringProperty Name="Inputs" Category="Command Line" IsRequired="true">
35      <StringProperty.DataSource>
36        <DataSource Persistence="ProjectFile" ItemType="NASM" SourceType="Item"/>
37      </StringProperty.DataSource>
38    </StringProperty>
39    <StringProperty Name="OutputFormat" Category="Assembler Options" HelpUrl="http://www.nasm.us/doc/" DisplayName="Output File Name" Description="Specify Output Filename.-o [value]" Switch="-o &quot;[value]&quot;"/>
40    <BoolProperty Name="tasmmode" Category="Advanced" HelpUrl="http://www.nasm.us/doc/" DisplayName="SciTech TASM compatible mode" Description="assemble in SciTech TASM compatible mode" Switch="-t"/>
41    <EnumProperty Name="Outputswitch" Category="Assembler Options" HelpUrl="http://www.nasm.us/doc/" DisplayName="Output Switch" Description="Select the type of output format required. Linking Should be disabled for ELF and Binary ,else error will popup">
42      <EnumValue Name="0" DisplayName="Object File win32" Switch="-fwin32"/>
43      <EnumValue Name="1" DisplayName="Object File win64" Switch="-fwin64"/>
44      <EnumValue Name="2" DisplayName="ELF32 (i386) object files (e.g. Linux)" Switch="-felf32"/>
45      <EnumValue Name="3" DisplayName="ELF64 (x86_64) object files (e.g. Linux)" Switch="-felf64"/>
46    </EnumProperty>
47    <StringListProperty Name="AssembledCodeListingFile" Category="Assembler Options" DisplayName="Assembled Code Listing File" Description="Generates an assembled code listing file.     (-l [file])" HelpUrl="http://www.nasm.us/doc/" Switch="-l &quot;[value]&quot;"/>
48    <BoolProperty Name="GenerateDebugInformation" Category="Assembler Options" DisplayName="Generate Debug Information" Description="Generates Debug Information.     (-g)" HelpUrl="http://www.nasm.us/doc/" Switch="-g"/>
49    <StringListProperty Name="ErrorReporting" Category="Advanced" HelpUrl="http://www.nasm.us/doc/" DisplayName="Redirect Error Messages to File" Description="Drops the error Message on specified device" Switch="-Z &quot;[value]&quot;"/>
50    <StringListProperty Name="IncludePaths" Category="General" DisplayName="Include Paths" Description="Sets path for include file.     (-I[path])" HelpUrl="http://www.nasm.us/doc/" Switch="-I&quot;[value]&quot;"/>
51    <StringListProperty Name="PreprocessorDefinitions" Category="Preprocessor" HelpUrl="http://www.nasm.us/doc/" DisplayName="Preprocessor Definitions" Description="Defines a text macro with the given name.     (-D[symbol])" Switch="-D&quot;[value]&quot;"/>
52    <StringListProperty Name="UndefinePreprocessorDefinitions" Category="Preprocessor" HelpUrl="http://www.nasm.us/doc/" DisplayName="Undefine Preprocessor Definitions" Description="Undefines a text macro with the given name.     (-U[symbol])" Switch="-U&quot;[value]&quot;"/>
53    <EnumProperty Name="ErrorReportingFormat" Category="Advanced" HelpUrl="http://www.nasm.us/doc/" DisplayName="Error Reporting Format" Description="Select the error reporting format ie. GNU or VC">
54      <EnumValue Name="0" DisplayName="-Xgnu GNU format: Default format" Switch="-Xgnu"/>
55      <EnumValue Name="1" DisplayName="-Xvc Style used by Microsoft Visual C++" Switch="-Xvc"/>
56    </EnumProperty>
57    <BoolProperty Name="TreatWarningsAsErrors" Category="Assembler Options" DisplayName="Treat Warnings As Errors" Description="Returns an error code if warnings are generated.     (-Werror)" HelpUrl="http://www.nasm.us/doc/" Switch="-Werror"/>
58    <BoolProperty Name="floatunderflow" Category="Advanced" HelpUrl="http://www.nasm.us/doc/" DisplayName="float-underflow" Description="floating point underflow (default off)" Switch="-w+float-underflow"/>
59    <BoolProperty Name="macrodefaults" Category="Advanced" HelpUrl="http://www.nasm.us/doc/" DisplayName="Disable macro-defaults" Description="macros with more default than optional parameters (default on)" Switch="-w-macro-defaults"/>
60    <BoolProperty Name="user" Category="Advanced" HelpUrl="http://www.nasm.us/doc/" DisplayName="Disable user" Description="%warning directives (default on)" Switch="-w-user"/>
61    <BoolProperty Name="floatoverflow" Category="Advanced" HelpUrl="http://www.nasm.us/doc/" DisplayName="Disable float-overflow" Description="floating point overflow (default on)" Switch="-w-float-overflow"/>
62    <BoolProperty Name="floatdenorm" Category="Advanced" HelpUrl="http://www.nasm.us/doc/" DisplayName="float-denorm" Description="floating point denormal (default off)" Switch="-w+float-denorm"/>
63    <BoolProperty Name="numberoverflow" Category="Advanced" HelpUrl="http://www.nasm.us/doc/" DisplayName="Disable number-overflow" Description="numeric constant does not fit (default on)" Switch="-w-number-overflow"/>
64    <BoolProperty Name="macroselfref" Category="Advanced" HelpUrl="http://www.nasm.us/doc/" DisplayName="macro-selfref" Description="cyclic macro references (default off)" Switch="-w+macro-selfref"/>
65    <BoolProperty Name="floattoolong" Category="Advanced" HelpUrl="http://www.nasm.us/doc/" DisplayName="Disable float-toolong" Description=" too many digits in floating-point number (default on)" Switch="-w-float-toolong"/>
66    <BoolProperty Name="orphanlabels" Category="Advanced" HelpUrl="http://www.nasm.us/doc/" DisplayName="Disable orphan-labels" Description="labels alone on lines without trailing `:' (default on)" Switch="-w-orphan-labels"/>
67    <StringProperty Name="CommandLineTemplate" DisplayName="Command Line" Visible="False" IncludeInCommandLine="False"/>
68    <DynamicEnumProperty Name="NASMBeforeTargets" Category="General" EnumProvider="Targets" IncludeInCommandLine="False">
69      <DynamicEnumProperty.DisplayName>
70        <sys:String>Execute Before</sys:String>
71      </DynamicEnumProperty.DisplayName>
72      <DynamicEnumProperty.Description>
73        <sys:String>Specifies the targets for the build customization to run before.</sys:String>
74      </DynamicEnumProperty.Description>
75      <DynamicEnumProperty.ProviderSettings>
76        <NameValuePair Name="Exclude" Value="^NASMBeforeTargets|^Compute"/>
77      </DynamicEnumProperty.ProviderSettings>
78      <DynamicEnumProperty.DataSource>
79        <DataSource Persistence="ProjectFile" ItemType="" HasConfigurationCondition="true"/>
80      </DynamicEnumProperty.DataSource>
81    </DynamicEnumProperty>
82    <DynamicEnumProperty Name="NASMAfterTargets" Category="General" EnumProvider="Targets" IncludeInCommandLine="False">
83      <DynamicEnumProperty.DisplayName>
84        <sys:String>Execute After</sys:String>
85      </DynamicEnumProperty.DisplayName>
86      <DynamicEnumProperty.Description>
87        <sys:String>Specifies the targets for the build customization to run after.</sys:String>
88      </DynamicEnumProperty.Description>
89      <DynamicEnumProperty.ProviderSettings>
90        <NameValuePair Name="Exclude" Value="^NASMAfterTargets|^Compute"/>
91      </DynamicEnumProperty.ProviderSettings>
92      <DynamicEnumProperty.DataSource>
93        <DataSource Persistence="ProjectFile" ItemType="" HasConfigurationCondition="true"/>
94      </DynamicEnumProperty.DataSource>
95    </DynamicEnumProperty>
96    <StringProperty Name="ExecutionDescription" DisplayName="Execution Description" IncludeInCommandLine="False" Visible="False"/>
97    <StringListProperty Name="AdditionalDependencies" DisplayName="Additional Dependencies" IncludeInCommandLine="False" Visible="False"/>
98    <StringProperty Subtype="AdditionalOptions" Name="AdditionalOptions" Category="Command Line">
99      <StringProperty.DisplayName>
100        <sys:String>Additional Options</sys:String>
101      </StringProperty.DisplayName>
102      <StringProperty.Description>
103        <sys:String>Additional Options</sys:String>
104      </StringProperty.Description>
105    </StringProperty>
106  </Rule>
107  <ItemType Name="NASM" DisplayName="Netwide Assembler"/>
108  <FileExtension Name="*.asm" ContentType="NASM"/>
109  <ContentType Name="NASM" DisplayName="Netwide Assembler" ItemType="NASM"/>
110</ProjectSchemaDefinitions>
111