<?xml version="1.0" encoding="utf-8"?>
<Project>
  <PropertyGroup>
    <LangVersion>12</LangVersion>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <IsPackable>false</IsPackable>
    <RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
    <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
    <CentralPackageVersionOverrideEnabled>true</CentralPackageVersionOverrideEnabled>
    <EnableWindowsTargeting>true</EnableWindowsTargeting> <!-- windows packs for .net core  -->
    <IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
  </PropertyGroup>

  <PropertyGroup Label="Analyers">
    <EnableNetAnalyzers>true</EnableNetAnalyzers>
    <AnalysisLevel>latest-AllEnabledByDefault</AnalysisLevel>
    <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <AllowUnsafeBlocks>false</AllowUnsafeBlocks>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>

    <!-- Ingored warnings, some aspirational but too noisy for now, some by design.  -->
    <NoWarn>
      <!--Disabled by design-->
      CA5399;CA1812;
      <!--XML comment-->
      CS1591;CS1573;
      <!-- Globalization rules -->
      CA1303;CA1304;CA1305;CA1307;CA1308;CA1309;CA1310;CA1311;
      <!-- Logging -->
      CA1848;CA1727;
      <!-- Others we don't want -->
      CA1815;CA1725;CA1501;CA1510;
      <!-- Package using wrong RIDs (Net8 changed them). Usually fixable by updating.  -->
      NETSDK1206;
      $(NoWarn)
    </NoWarn>
  </PropertyGroup>

  <PropertyGroup Label="Repo Info">
    <RepositoryUrl>https://github.com/specklesystems/speckle-sharp-connectors</RepositoryUrl>
    <RepositoryType>git</RepositoryType>
    <!-- Expose the repository root to all projects -->
    <RepositoryRoot>$(MSBuildThisFileDirectory)</RepositoryRoot>

  </PropertyGroup>

  <ItemGroup>
    <!-- This file contains the configuration for some analyzer warnings, such as cyclomatic
complexity threshold -->
    <AdditionalFiles Include="$(RepositoryRoot)CodeMetricsConfig.txt"/>
  </ItemGroup>

  <PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
    <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
  </PropertyGroup>

  <PropertyGroup>
    <EmbedUntrackedSources>true</EmbedUntrackedSources>
    <AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
  </PropertyGroup>
</Project>
