<?xml version="1.0" encoding="utf-8"?>
<VisualStudioToolFile
	Name="Netwide Assembler"
	Version="8,00"
	>
	<Rules>
		<CustomBuildRule
			Name="NASM"
			DisplayName="Netwide Assembler"
			CommandLine="$(SolutionDir)..\..\dependencies\nasm.exe [AllOptions] [AdditionalOptions] -- [inputs]"
			Outputs="[$ObjectFileName]"
			FileExtensions="*.asm"
			ExecutionDescription="Assembling..."
			>
			<Properties>
				<StringProperty
					Name="ObjectFileName"
					DisplayName="Object File Name"
					Description="Specifies the name of the output object file.     (-o [file])"
					Switch="-o &quot;[value]&quot;"
					DefaultValue="$(IntDir)\$(InputName).obj"
				/>
				<EnumProperty
					Name="Optimization"
					DisplayName="Branch Offset Optimization"
					Description="Optimize branch offsets.     (-O[digit])"
					>
					<Values>
						<EnumValue
							Value="0"
							Switch="-O0"
							DisplayName="Do not optimize (-O0)"
						/>
						<EnumValue
							Value="1"
							Switch="-O1"
							DisplayName="Optimize (-O1)"
						/>
					</Values>
				</EnumProperty>
				<StringProperty
					Name="IncludePath"
					DisplayName="Include Path"
					Description="Adds a pathname to the include file path.     (-I[path])"
					Switch="-I&quot;[value]&quot;"
					Delimited="true"
				/>
				<EnumProperty
					Name="ObjectFileFormat"
					DisplayName="Object File Format"
					Description="Set the object file format.     (-f [format])"
					DefaultValue="8"
					>
					<Values>
						<EnumValue
							Value="0"
							Switch="-f bin"
							DisplayName="Flat-form binary files (e.g. DOS .COM, .SYS)"
						/>
						<EnumValue
							Value="1"
							Switch="-f aout"
							DisplayName="Linux a.out object files"
						/>
						<EnumValue
							Value="2"
							Switch="-f aoutb"
							DisplayName="NetBSD/FreeBSD a.out object files"
						/>
						<EnumValue
							Value="3"
							Switch="-f coff"
							DisplayName="COFF (i386) object files (e.g. DJGPP for DOS)"
						/>
						<EnumValue
							Value="4"
							Switch="-f elf32"
							DisplayName="ELF32 (i386) object files (e.g. Linux)"
						/>
						<EnumValue
							Value="5"
							Switch="-f elf64"
							DisplayName="ELF64 (x86_64) object files (e.g. Linux)"
						/>
						<EnumValue
							Value="6"
							Switch="-f as86"
							DisplayName="Linux as86 (bin86 version 0.3) object files"
						/>
						<EnumValue
							Value="7"
							Switch="-f obj"
							DisplayName="MS-DOS 16-bit/32-bit OMF object files"
						/>
						<EnumValue
							Value="8"
							Switch="-f win32"
							DisplayName="Microsoft Win32 (i386) object files"
						/>
						<EnumValue
							Value="9"
							Switch="-f win64"
							DisplayName="Microsoft Win64 (x86-64) object files"
						/>
						<EnumValue
							Value="10"
							Switch="-f rdf"
							DisplayName="Relocatable Dynamic Object File Format v2.0"
						/>
						<EnumValue
							Value="11"
							Switch="-f ieee"
							DisplayName="IEEE-695 (LADsoft variant) object file format"
						/>
						<EnumValue
							Value="12"
							Switch="-f macho"
							DisplayName="NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X object files"
						/>
					</Values>
				</EnumProperty>
				<EnumProperty
					Name="ErrorReportingFormat"
					DisplayName="Error Reporting Format"
					Description="Specifies error reporting format.     (-X[format])"
					DefaultValue="1"
					>
					<Values>
						<EnumValue
							Value="0"
							Switch="-Xgnu"
							DisplayName="GNU"
						/>
						<EnumValue
							Value="1"
							Switch="-Xvc"
							DisplayName="Microsoft Visual C++"
						/>
					</Values>
				</EnumProperty>
				<BooleanProperty
					Name="TreatWarningsAsErrors"
					DisplayName="Treat Warnings As Errors"
					Description="Returns an error code if warnings are generated.     (-w+error)"
					Switch="-w+error"
				/>
				<BooleanProperty
					Name="DisableOrphanLabelsWarning"
					DisplayName="Disable Orphan Labels Warning"
					Description="Disable warning when labels alone on lines without trailing &apos;:&apos; are found.     (-w-orphan-labels)"
					Switch="-w-orphan-labels"
				/>
				<StringProperty
					Name="PreprocessorDefinitions"
					DisplayName="Preprocessor Definitions"
					Description="Defines a text macro with the given name.     (-D[symbol][=value])"
					Switch="-D[value]"
				/>
				<BooleanProperty
					Name="GenerateDebugInfo"
					DisplayName="Generate Debug Info"
					Description="Generate debug information in selected format. (-g)"
					Switch="-g"
				/>
			</Properties>
		</CustomBuildRule>
	</Rules>
</VisualStudioToolFile>
