﻿<?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 Sdk="Microsoft.NET.Sdk">

  <Import Project="$(SolutionDir)TestTargetFramework.props" />

  <PropertyGroup>
    <PackageTargetFallback Condition=" '$(TargetFramework)' == 'netcoreapp1.1' ">$(PackageTargetFallback);dnxcore50</PackageTargetFallback>

    <AssemblyTitle>Lucene.Net.Tests.TestFramework.xUnit</AssemblyTitle>
    <RootNamespace>Lucene.Net</RootNamespace>
    <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
    <RuntimeIdentifiers>win7-x86;win7-x64</RuntimeIdentifiers>

    <DefineConstants>$(DefineConstants);TESTFRAMEWORK_XUNIT</DefineConstants>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="..\Lucene.Net.Tests.TestFramework\**\*.cs" />
    <Compile Remove="..\Lucene.Net.Tests.TestFramework\obj\**\*;..\Lucene.Net.Tests.TestFramework\bin\**\*" />
    <Compile Remove="..\Lucene.Net.Tests.TestFramework\Properties\*.cs" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\Lucene.Net.TestFramework.xUnit\Lucene.Net.TestFramework.xUnit.csproj" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" />
    <PackageReference Include="xunit" Version="$(XUnitPackageVersion)" />
    <PackageReference Include="xunit.runner.visualstudio" Version="$(XUnitRunnerVisualStudioPackageVersion)" />
  </ItemGroup>

  <PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.1' ">
    <DefineConstants>$(DefineConstants);FEATURE_THREAD_PRIORITY</DefineConstants>
    <DebugType>portable</DebugType>
  </PropertyGroup>

  <PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp1.1' ">
    <DefineConstants>$(DefineConstants);NETSTANDARD1_6</DefineConstants>
    <DebugType>portable</DebugType>
  </PropertyGroup>

  <PropertyGroup Condition=" '$(TargetFramework)' == 'net451' ">
    <DefineConstants>$(DefineConstants);FEATURE_SERIALIZABLE_EXCEPTIONS;FEATURE_THREAD_PRIORITY</DefineConstants>
    <DebugType>full</DebugType>
  </PropertyGroup>

  <ItemGroup Condition=" '$(TargetFramework)' == 'net451' ">
    <Reference Include="System" />
    <Reference Include="Microsoft.CSharp" />
  </ItemGroup>

</Project>
