<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="Common.Build.Default.props"/>
  <Import Condition="'$(Clang)'!=''" Project="Chakra.Build.Clang.Default.props"/>
  <PropertyGroup Condition="'$(WindowsTargetPlatformVersion)'==''">
    <!-- Default the installed latest Win10 SDK -->
    <WindowsSdkInstallFolder_10 Condition="'$(WindowsSdkInstallFolder_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@InstallationFolder)</WindowsSdkInstallFolder_10>
    <WindowsSdkInstallFolder_10 Condition="'$(WindowsSdkInstallFolder_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v10.0@InstallationFolder)</WindowsSdkInstallFolder_10>
    <WindowsTargetPlatformVersion_10 Condition="'$(WindowsTargetPlatformVersion_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion)</WindowsTargetPlatformVersion_10>
    <WindowsTargetPlatformVersion_10 Condition="'$(WindowsTargetPlatformVersion_10)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v10.0@ProductVersion)</WindowsTargetPlatformVersion_10>
    <!-- Sometimes the version in the registry has to .0 suffix, and sometimes it doesn't. Check and add it -->
    <WindowsTargetPlatformVersion_10 Condition="'$(WindowsTargetPlatformVersion_10)' != '' and !$(WindowsTargetPlatformVersion_10.EndsWith('.0'))">$(WindowsTargetPlatformVersion_10).0</WindowsTargetPlatformVersion_10>

    <WindowsTargetPlatformVersion>$(WindowsTargetPlatformVersion_10)</WindowsTargetPlatformVersion>

    <!-- Default back to 10.0.10240.0 if the ARM version of the Win10 SDK is not installed -->
    <WindowsTargetPlatformVersion Condition="'$(Platform)'=='ARM' and !Exists('$(WindowsSdkInstallFolder_10)\Include\$(WindowsTargetPlatformVersion_10)\shared\ksarm.h')">10.0.10240.0</WindowsTargetPlatformVersion>
  </PropertyGroup>
  <PropertyGroup>
    <!-- Unless indicated otherwise, statically link the C++ Runtime into ChakraCore.dll -->
    <RuntimeLib Condition="'$(RuntimeLib)'==''">static_library</RuntimeLib>

    <NtTargetVersion>$(NtTargetVersion_Win7)</NtTargetVersion>
    <!-- On ARM we depend an API that was added in Win8 timeframe, specifically GetCurrentThreadLimits.
         Note that for ARM we don't need to support running on Win7, so it's fine to require Win8 as minimum. -->
    <NtTargetVersion Condition="'$(Platform)'=='ARM' or '$(Platform)'=='Arm64'">$(NtTargetVersion_Win8)</NtTargetVersion>
  </PropertyGroup>
  <PropertyGroup>
    <EnableIntl Condition="'$(EnableIntl)'==''">true</EnableIntl>
    <EnableIntl Condition="'$(BuildLite)'=='true'">false</EnableIntl>

    <ChakraICU Condition="'$(ChakraICU)'==''">false</ChakraICU>

    <BuildChakraICUData Condition="'$(BuildChakraICUData)'=='' AND ('$(ChakraICU)'=='static' OR '$(ChakraICU)'=='shared')">true</BuildChakraICUData>

    <IcuLibraryDependencies Condition="'$(ChakraICU)'=='windows'">icuuc.lib;icuin.lib</IcuLibraryDependencies>
  </PropertyGroup>
</Project>
