Bug 212420 breaks XCBuild. The problem is that the .xcfilelist for the generated unified sources is removed. This file is used not only to determine dependencies (something that was addressed by the addition of the UnifiedSourceBundlesTimeStamp.txt file), but also to notify XCBuild how and when generated files are created. Without this file, XCBuild doesn't know where the UnifiedSource*.* files are coming from and it fails when it tries to compile them.
<rdar://problem/63818686>
How does this work for all the other derived sources? We should be able to fix this by making it the same as the rest.
Keith, I’m happy to fix this so that the file list contains the list of unified source files. If you can help me figure out the strategy, I’ll do it.
I’m having trouble getting used to the overall strategy here. Inelegant always having to regenerate the file lists in a separate pass every time we build. Seems like a recipe for slow builds to process all the dependencies twice, once to build and once to check/rebuild xcfilelist files. But given the strategy, seems like somehow I am going to have to get --generate-xcfilelists and --output-xcfilelist-path passed in to the generate-unified-sources.sh script so it can build the list of files. Then either communicate this directly to the Python generator class, or just add these files all as dependencies in make so that it will show up in the output of "make -d". Too bad I’ve never programmed in Ruby or Python before!
It would be fine to revert r262310 until we figure out a way to deal with this.
Keith, do you have a preference for what we do next?
I guess you assigned this bug to me, so you want me to fix it, but do you have a preferred approach?
This is low priority for now, until we determine an approach.
Bug 212420 has been addressed with a different approach. The larger issue -- that of having a separate pass to ensure that the .xcfilelist files are up-to-date -- is covered in Radar 48250806. Therefore, nothing more to do here.