﻿<?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)build/NuGet.props" />
  
  <PropertyGroup>
    <TargetFrameworks>netstandard2.1;netstandard2.0</TargetFrameworks>
    <TargetFrameworks Condition="$([MSBuild]::IsOsPlatform('Windows'))">$(TargetFrameworks);net45</TargetFrameworks>

    <AssemblyTitle>Lucene.Net.Expressions</AssemblyTitle>
    <Description>Dynamically computed values to sort/facet/search on based on a pluggable grammar for the Lucene.Net full-text search engine library from The Apache Software Foundation.</Description>
    <PackageTags>$(PackageTags);expression</PackageTags>
    <DocumentationFile>bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
    <NoWarn>$(NoWarn);1591;1573</NoWarn>
  </PropertyGroup>

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

  <ItemGroup>
    <PackageReference Include="Antlr3.Runtime" Version="$(Antlr3RuntimePackageVersion)" />
  </ItemGroup>
  
  <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.1' ">
    <PackageReference Include="System.Reflection.Emit" Version="$(SystemReflectionEmitPackageVersion)" />
    <PackageReference Include="System.Reflection.Emit.ILGeneration" Version="$(SystemReflectionEmitILGenerationPackageVersion)" />
    <PackageReference Include="System.Reflection.TypeExtensions" Version="$(SystemReflectionTypeExtensionsPackageVersion)" />
  </ItemGroup>
  
  <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
    <PackageReference Include="System.Reflection.Emit" Version="$(SystemReflectionEmitPackageVersion)" />
    <PackageReference Include="System.Reflection.Emit.ILGeneration" Version="$(SystemReflectionEmitILGenerationPackageVersion)" />
    <PackageReference Include="System.Reflection.TypeExtensions" Version="$(SystemReflectionTypeExtensionsPackageVersion)" />
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Include="JS\JavascriptCompiler.properties" />
  </ItemGroup>

</Project>
