mirror of
https://github.com/darlinghq/xcbuild.git
synced 2025-02-22 09:22:34 +00:00

Current implementation encodes auxiliary files into base64 string, and pass it through system's base64 decoding to recreate files on ninja build process. This has two main disadvantages, 1. When auxiliary files are large, invocation call will expand very large and shell will reject executing them. 2. base64 may not be compatible. (e.g. xcbuild's base64 encoded data is not properly decoded by linux's base64 utility) Instead, after build.ninja file has been written, also write auxiliary file chunks in temporary directory with its hash included in its filename. Ninja caches hashes of its execution command to determine changes to the rule, so the actual rebuild logic is unchanged.