97 lines
5.4 KiB
XML
97 lines
5.4 KiB
XML
<Project>
|
|
<Import Project=".\Common.props" />
|
|
|
|
<PropertyGroup>
|
|
<CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)/OpenTelemetry.prod.ruleset</CodeAnalysisRuleSet>
|
|
<ExposeExperimentalFeatures Condition="'$(ExposeExperimentalFeatures)' == ''">true</ExposeExperimentalFeatures>
|
|
<EnablePackageValidation Condition="'$(EnablePackageValidation)' == ''">false</EnablePackageValidation>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Label="PackageProperties">
|
|
<RepositoryType>git</RepositoryType>
|
|
<RepositoryUrl>https://github.com/open-telemetry/opentelemetry-dotnet</RepositoryUrl>
|
|
<PackageTags>Observability;OpenTelemetry;Monitoring;Telemetry;Tracing;Metrics;Logging</PackageTags>
|
|
<PackageIcon>opentelemetry-icon-color.png</PackageIcon>
|
|
<PackageProjectUrl>https://opentelemetry.io</PackageProjectUrl>
|
|
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
|
|
<Authors>OpenTelemetry Authors</Authors>
|
|
<Copyright>Copyright The OpenTelemetry Authors</Copyright>
|
|
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
|
|
<PackageOutputPath Condition="$(Build_ArtifactStagingDirectory) != ''">$(Build_ArtifactStagingDirectory)</PackageOutputPath>
|
|
<IncludeSymbols>true</IncludeSymbols>
|
|
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Label="SourceLinkProperties">
|
|
<PublishRepositoryUrl>true</PublishRepositoryUrl>
|
|
<EmbedUntrackedSources>true</EmbedUntrackedSources>
|
|
<ContinuousIntegrationBuild Condition="'$(Deterministic)'=='true'">true</ContinuousIntegrationBuild>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="MinVer" PrivateAssets="All" Condition="'$(IntegrationBuild)' != 'true'" />
|
|
<PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" Condition="'$(IntegrationBuild)' != 'true'" />
|
|
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" PrivateAssets="All" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<None Include="$(MSBuildThisFileDirectory)opentelemetry-icon-color.png" Pack="true" PackagePath="\" />
|
|
<SourceRoot Condition="'$(Deterministic)'=='true'" Include="$(MSBuildThisFileDirectory)/" />
|
|
<!-- Note: This includes all the PublicApiAnalyzers files in projects to make editing easier in the IDE -->
|
|
<None Include=".publicApi\**\PublicAPI.*.txt" />
|
|
</ItemGroup>
|
|
|
|
<Target Name="AssemblyVersionTarget" AfterTargets="MinVer" Condition="'$(MinVerVersion)'!='' AND '$(BuildNumber)' != ''">
|
|
<!-- Note: $(BuildNumber) is typically only set for builds initiated by the
|
|
publish workflow. The goal here is to set the assembly FileVersion and
|
|
resolve ExposeExperimentalFeatures based on the version MinVer resolved from
|
|
the git tag -->
|
|
<PropertyGroup>
|
|
<FileVersion>$(MinVerMajor).$(MinVerMinor).$(MinVerPatch).$(BuildNumber)</FileVersion>
|
|
<ExposeExperimentalFeatures Condition="'$(MinVerPreRelease)' != ''">true</ExposeExperimentalFeatures>
|
|
<ExposeExperimentalFeatures Condition="'$(MinVerPreRelease)' == ''">false</ExposeExperimentalFeatures>
|
|
</PropertyGroup>
|
|
|
|
<!-- Note: The '$(TargetFramework)' != '' check here is to reduce log spam
|
|
in builds like dotnet pack which fire MinVer but don't resolve the actual
|
|
TargetFramework -->
|
|
<Message
|
|
Condition="'$(TargetFramework)' != ''"
|
|
Importance="high"
|
|
Text="**AssemblyVersionDebug** TargetFramework: $(TargetFramework), MinVerVersion: $(MinVerVersion), BuildNumber: $(BuildNumber), FileVersion: $(FileVersion), ExposeExperimentalFeatures: $(ExposeExperimentalFeatures)" />
|
|
</Target>
|
|
|
|
<Target Name="ResolveExposeExperimentalFeatures" BeforeTargets="CoreCompile" DependsOnTargets="AssemblyVersionTarget">
|
|
<!-- Note: This runs for all builds. The goal here is to set the
|
|
EXPOSE_EXPERIMENTAL_FEATURES compiler constant if
|
|
$(ExposeExperimentalFeatures) is enabled and then select the correct api
|
|
files for the analyzer -->
|
|
<PropertyGroup Condition="'$(ExposeExperimentalFeatures)' == 'true'">
|
|
<DefineConstants>$(DefineConstants);EXPOSE_EXPERIMENTAL_FEATURES</DefineConstants>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup Condition="'$(ExposeExperimentalFeatures)' != 'true'">
|
|
<Compile Remove="@(Compile)" Condition="'%(Compile.RequiresExposedExperimentalFeatures)' == 'true'" />
|
|
</ItemGroup>
|
|
|
|
<!-- Note: This selects the correct PublicApiAnalyzers files based on $(ExposeExperimentalFeatures) -->
|
|
<ItemGroup>
|
|
<AdditionalFiles Include=".publicApi\Stable\PublicAPI.*.txt" />
|
|
<AdditionalFiles Include=".publicApi\Stable\$(TargetFramework)\PublicAPI.*.txt" />
|
|
<AdditionalFiles Include=".publicApi\Experimental\PublicAPI.*.txt" Condition="'$(ExposeExperimentalFeatures)' == 'true'" />
|
|
<AdditionalFiles Include=".publicApi\Experimental\$(TargetFramework)\PublicAPI.*.txt" Condition="'$(ExposeExperimentalFeatures)' == 'true'" />
|
|
<AdditionalFiles Include=".publicApi\PublicAPI.*.txt" />
|
|
<AdditionalFiles Include=".publicApi\$(TargetFramework)\PublicAPI.*.txt" />
|
|
</ItemGroup>
|
|
|
|
<!-- Note: The '$(BuildNumber)' != '' check here is to reduce log spam in
|
|
local and CI builds. We only want to log this for the publish workflows
|
|
where official builds are generated -->
|
|
<Message
|
|
Condition="'$(BuildNumber)' != ''"
|
|
Importance="high"
|
|
Text="**ResolveExposeExperimentalFeaturesDebug** TargetFramework: $(TargetFramework), DefineConstants: $(DefineConstants)" />
|
|
</Target>
|
|
|
|
</Project>
|