<Project TreatAsLocalProperty="TaskFolder;TaskAssembly">

  <PropertyGroup>
    <CapnpcCsharp_CpsExtensionDesignTimeTargetsPath Condition="'$(CapnpcCsharp_CpsExtensionDesignTimeTargetsPath)' == ''">$(MSBuildThisFileDirectory)CPS\Buildsystem\CpsExtension.DesignTime.targets</CapnpcCsharp_CpsExtensionDesignTimeTargetsPath>
  </PropertyGroup>

  <Import Project="$(CapnpcCsharp_CpsExtensionDesignTimeTargetsPath)" Condition="'$(DesignTimeBuild)' == 'true' " />


  <PropertyGroup>
    <CapnpcCsharp_UseHostCompilerIfAvailable Condition="'$(CapnpcCsharp_UseHostCompilerIfAvailable)'==''">false</CapnpcCsharp_UseHostCompilerIfAvailable>
    <UseHostCompilerIfAvailable>$(CapnpcCsharp_UseHostCompilerIfAvailable)</UseHostCompilerIfAvailable>
  </PropertyGroup>


  <PropertyGroup>
    <OverwriteReadOnlyFiles Condition="'$(OverwriteReadOnlyFiles)'==''">false</OverwriteReadOnlyFiles>
    <ForceGeneration Condition="'$(ForceGeneration)'==''">false</ForceGeneration>

    <ShowTrace Condition="'$(ShowTrace)'==''">false</ShowTrace>
    <VerboseOutput Condition="'$(VerboseOutput)'==''">true</VerboseOutput>
    <CapnpcCsharp_DebugMSBuildTask Condition="'$(CapnpcCsharp_DebugMSBuildTask)' == ''">false</CapnpcCsharp_DebugMSBuildTask>

    <_CapnpcCsharpPropsImported Condition="'$(_CapnpcCsharpPropsImported)'==''">true</_CapnpcCsharpPropsImported>
  </PropertyGroup>

  <!--
    property group for feature flags
  -->
  <PropertyGroup>

    <!--
      feature flag to enable experimental support for cleaning up generated code-behind files during rebuild and clean scenarios
    -->
    <CapnpcCsharp_DeleteCodeBehindFilesOnCleanRebuild Condition="'$(CapnpcCsharp_DeleteCodeBehindFilesOnCleanRebuild)'==''">false</CapnpcCsharp_DeleteCodeBehindFilesOnCleanRebuild>

    <!--
      net.sdk support: feature flag to enable experimental support for net.sdk project system
    -->
    <CapnpcCsharp_EnableDefaultCompileItems Condition="'$(CapnpcCsharp_EnableDefaultCompileItems)'==''">true</CapnpcCsharp_EnableDefaultCompileItems>
    <CapnpcCsharp_EnableWarnForFeatureCodeBehindFilesWithoutCorrespondingCapnpFile Condition="'$(CapnpcCsharp_EnableWarnForFeatureCodeBehindFilesWithoutCorrespondingCapnpFile)'==''">$(CapnpcCsharp_EnableDefaultCompileItems)</CapnpcCsharp_EnableWarnForFeatureCodeBehindFilesWithoutCorrespondingCapnpFile>

    <DefaultItemExcludes>$(DefaultItemExcludes);**/*.capnp</DefaultItemExcludes>
  </PropertyGroup>

  <ItemGroup>
    <CapnpFiles Include="**\*.capnp" >
      <CodeBehindFile>%(RelativeDir)%(Filename).capnp.cs</CodeBehindFile>
      <Visible>$(UsingMicrosoftNETSdk)</Visible>
      <WorkingDirectory>$(ProjectDir)</WorkingDirectory>
    </CapnpFiles>

    <!-- obsolete codebehind files, scenarios:
         - after rename operation
         - after deletion of a feature file
         - after pulling latest changes from version control with above changes
     -->
    <CapnpCsharpObsoleteCodeBehindFiles Include="**\*.capnp.cs" Exclude="@(CapnpFiles->'%(CodeBehindFile)')" />

    <!-- Support for Visual Studio Incremental Build
        https://github.com/techtalk/SpecFlow/issues/1319
     -->
    <UpToDateCheckInput Include="@(CapnpFiles)" />
    <UpToDateCheckBuild Include="@(CapnpFiles->'%(CodeBehindFile)')" Original="@(CapnpFiles)" />
    <CustomAdditionalCompileInputs Include="@(CapnpFiles->'%(CodeBehindFile)')" />

  </ItemGroup>


  <PropertyGroup>
    <_CapnpcCsharp_TaskFolder Condition=" '$(MSBuildRuntimeType)' == 'Core' And '$(_CapnpcCsharp_TaskFolder)' == ''">netcoreapp2.1</_CapnpcCsharp_TaskFolder>
    <_CapnpcCsharp_TaskFolder Condition=" '$(MSBuildRuntimeType)' != 'Core' And '$(_CapnpcCsharp_TaskFolder)' == ''">net471</_CapnpcCsharp_TaskFolder>
    <_CapnpcCsharp_TaskAssembly Condition=" '$(_CapnpcCsharp_TaskAssembly)' == '' ">..\tasks\$(_CapnpcCsharp_TaskFolder)\CapnpC.CSharp.MsBuild.Generation.dll</_CapnpcCsharp_TaskAssembly>
  </PropertyGroup>

  <Import Project="CapnpC.CSharp.MsBuild.Generation.tasks"/>

</Project>