Skip to content

Commit

Permalink
Support for short stack builds.
Browse files Browse the repository at this point in the history
Tested with android-x64 and android-amd64 on Linux x64, and iossimulator-x64
on macOS ARM64.

Depends on dotnet/runtime#97725
  • Loading branch information
directhex committed Jan 30, 2024
1 parent 4f0bdf1 commit d78dbac
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 3 deletions.
14 changes: 13 additions & 1 deletion src/SourceBuild/content/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,18 @@
<DotNetBuildOrchestrator>true</DotNetBuildOrchestrator>
</PropertyGroup>

<PropertyGroup Label="ShortStacks">
<_OverrideTargetOS>$(OverrideTargetRid.Substring(0, $(OverrideTargetRid.LastIndexOf('-'))))</_OverrideTargetOS>
<ShortStack Condition="'$(_OverrideTargetOS)' == 'wasi'">true</ShortStack>
<ShortStack Condition="'$(_OverrideTargetOS)' == 'browser'">true</ShortStack>
<ShortStack Condition="'$(_OverrideTargetOS)' == 'ios'">true</ShortStack>
<ShortStack Condition="'$(_OverrideTargetOS)' == 'iossimulator'">true</ShortStack>
<ShortStack Condition="'$(_OverrideTargetOS)' == 'tvos'">true</ShortStack>
<ShortStack Condition="'$(_OverrideTargetOS)' == 'tvossimulator'">true</ShortStack>
<ShortStack Condition="'$(_OverrideTargetOS)' == 'maccatalyst'">true</ShortStack>
<ShortStack Condition="'$(_OverrideTargetOS)' == 'android'">true</ShortStack>
</PropertyGroup>

<PropertyGroup Label="CalculateTargetOS">
<BuildOS>linux</BuildOS>
<BuildOS Condition="$([MSBuild]::IsOSPlatform('OSX'))">osx</BuildOS>
Expand Down Expand Up @@ -33,7 +45,7 @@
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(BuildArchitecture)' == 's390x'">s390x</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(BuildArchitecture)' == 'ppc64le'">ppc64le</TargetArchitecture>

<TargetArchitecture Condition="'$(OverrideTargetRid)' != ''">$(OverrideTargetRid.Substring($(OverrideTargetRid.LastIndexOf('-'))).TrimStart('-'))</TargetArchitecture>
<TargetArchitecture Condition="'$(OverrideTargetRid)' != '' and '$(ShortStack)' != 'true'">$(OverrideTargetRid.Substring($(OverrideTargetRid.LastIndexOf('-'))).TrimStart('-'))</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == ''">x64</TargetArchitecture>

<Platform Condition="'$(Platform)' == '' and '$(InferPlatformFromTargetArchitecture)' == 'true'">$(TargetArchitecture)</Platform>
Expand Down
4 changes: 4 additions & 0 deletions src/SourceBuild/content/repo-projects/dotnet.proj
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@
<RepositoryReference Include="symreader" />
<RepositoryReference Include="source-build-externals" Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
<RepositoryReference Include="runtime" />
</ItemGroup>

<!-- Stop build at this point for runtime-only platforms like iOS -->
<ItemGroup Condition="'$(ShortStack)' != 'true'">
<RepositoryReference Include="roslyn" />
<RepositoryReference Include="windowsdesktop" Condition="'$(TargetOS)' == 'windows'" />
<RepositoryReference Include="xdt" />
Expand Down
4 changes: 2 additions & 2 deletions src/SourceBuild/content/repo-projects/runtime.proj
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
<BuildArgs Condition="'$(OverrideTargetArch)' != ''">$(BuildArgs) $(FlagParameterPrefix)arch $(OverrideTargetArch)</BuildArgs>
<BuildArgs Condition="'$(OverrideTargetOS)' != ''">$(BuildArgs) $(FlagParameterPrefix)os $(OverrideTargetOS)</BuildArgs>
<BuildArgs>$(BuildArgs) /p:TargetRid=$(OverrideTargetRid)</BuildArgs>
<BuildArgs>$(BuildArgs) /p:RuntimeOS=$(RuntimeOS)</BuildArgs>
<BuildArgs>$(BuildArgs) /p:BaseOS=$(BaseOS)</BuildArgs>
<BuildArgs Condition="'$(ShortStack)' != 'true'">$(BuildArgs) /p:RuntimeOS=$(RuntimeOS)</BuildArgs>
<BuildArgs Condition="'$(ShortStack)' != 'true'">$(BuildArgs) /p:BaseOS=$(BaseOS)</BuildArgs>
</PropertyGroup>

<PropertyGroup Condition="'$(DotNetBuildSourceOnly)' == 'true'">
Expand Down

0 comments on commit d78dbac

Please sign in to comment.