In swiftc the situation is a little better, because build system already knows all the files needed for compilation, and knows location of. Indeed, now that information is stored in *.d file per *.o file, but buildsystem doesn't know anything about intermediate products (especially in spm, where source files located by file globbing). But they need a way to understand that this target needs to be rerun, because of some file where changed, swift compiler updated, something else changed in the environment, etc. That other build system can do is to run specific target ( swift build for example) that will produce some output (binary, library, etc). *.swiftdeps file is that enables incremental compilation of a swift module and parsed by swift driver ( swiftc or swift build), and includes things like dependencies between files on even symbol level. *.swiftdeps files are much more complicated than simple *.d file that other build systems (like make or ninja) can understand.
0 Comments
Leave a Reply. |