﻿<?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">

  <!-- These properties must be set prior to importing nuget.props -->
  <PropertyGroup>
    <Description>Analyzers for indexing content in different languages and domains for the Lucene.NET full-text search engine library from The Apache Software Foundation.</Description>
    <PackageDocumentationRelativeUrl>analysis-common/overview.html</PackageDocumentationRelativeUrl>
  </PropertyGroup>

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

  <PropertyGroup>
    <TargetFrameworks>net8.0;netstandard2.1;netstandard2.0;net462</TargetFrameworks>

    <AssemblyTitle>Lucene.Net.Analysis.Common</AssemblyTitle>
    <PackageTags>$(PackageTags);analysis</PackageTags>
    <DocumentationFile>bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
    <NoWarn>$(NoWarn);1591;1573</NoWarn>
  </PropertyGroup>



  <ItemGroup>
    <EmbeddedResource Include="**/*.rslp" Exclude="bin/**/*;obj/**/*" Label="RSLP Test Data" />
    <EmbeddedResource Include="**/*.dtd" Exclude="bin/**/*;obj/**/*" Label="DTD Test Data" />
    <EmbeddedResource Include="**/*.txt" Exclude="bin/**/*;obj/**/*" Label="Text Test Data" />
  </ItemGroup>

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

  <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
    <PackageReference Include="System.Memory" Version="$(SystemMemoryPackageVersion)" />
  </ItemGroup>

  <ItemGroup Condition=" '$(TargetFramework)' == 'net462' ">
    <PackageReference Include="System.Memory" Version="$(SystemMemoryPackageVersion)" />
  </ItemGroup>

  <ItemGroup Condition=" '$(TargetFramework)' == 'net462' ">
    <Reference Include="System.Xml" />
  </ItemGroup>

  <ItemGroup>
    <InternalsVisibleTo Include="Lucene.Net.Tests.Analysis.Common" />
  </ItemGroup>

</Project>
