dotnet / dotnet/arcade

Make $LogDir build-architecture specific

Open
#2,561 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
729
Forks
397
Avg merge
3d 15m
Merged PRs (30d)
149

Description

In WPF's builds, Build.binlog goes under `$(ArtifactsDir)Log\$(Configuration)` as if it were part of an `AnyCPU` build.

[`tools.ps1`](https://github.com/dotnet/arcade/blob/5e7ce5b394f3477bb0a485a4b761b7742e95be37/eng/common/tools.ps1#L512):

```PowerShell
[$LogDir = Join-Path (Join-Path $ArtifactsDir "log") $configuration]
```

Our builds are entirely arch-specific, and always set `/p:Platform=x86` or `/p:Platform=x64`. We would like to get build logs to be redirected to appropriate folders that encode `$(Plaform)` when one is set (and `!='AnCPU'`).

The current state of affairs prevents us from even attempting parallel dev-builds of more than one architecture. For e.g., we can't try to build `x86` and `x64` simultaneously on a dev box because the msbuild (bin)logs share the same file and therefore clash.

In an ideal world, we'd be able to pass `-platform` to `build.ps1` (just like we can set `-configuration` today) and have it come out the other side with `/p:Platfrom=` along with all the right fixups for various folders under `$(ArtifactsDir)`.

/cc @tmat, @chcosta
/cc @dotnet/wpf-developers

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.