swiftlang / swift-llbuild

A low-level build system, used by Xcode and the Swift Package Manager
Apache License 2.0
1.09k stars 198 forks source link

[SR-9735] Ninja build to nonexistent subdirectories fails #783

Open swift-ci opened 5 years ago

swift-ci commented 5 years ago
Previous ID SR-9735
Radar None
Original Reporter ePirat (JIRA User)
Type Bug
Environment llbuild git (b8f6f852ec5f1cd968c4d662106e3d6ecdc146a7)
Additional Detail from JIRA | | | |------------------|-----------------| |Votes | 0 | |Component/s | llbuild | |Labels | Bug | |Assignee | None | |Priority | Medium | md5: 08bc34cc7672d45d30d1b2d3ca8325d3

Issue Description:

Trying to build a ninja manifest that declares an output file to a nonexistent subdirectory, the ninja implementation of llbuild fails to create the subdirectories, which results in build failure.

This does not match the upstream ninja behavior.

A minimal ninja file to reproduce this:

rule CAT
     command = cat ${in} > ${out}build

subdir/output: CAT input

This build file requires a file named `input` to exist in the directory where this is run.

swift-ci commented 5 years ago

Comment by Marc Byfield (JIRA)

Hello, I'm new and I want to look into this. Where can I look for guidance?