<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup Label="Configuration">
    <PlatformToolset Condition="'$(DefaultPlatformToolset)'!=''">$(DefaultPlatformToolset)_xp</PlatformToolset>
  </PropertyGroup>

  <ImportGroup Label="PropertySheets">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>

  <!-- All platforms settings -->
  <PropertyGroup>
    <OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
    <IntDir>$(SolutionDir)build\$(Configuration)\$(ProjectName)\</IntDir>
    <ExtensionsToDeleteOnClean>*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath);$(ExtensionsToDeleteOnClean)</ExtensionsToDeleteOnClean>
    <IgnoreImportLibrary>false</IgnoreImportLibrary>
    <LinkIncremental>false</LinkIncremental>
    <EmbedManifest>true</EmbedManifest>
  </PropertyGroup>

  <PropertyGroup Condition="'$(ConfigurationType)'=='StaticLibrary'">
    <OutDir>$(SolutionDir)bin\$(Configuration)\lib\</OutDir>
  </PropertyGroup>

  <ItemDefinitionGroup>
    <ClCompile>
      <PreprocessorDefinitions>WIN32;_WIN32;_WINDOWS;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
  </ItemDefinitionGroup>

  <PropertyGroup Label="UserMacros">
    <ROOT>$(SolutionDir)</ROOT>
    <SRC>$(ROOT)Source\</SRC>
  </PropertyGroup>

  <ItemGroup>
    <BuildMacro Include="ROOT">
      <Value>$(ROOT)</Value>
    </BuildMacro>
    <BuildMacro Include="SRC">
      <Value>$(SRC)</Value>
    </BuildMacro>
  </ItemGroup>

  <ItemDefinitionGroup>
    <BuildLog>
      <Path>$(IntDir)BuildLog.htm</Path>
    </BuildLog>
    <Bscmake>
      <SuppressStartupBanner>true</SuppressStartupBanner>
      <OutputFile>$(OutDir)$(ProjectName).bsc</OutputFile>
    </Bscmake>
    <ClCompile>
      <AdditionalIncludeDirectories>.\;$(SolutionDir)\Source;$(SolutionDir)\Source\3rdParty;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
      <PreprocessToFile>false</PreprocessToFile>
      <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
      <PreprocessKeepComments>false</PreprocessKeepComments>
      <StringPooling>true</StringPooling>
      <MinimalRebuild>true</MinimalRebuild>
      <ExceptionHandling>Async</ExceptionHandling>
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
      <StructMemberAlignment>Default</StructMemberAlignment>
      <BufferSecurityCheck>false</BufferSecurityCheck>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <EnableEnhancedInstructionSet Condition="'$(Platform)'=='Win32'">NoExtensions</EnableEnhancedInstructionSet>
      <EnableEnhancedInstructionSet Condition="'$(Platform)'=='Win32' AND $(PlatformToolsetVersion)&lt;110">NotSet</EnableEnhancedInstructionSet>
      <FloatingPointModel>Precise</FloatingPointModel>  
      <FloatingPointExceptions>false</FloatingPointExceptions>
      <DisableLanguageExtensions>false</DisableLanguageExtensions>
      <TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
      <ForceConformanceInForLoopScope>true</ForceConformanceInForLoopScope>
      <RuntimeTypeInfo>false</RuntimeTypeInfo>
      <OpenMPSupport>false</OpenMPSupport>
      <PrecompiledHeader>Use</PrecompiledHeader>
      <PrecompiledHeaderFile>StdAfx.h</PrecompiledHeaderFile>
      <PrecompiledHeaderOutputFile>$(IntDir)$(TargetName).pch</PrecompiledHeaderOutputFile>
      <ExpandAttributedSource>false</ExpandAttributedSource>
      <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
      <ObjectFileName>$(IntDir)</ObjectFileName>
      <ProgramDataBaseFileName>$(IntDir)vc$(VisualStudioVersion).pdb</ProgramDataBaseFileName>
      <GenerateXMLDocumentationFiles>false</GenerateXMLDocumentationFiles>
      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>
      <BrowseInformationFile>$(IntDir)</BrowseInformationFile>
      <WarningLevel>Level4</WarningLevel>
      <TreatWarningAsError>false</TreatWarningAsError>
      <SuppressStartupBanner>true</SuppressStartupBanner>
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
      <CallingConvention>Cdecl</CallingConvention>
      <CompileAs>Default</CompileAs>
      <ShowIncludes>false</ShowIncludes>
      <UndefineAllPreprocessorDefinitions>false</UndefineAllPreprocessorDefinitions>
      <EnablePREfast>false</EnablePREfast>
      <UseFullPaths>false</UseFullPaths>
      <OmitDefaultLibName>false</OmitDefaultLibName>
      <ErrorReporting>Prompt</ErrorReporting>
    </ClCompile>
    <Lib>
      <OutputFile>$(OutDir)$(TargetName).lib</OutputFile>
      <UseUnicodeResponseFiles>true</UseUnicodeResponseFiles>
      <SuppressStartupBanner>true</SuppressStartupBanner>
      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
    </Lib>
    <ProjectReference>
      <LinkLibraryDependencies>true</LinkLibraryDependencies>
      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
    </ProjectReference>
    <Link>
      <RegisterOutput>false</RegisterOutput>
      <PerUserRedirection>false</PerUserRedirection>
      <AdditionalOptions>/IGNORE:4199 /OPT:ICF=3 %(AdditionalOptions)</AdditionalOptions>
      <ShowProgress>NotSet</ShowProgress>
      <SuppressStartupBanner>true</SuppressStartupBanner>
      <ManifestFile>$(IntDir)$(TargetFileName).intermediate.manifest</ManifestFile>
      <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
      <ModuleDefinitionFile />
      <DelayLoadDLLs>advapi32.dll;userenv.dll;shell32.dll;shlwapi.dll;ws2_32.dll;version.dll;wtsapi32.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
      <IgnoreEmbeddedIDL>false</IgnoreEmbeddedIDL>
      <TypeLibraryResourceID>1</TypeLibraryResourceID>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <ProgramDatabaseFile>$(TargetDir)pdb/$(TargetName).pdb</ProgramDatabaseFile>
      <GenerateMapFile>true</GenerateMapFile>
      <MapFileName>$(TargetDir)map/$(TargetName).map</MapFileName>
      <MapExports>false</MapExports>
      <HeapReserveSize>0</HeapReserveSize>
      <HeapCommitSize>0</HeapCommitSize>
      <StackReserveSize>0</StackReserveSize>
      <StackCommitSize>0</StackCommitSize>
      <SwapRunFromCD>false</SwapRunFromCD>
      <SwapRunFromNET>false</SwapRunFromNET>
      <OptimizeReferences>true</OptimizeReferences>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <NoEntryPoint>false</NoEntryPoint>
      <SetChecksum>false</SetChecksum>
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
      <FixedBaseAddress>false</FixedBaseAddress>
      <TurnOffAssemblyGeneration>false</TurnOffAssemblyGeneration>
      <SupportUnloadOfDelayLoadedDLL>false</SupportUnloadOfDelayLoadedDLL>
      <ImportLibrary>$(TargetDir)lib/$(TargetName).lib</ImportLibrary>
      <Profile>false</Profile>
      <CLRThreadAttribute>DefaultThreadingAttribute</CLRThreadAttribute>
      <CLRImageType>Default</CLRImageType>
      <LinkErrorReporting>PromptImmediately</LinkErrorReporting>
      <CLRUnmanagedCodeCheck>false</CLRUnmanagedCodeCheck>
    </Link>
    <Midl>
      <AdditionalIncludeDirectories>.;$(SRC);$(SRC)\3rdParty;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
      <MkTypLibCompatible>false</MkTypLibCompatible>
      <WarningLevel>3</WarningLevel>
      <WarnAsError>false</WarnAsError>
      <SuppressStartupBanner>true</SuppressStartupBanner>
      <DefaultCharType>Unsigned</DefaultCharType>
      <GenerateStublessProxies>true</GenerateStublessProxies>
      <GenerateTypeLibrary>true</GenerateTypeLibrary>
      <TypeLibraryName>$(IntDir)%(Filename).tlb</TypeLibraryName>
      <HeaderFileName>%(Filename)_h.h</HeaderFileName>
      <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
      <ProxyFileName>%(Filename)_p.c</ProxyFileName>
      <EnableErrorChecks>All</EnableErrorChecks>
      <ErrorCheckAllocations>false</ErrorCheckAllocations>
      <ErrorCheckBounds>false</ErrorCheckBounds>
      <ErrorCheckEnumRange>false</ErrorCheckEnumRange>
      <ErrorCheckRefPointers>false</ErrorCheckRefPointers>
      <ErrorCheckStubData>false</ErrorCheckStubData>
      <ValidateAllParameters>true</ValidateAllParameters>
      <StructMemberAlignment>NotSet</StructMemberAlignment>
    </Midl>
    <ResourceCompile>
      <Culture>0x0000</Culture>
      <IgnoreStandardIncludePath>false</IgnoreStandardIncludePath>
      <ShowProgress>false</ShowProgress>
      <ResourceOutputFileName>$(IntDir)%(Filename).res</ResourceOutputFileName>
    </ResourceCompile>
    <Manifest>
      <OutputManifestFile>$(IntDir)$(TargetFileName).embed.manifest</OutputManifestFile>
      <SuppressStartupBanner>true</SuppressStartupBanner>
      <VerboseOutput>false</VerboseOutput>
      <GenerateCatalogFiles>false</GenerateCatalogFiles>
      <UpdateFileHashes>false</UpdateFileHashes>
    </Manifest>
    <ManifestResourceCompile>
      <ResourceOutputFileName>$(IntDir)$(TargetFileName).embed.manifest.res</ResourceOutputFileName>
    </ManifestResourceCompile>
    <Xdcmake>
      <DocumentLibraryDependencies>true</DocumentLibraryDependencies>
      <SuppressStartupBanner>true</SuppressStartupBanner>
      <OutputFile>$(TargetDir)$(TargetName).xml</OutputFile>
    </Xdcmake>
  </ItemDefinitionGroup>
  <!-- END common platform settings -->

  <!-- Win32 -->
  <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
    <Lib>
      <TargetMachine>MachineX86</TargetMachine>
    </Lib>
    <Link>
      <TargetMachine>MachineX86</TargetMachine>
    </Link>
  </ItemDefinitionGroup>
  <!-- END Win32 -->

  <!-- x64 -->
  <PropertyGroup Condition="'$(Platform)'=='x64'">
    <OutDir>$(SolutionDir)bin\$(Configuration)64\</OutDir>
    <IntDir>$(SolutionDir)build\$(Configuration)64\$(ProjectName)\</IntDir>
  </PropertyGroup>

  <PropertyGroup Condition="'$(ConfigurationType)|$(Platform)'=='StaticLibrary|x64'">
    <OutDir>$(SolutionDir)bin\$(Configuration)64\lib\</OutDir>
  </PropertyGroup>

  <ItemDefinitionGroup Condition="'$(Platform)'=='x64'">
    <Lib>
      <TargetMachine>MachineX64</TargetMachine>
    </Lib>
    <Link>
      <TargetMachine>MachineX64</TargetMachine>
    </Link>
  </ItemDefinitionGroup>
  <!-- END x64 -->

</Project>