﻿<?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);net451</TargetFrameworks>

    <AssemblyTitle>Lucene.Net.Analysis.Morfologik</AssemblyTitle>
    <RootNamespace>Lucene.Net.Analysis</RootNamespace>
    <Description>Japanese Morphological Analyzer for the Lucene.Net full-text search engine library from The Apache Software Foundation.</Description>
    <PackageTags>$(PackageTags);analysis;japanese</PackageTags>
    <DocumentationFile>bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
    <NoWarn>$(NoWarn);1591;1573</NoWarn>
  </PropertyGroup>

  <ItemGroup>
    <Compile Remove="Properties\AssemblyInfo.cs" />
  </ItemGroup>

  <ItemGroup>
    <None Remove="Uk\mapping_uk.txt" />
    <None Remove="Uk\README" />
    <None Remove="Uk\stopwords.txt" />
    <None Remove="Uk\tagset.txt" />
    <None Remove="Uk\ukrainian.dict" />
    <None Remove="Uk\ukrainian.info" />
  </ItemGroup>

  <ItemGroup>
    <EmbeddedResource Include="Uk\mapping_uk.txt" />
    <EmbeddedResource Include="Uk\README" />
    <EmbeddedResource Include="Uk\stopwords.txt" />
    <EmbeddedResource Include="Uk\tagset.txt" />
    <EmbeddedResource Include="Uk\ukrainian.dict" />
    <EmbeddedResource Include="Uk\ukrainian.info" />
  </ItemGroup>

  <ItemGroup>
    <None Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Morfologik.Fsa" Version="$(MorfologikFsaPackageVersion)" />
    <PackageReference Include="Morfologik.Polish" Version="$(MorfologikPolishPackageVersion)" />
    <PackageReference Include="Morfologik.Stemming" Version="$(MorfologikStemmingPackageVersion)" />
  </ItemGroup>

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

</Project>
