﻿<?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">
  <PropertyGroup>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <OutputType>Library</OutputType>
    <TargetFrameworks>net35;net40;netstandard2.0</TargetFrameworks>
    <RootNamespace>Apache.NMS.Test</RootNamespace>
    <AssemblyName>Apache.NMS.Test</AssemblyName>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)'=='Release'">
    <OutputPath>..\..\build\</OutputPath>
    <AppendTargetFrameworkToOutputPath>true</AppendTargetFrameworkToOutputPath>
  </PropertyGroup>

  <PropertyGroup>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <PackageId>Apache.NMS.Test</PackageId>
    <Version>1.8.0</Version>
    <Authors>Apache ActiveMQ</Authors>
    <Company>Apache Software Foundation</Company>
    <Product>Apache NMS API</Product>
    <Description>Apache NMS (.Net Standard Messaging Library) Test Suite</Description>
    <Copyright>Copyright (C) 2005-2019 Apache Software Foundation</Copyright>
    <PackageProjectUrl>https://activemq.apache.org/components/nms/</PackageProjectUrl>
    <PackageLicense>https://github.com/apache/activemq-nms-api/blob/master/LICENSE.txt</PackageLicense>
    <PackageIconUrl>https://activemq.apache.org/assets/img/activemq_logo_icon.png</PackageIconUrl>
    <RepositoryUrl>https://github.com/apache/activemq-nms-api</RepositoryUrl>
    <RepositoryType>git</RepositoryType>
    <PackageTags>apache;activemq;nms;api;net;test;messaging</PackageTags>
    <PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
  </PropertyGroup>

  <ItemGroup>
    <None Include="..\..\LICENSE.txt" Pack="true" PackagePath="LICENSE.txt"/>
    <None Include="..\..\NOTICE.txt" Pack="true" PackagePath="NOTICE.txt"/>
  </ItemGroup>

  <PropertyGroup>
    <SignAssembly>true</SignAssembly>
    <AssemblyOriginatorKeyFile>..\..\keyfile\NMSKey.snk</AssemblyOriginatorKeyFile>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="NUnit" Version="3.12.0" />
    <PackageReference Include="NUnit.Console" Version="3.10.0" />
    <PackageReference Include="NUnit3TestAdapter" Version="3.13.0" />
  </ItemGroup>

  <ItemGroup Condition=" '$(TargetFramework)' == 'net35'">
    <Reference Include="System.Web" />
  </ItemGroup>

  <ItemGroup Condition=" '$(TargetFramework)' == 'net40'">
    <Reference Include="System.Web" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\..\src\nms-api\nms-api.csproj" />
  </ItemGroup>
</Project>
