dotnet-installer/build/package/Layout.targets

117 lines
6 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SdkSymbolsLayoutOutputDirectory>$(LayoutDirectory)/$(ArtifactNameSdkSymbols)</SdkSymbolsLayoutOutputDirectory>
<CombinedHostHostFxrFrameworkSdkOutputDirectory>$(LayoutDirectory)/$(ArtifactNameCombinedHostHostFxrFrameworkSdk)</CombinedHostHostFxrFrameworkSdkOutputDirectory>
<SdkLanguagePackOutputDirectory>$(LayoutDirectory)/$(ArtifactNameSdkLanguagePack)</SdkLanguagePackOutputDirectory>
<SatelliteAssemblies>*.resources.dll</SatelliteAssemblies>
<WindowsSatelliteAssembliesRegEx>.*.resources.dll</WindowsSatelliteAssembliesRegEx>
</PropertyGroup>
<Target DependsOnTargets="Init" Name="SetupLayoutInputsOutputs" >
<!-- Set up Items with Layout Input Files -->
<ItemGroup>
<SdkLayoutInput Include="$(OutputDirectory)/sdk/**/*" />
<SdkSymbolsLayoutInput Include="$(SymbolsDirectory)/sdk/**/*" />
<CombinedHostHostFxrFrameworkSdkInput Include="$(OutputDirectory)/**/*" />
<SdkLanguagePackInput Include="$(OutputDirectory)/sdk/**/$(SatelliteAssemblies)" />
<AspNetRuntimeFilesInput Include="$(AspNetCoreSharedFxPublishDirectory)/**/*" />
<MSBuildExtensionsInput Include="$(MSBuildExtensionsLayoutDirectory)/msbuildExtensions/**/*" />
<MSBuildExtensionsVerInput Include="$(MSBuildExtensionsLayoutDirectory)/msbuildExtensions-ver/**/*" />
<CombinedMSBuildExtensionsInput Include="@(MSBuildExtensionsInput)" />
<CombinedMSBuildExtensionsInput Include="@(MSBuildExtensionsVerInput)" />
</ItemGroup>
<MakeRelative
Path1="$(OutputDirectory)/"
Path2="%(SdkLayoutInput.Identity)" >
<Output TaskParameter="RelativePath" ItemName="SdkRelativeOutputFiles" />
</MakeRelative>
<MakeRelative
Condition="'$(SeparateSymbolsArchive)' != 'false'"
Path1="$(SymbolsDirectory)/"
Path2="%(SdkSymbolsLayoutInput.Identity)" >
<Output TaskParameter="RelativePath" ItemName="SdkSymbolsRelativeOutputFiles" />
</MakeRelative>
<MakeRelative
Path1="$(OutputDirectory)/"
Path2="%(CombinedHostHostFxrFrameworkSdkInput.Identity)" >
<Output TaskParameter="RelativePath" ItemName="CombinedHostHostFxrFrameworkSdkRelativeOutputFiles" />
</MakeRelative>
<MakeRelative
Path1="$(OutputDirectory)/"
Path2="%(SdkLanguagePackInput.Identity)" >
<Output TaskParameter="RelativePath" ItemName="SdkLanguagePackRelativeOutputFiles" />
</MakeRelative>
<MakeRelative
Path1="$(MSBuildExtensionsLayoutDirectory)/msbuildExtensions/"
Path2="%(MSBuildExtensionsInput.Identity)" >
<Output TaskParameter="RelativePath" ItemName="MSBuildExtensionsRelativeOutputFiles" />
</MakeRelative>
<MakeRelative
Path1="$(MSBuildExtensionsLayoutDirectory)/msbuildExtensions-ver/"
Path2="%(MSBuildExtensionsVerInput.Identity)" >
<Output TaskParameter="RelativePath" ItemName="MSBuildExtensionsVerRelativeOutputFiles" />
</MakeRelative>
<ItemGroup>
<CombinedMSBuildExtensionsRelativeOutputFiles Include="@(MSBuildExtensionsRelativeOutputFiles)" />
<CombinedMSBuildExtensionsRelativeOutputFiles Include="@(MSBuildExtensionsVerRelativeOutputFiles -> '14.0/%(Identity)')" />
</ItemGroup>
<!-- Set up Items Defining Layouts for easy change -->
<ItemGroup>
<LayoutDefinition Include="Sdk">
<InputFiles>@(SdkLayoutInput)</InputFiles>
<OutputFiles>@(SdkRelativeOutputFiles -> '$(SdkLayoutOutputDirectory)/%(Identity)')</OutputFiles>
<NameWithVersion>$(ArtifactNameWithVersionSdk)</NameWithVersion>
<Name>$(ArtifactNameSdk)</Name>
</LayoutDefinition>
<LayoutDefinition Include="SdkSymbols" Condition="'$(SeparateSymbolsArchive)' != 'false'">
<InputFiles>@(SdkSymbolsLayoutInput)</InputFiles>
<OutputFiles>@(SdkSymbolsRelativeOutputFiles -> '$(SdkSymbolsLayoutOutputDirectory)/%(Identity)')</OutputFiles>
<NameWithVersion>$(ArtifactNameWithVersionSdkSymbols)</NameWithVersion>
<Name>$(ArtifactNameSdkSymbols)</Name>
</LayoutDefinition>
<LayoutDefinition Include="CombinedHostHostFxrFrameworkSdk">
<InputFiles>@(CombinedHostHostFxrFrameworkSdkInput)</InputFiles>
<OutputFiles>@(CombinedHostHostFxrFrameworkSdkRelativeOutputFiles -> '$(CombinedHostHostFxrFrameworkSdkOutputDirectory)/%(Identity)')</OutputFiles>
<NameWithVersion>$(ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)</NameWithVersion>
<Name>$(ArtifactNameCombinedHostHostFxrFrameworkSdk)</Name>
<ExcludePatterns Condition=" '$(OSName)' == 'win' ">$(WindowsSatelliteAssembliesRegEx)</ExcludePatterns>
<ExcludePatterns Condition=" '$(OSName)' != 'win' ">$(SatelliteAssemblies)</ExcludePatterns>
</LayoutDefinition>
<LayoutDefinition Include="SdkLanguagePack">
<InputFiles>@(SdkLanguagePackInput)</InputFiles>
<OutputFiles>@(SdkLanguagePackRelativeOutputFiles -> '$(SdkLanguagePackOutputDirectory)/%(Identity)')</OutputFiles>
<NameWithVersion>$(ArtifactNameWithVersionSdkLanguagePack)</NameWithVersion>
<Name>$(ArtifactNameSdkLanguagePack)</Name>
</LayoutDefinition>
</ItemGroup>
<ItemGroup Condition=" '$(OS)' == 'Windows_NT' And '$(Architecture)' == 'x86' ">
<LayoutDefinition Include="MSBuildExtensions">
<InputFiles>@(CombinedMSBuildExtensionsInput)</InputFiles>
<OutputFiles>@(CombinedMSBuildExtensionsRelativeOutputFiles -> '$(MSBuildExtensionsOutputDirectory)/%(Identity)')</OutputFiles>
</LayoutDefinition>
</ItemGroup>
</Target>
<Target Name="Layout"
DependsOnTargets="Init;SetupLayoutInputsOutputs"
Inputs="@(LayoutDefinition -> '%(InputFiles)')"
Outputs="@(LayoutDefinition -> '%(OutputFiles)')" >
<!-- Copy Files to layout directories based on defintiions -->
<Copy SourceFiles="%(LayoutDefinition.InputFiles)"
DestinationFiles="%(LayoutDefinition.OutputFiles)"
SkipUnchangedFiles="true" />
</Target>
</Project>