<?xml version="1.0" encoding="utf-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <ImportGroup Label="PropertySheets" />
 <PropertyGroup Label="UserMacros" />
 <PropertyGroup>
     <Windows8SdkDir>$(MSBuildProgramFiles32)\Windows Kits\8.1\</Windows8SdkDir>
  </PropertyGroup>

  <PropertyGroup>
    <Windows8SDK_IncludePath>$(Windows8SdkDir)Include\um;$(Windows8SdkDir)Include\shared;</Windows8SDK_IncludePath>
    <Windows8SDK_ExecutablePath_x86>$(Windows8SdkDir)bin\x86;</Windows8SDK_ExecutablePath_x86>
    <Windows8SDK_ExecutablePath_x64>$(Windows8SdkDir)bin\x64;</Windows8SDK_ExecutablePath_x64>
    <Windows8SDK_LibraryPath_x86>$(Windows8SdkDir)lib\winv6.3\um\x86;</Windows8SDK_LibraryPath_x86>
    <Windows8SDK_LibraryPath_x64>$(Windows8SdkDir)lib\winv6.3\um\x64;</Windows8SDK_LibraryPath_x64>
  </PropertyGroup>

 <PropertyGroup Condition="'$(Platform)' == 'Win32'">
   <ExecutablePath>$(ExecutablePath);$(Windows8SDK_ExecutablePath_x86);</ExecutablePath>
   <IncludePath>$(Windows8SDK_IncludePath);$(IncludePath);</IncludePath>
   <LibraryPath>$(LibraryPath);$(Windows8SDK_LibraryPath_x86);</LibraryPath>
   <ExcludePath>$(ExcludePath);$(Windows8SDK_IncludePath);$(Windows8SDK_LibraryPath_x86);</ExcludePath>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Platform)' == 'x64'">
   <ExecutablePath>$(ExecutablePath);$(Windows8SDK_ExecutablePath_x64);</ExecutablePath>
   <IncludePath>$(Windows8SDK_IncludePath);$(IncludePath);</IncludePath>
   <LibraryPath>$(LibraryPath);$(Windows8SDK_LibraryPath_x64);</LibraryPath>
   <ExcludePath>$(ExcludePath);$(Windows8SDK_IncludePath);$(Windows8SDK_LibraryPath_x64);</ExcludePath>
  </PropertyGroup>
<ItemDefinitionGroup />
</Project>
