Files
AtomUI/build/AtomUI.Repository.props
2026-09-02 12:31:17 +08:00

69 lines
5.5 KiB
XML

<Project>
<Import Project="$(MSBuildThisFileDirectory)Versions.props" />
<Import Project="$(MSBuildThisFileDirectory)ProjectDefaults.props" />
<Import Project="$(MSBuildThisFileDirectory)PackageMetadata.props" />
<Import Project="$(MSBuildThisFileDirectory)OutputPaths.props" />
<PropertyGroup>
<AtomUIRepositoryBuild>true</AtomUIRepositoryBuild>
<AtomUIBuildTasksSourceAssembly Condition="'$(AtomUIBuildTasksSourceAssembly)' == ''">$(OutputPathWithoutFramework)/netstandard2.0/AtomUI.Build.Tasks.dll</AtomUIBuildTasksSourceAssembly>
<AtomUILinkedPublishGeneratorAssembly Condition="'$(AtomUILinkedPublishGeneratorAssembly)' == ''">$(OutputPathWithoutFramework)/netstandard2.0/AtomUI.Generator.LinkedPublish.dll</AtomUILinkedPublishGeneratorAssembly>
</PropertyGroup>
<!-- MSBuild keeps loaded task assemblies locked for the lifetime of the build node. In
repository builds, UsingTask registrations therefore point at a per-project shadow
copy whose directory changes whenever the toolset content changes, so a rebuild
never has to overwrite a file an active node still holds. The shadow key is produced
by the AtomUI.Build.Tasks build itself: file metadata and content are only
accessible inside targets, so the producer stamps AtomUI.BuildTasks.ShadowKey.props
next to the DLL (SHA256 of the compiled assembly; stable across no-op recompiles)
and consumers import it here at evaluation time. The copy itself is staged by
_AtomUIStageBuildTasksToolset in AtomUI.Repository.targets. -->
<Import Project="$(OutputPathWithoutFramework)/netstandard2.0/AtomUI.BuildTasks.ShadowKey.props"
Condition="Exists('$(OutputPathWithoutFramework)/netstandard2.0/AtomUI.BuildTasks.ShadowKey.props')" />
<PropertyGroup>
<AtomUIBuildTasksShadowKey Condition="'$(AtomUIBuildTasksShadowKey)' == ''">pending</AtomUIBuildTasksShadowKey>
<!-- Capture the shadow root here: IntermediateOutputPath is expanded eagerly, and the
SDK appends the TargetFramework segment to it after this props file is imported, so
execution-time reads of IntermediateOutputPath would produce a mismatched path. -->
<AtomUIBuildTasksShadowRoot>$(IntermediateOutputPath)/AtomUIBuildTasksShadow</AtomUIBuildTasksShadowRoot>
<AtomUIBuildTasksShadowDirectory>$(AtomUIBuildTasksShadowRoot)/$(TargetFramework)/$(AtomUIBuildTasksShadowKey)</AtomUIBuildTasksShadowDirectory>
<AtomUIBuildTasksAssembly Condition="'$(AtomUIBuildTasksAssembly)' == ''">$(AtomUIBuildTasksShadowDirectory)/AtomUI.Build.Tasks.dll</AtomUIBuildTasksAssembly>
</PropertyGroup>
<ItemGroup>
<AtomUINuGetBuildAsset Include="$(MSBuildThisFileDirectory)AtomUI.Generator.props;
$(MSBuildThisFileDirectory)AtomUI.Generator.targets;
$(MSBuildThisFileDirectory)AtomUI.LinkedRegistration.props;
$(MSBuildThisFileDirectory)AtomUI.LinkedRegistration.targets;
$(MSBuildThisFileDirectory)AtomUI.LinkedRegistration.SidecarConsumer.targets;
$(MSBuildThisFileDirectory)AtomUI.Localization.props;
$(MSBuildThisFileDirectory)AtomUI.Localization.targets;
$(MSBuildThisFileDirectory)AtomUI.ThemeAssets.targets">
<PackagePath>buildTransitive/%(Filename)%(Extension)</PackagePath>
</AtomUINuGetBuildAsset>
<AtomUIGeneratorToolAsset Include="$(OutputPathWithoutFramework)/netstandard2.0/AtomUI.Generator.dll;
$(OutputPathWithoutFramework)/netstandard2.0/AtomUI.Generator.LinkedPublish.dll;
$(OutputPathWithoutFramework)/netstandard2.0/AtomUI.Build.Tasks.dll;
$(OutputPathWithoutFramework)/netstandard2.0/System.Reflection.Metadata.dll;
$(OutputPathWithoutFramework)/netstandard2.0/System.Collections.Immutable.dll;
$(OutputPathWithoutFramework)/netstandard2.0/System.Memory.dll;
$(OutputPathWithoutFramework)/netstandard2.0/System.Buffers.dll;
$(OutputPathWithoutFramework)/netstandard2.0/System.Numerics.Vectors.dll;
$(OutputPathWithoutFramework)/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll">
<PackagePath>tools/netstandard2.0/%(Filename)%(Extension)</PackagePath>
</AtomUIGeneratorToolAsset>
</ItemGroup>
<ItemGroup Condition="('$(AtomUILinkedPublish)' == 'true' or '$(PublishTrimmed)' == 'true' or '$(PublishAot)' == 'true' or '$(RunAOTCompilation)' == 'true' or '$(AtomUIEmitLinkedManifest)' == 'true' or '$(AtomUIRegistrationStrict)' == 'true') and '$(MSBuildProjectName)' != 'AtomUI.Generator' and '$(MSBuildProjectName)' != 'AtomUI.Generator.LinkedPublish' and '$(MSBuildProjectName)' != 'AtomUI.Build.Tasks'">
<ProjectReference Include="$(MSBuildThisFileDirectory)../src/AtomUI.Generator.LinkedPublish/AtomUI.Generator.LinkedPublish.csproj"
OutputItemType="Analyzer"
ReferenceOutputAssembly="false"
PrivateAssets="all" />
</ItemGroup>
<Import Project="$(MSBuildThisFileDirectory)AtomUI.Generator.props" />
</Project>