stride3d / stride3d/stride

Build fails when BaseIntermediateOutputPath is absolute path (Stride.Core.Assets.CompilerApp.targets)

Open
#952 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

area-Build bug priority-high work-estimate-M
Dominant language
C#
Stars
7.8k
Forks
1.2k
Avg merge
2d 17h
Merged PRs (30d)
49

Description

Release Type: Official Release

Version: 4.0.0.1-beta04-1347

Platform(s): Windows

Describe the bug
Build fails when $(IntermediateOutputPath) is absolute path

To Reproduce
Steps to reproduce the behavior:

  1. Create Directory.Build.props file in parent directory with this:
<Project>
  <PropertyGroup>
    <BaseIntermediateOutputPath>z:\mydir\obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
  </PropertyGroup>
</Project>

Expected behavior
Build from VS2019 succeeeds

Log and callstacks

4>C:\Users\ja\.nuget\packages\stride.core.assets.compilerapp\4.0.0.1-beta04-1347\buildTransitive\Stride.Core.Assets.CompilerApp.targets(81,5): error MSB3491: Could not write lines to file "C:\mydir\Stride\myapp.Stride.Windows\z:\mydir\obj\myapp.Stride.Windows\Debug\win-x64\stride\assetcompiler-uptodatecheck.inputs.expanded". The given path's format is not supported.

Idea for fix:

In Stride.Core.Assets.CompilerApp.targets, change this:

<StrideCompileAssetUpToDateCheckFileBase>$(ProjectDir)$(IntermediateOutputPath)stride\assetcompiler-uptodatecheck</StrideCompileAssetUpToDateCheckFileBase>

to this:

<StrideCompileAssetUpToDateCheckFileBase>$(IntermediateOutputPath)stride\assetcompiler-uptodatecheck</StrideCompileAssetUpToDateCheckFileBase>

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Open Stride.Core.Assets.CompilerApp.targets around line 81 and reproduce the failure using the Directory.Build.props example with an absolute BaseIntermediateOutputPath. Check how the asset compiler up-to-date check path is assembled. Done means the project builds successfully from VS2019 without the unsupported-path error.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
build-system
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.