dotnet-installer/build.proj
2017-02-08 14:02:29 -08:00

102 lines
4.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="BuildTheWholeCli" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
<Import Project="build/Microsoft.DotNet.Cli.Monikers.props" />
<ImportGroup Condition=" '$(GeneratingPropsFile)' == 'true' ">
<Import Condition=" Exists('$(GitCommitInfoProps)') "
Project="$(GitCommitInfoProps)" />
<Import Condition=" Exists('$(HostInfoProps)') "
Project="$(HostInfoProps)" />
</ImportGroup>
<ImportGroup Condition=" '$(GeneratingPropsFile)' != 'true' ">
<Import Project="$(GitCommitInfoProps)" />
<Import Project="$(HostInfoProps)" />
</ImportGroup>
<PropertyGroup>
<!--
$(OS) is set to Unix/Windows_NT. This comes from an environment variable on Windows and MSBuild on Unix.
-->
<PlatformScriptHost Condition=" '$(OS)' == 'Windows_NT' ">powershell -NoProfile -NoLogo -Command </PlatformScriptHost>
<PlatformScriptHost Condition=" '$(OS)' != 'Windows_NT' "></PlatformScriptHost>
<PlatformScriptExtension Condition=" '$(OS)' == 'Windows_NT' ">.ps1</PlatformScriptExtension>
<PlatformScriptExtension Condition=" '$(OS)' != 'Windows_NT' ">.sh</PlatformScriptExtension>
<CLITargets Condition=" '$(CLITargets)' == '' ">Prepare;Compile;Test;Package;Publish</CLITargets>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<CoreSetupChannel>master</CoreSetupChannel>
<SharedFrameworkName>Microsoft.NETCore.App</SharedFrameworkName>
<SharedFrameworkVersion>$(CLI_SharedFrameworkVersion)</SharedFrameworkVersion>
<SharedHostVersion>$(CLI_SharedFrameworkVersion)</SharedHostVersion>
<HostFxrVersion>$(CLI_SharedFrameworkVersion)</HostFxrVersion>
<ExeExtension>.exe</ExeExtension>
<ExeExtension Condition=" '$(OS)' != 'Windows_NT' "></ExeExtension>
<Stage0Directory>$(RepoRoot)/.dotnet_stage0/$(Architecture)</Stage0Directory>
<Stage0PjDirectory>$(RepoRoot)/.dotnet_stage0PJ/$(Architecture)</Stage0PjDirectory>
<DotnetStage0>$(Stage0Directory)/dotnet$(ExeExtension)</DotnetStage0>
<DotnetCliBuildDirectory>$(RepoRoot)/build_projects/dotnet-cli-build</DotnetCliBuildDirectory>
<PackagesDir>$(RepoRoot)/.nuget</PackagesDir>
</PropertyGroup>
<ItemGroup>
<DotnetCliBuildFrameworkInputs Include="build_projects/**/*.cs" Exclude="build_projects/**/obj/**/*.cs" />
<DotnetCliBuildFrameworkInputs Include="build_projects/**/*.csproj" />
</ItemGroup>
<!-- Workaround to "Native image cannot be loaded multiple times" issue
A target in the top level file needs to run and invoke a task
https://github.com/Microsoft/msbuild/issues/750 -->
<Target Name="MSBuildWorkaroundTarget">
<Message Text="Dont remove this target" />
</Target>
<Target Name="BuildDotnetCliBuildFramework"
Inputs="@(DotnetCliBuildFrameworkInputs)"
Outputs="$(CLIBuildDll)"
DependsOnTargets="MSBuildWorkaroundTarget;
RestoreDotnetCliBuildFramework">
<Exec Command="$(DotnetStage0) publish -o $(DotnetCliBuildDirectory)/bin --framework netcoreapp1.0"
WorkingDirectory="$(DotnetCliBuildDirectory)"/>
</Target>
<ItemGroup>
<RestoreDotnetCliBuildFrameworkOutputs Include="$(DotnetCliBuildDirectory)/obj/project.assets.json" />
<RestoreDotnetCliBuildFrameworkOutputs Include="$(DotnetCliBuildDirectory)/obj/dotnet-cli-build.csproj.nuget.g.props" />
<RestoreDotnetCliBuildFrameworkOutputs Include="$(DotnetCliBuildDirectory)/obj/dotnet-cli-build.csproj.nuget.g.targets" />
</ItemGroup>
<Target Name="RestoreDotnetCliBuildFramework"
Inputs="$(DotnetCliBuildDirectory)/dotnet-cli-build.csproj"
Outputs="@(RestoreDotnetCliBuildFrameworkOutputs)">
<PropertyGroup>
<ExtraRestoreArgs Condition="'$(OS)' != 'Windows_NT'">$(ExtraRestoreArgs) --disable-parallel</ExtraRestoreArgs>
</PropertyGroup>
<Exec Command="$(DotnetStage0) restore $(ExtraRestoreArgs)"
WorkingDirectory="$(DotnetCliBuildDirectory)"/>
</Target>
<Target Name="WriteDynamicPropsToStaticPropsFiles"
DependsOnTargets="BuildDotnetCliBuildFramework;
WriteGitCommitInfoProps;
WriteHostInfoProps"/>
<Target DependsOnTargets="$(CLITargets)" Name="BuildTheWholeCli"></Target>
<Import Project="build/Microsoft.DotNet.Cli.GitCommitInfo.targets" />
<Import Project="build/Microsoft.DotNet.Cli.HostInfo.targets" />
<Import Project="build/Microsoft.DotNet.Cli.Prepare.targets" />
<Import Project="build/Microsoft.DotNet.Cli.Compile.targets" />
<Import Project="build/Microsoft.DotNet.Cli.Package.targets" />
<Import Project="build/Microsoft.DotNet.Cli.Test.targets" />
<Import Project="build/Microsoft.DotNet.Cli.Publish.targets" />
<Import Project="build/Microsoft.DotNet.Cli.Run.targets" />
</Project>