4 ポイント 投稿者 godrm 2021-03-25 | まだコメントはありません。 | WhatsAppで共有

以下のように要約できます。

  • Xcode 10以降、llbuildベースでファイル単位のインクリメンタルビルドが動作する。

  • Xcodeのビルドログ上では違いがないように見えるが、依存関係を分析し、インターフェースのハッシュ値を比較し、オブジェクトの .o ファイルを生成する。もちろん実装部が変われば再生成する。

  • 依存関係を持つ別のソースファイルに対するインターフェースのハッシュ値が同一であれば、オブジェクトファイルは生成しない。

  • Swiftファイルの依存関係情報は .swiftdeps ファイルで確認できる。

  • ファイル単位で swiftmodule の一部分である partial を作成しておき、リンク時にモジュール全体を結合する。

  • JavaのGradleビルドのように、ISPで分けたからといってインターフェースごとに分離され、変更のあるファイルだけがビルドされるわけではない。

  • Swiftソースファイルをコンパイルするときは、実装部が変わったファイルは再コンパイルするが、宣言部を中心に依存関係を把握するため、宣言が変わったファイルに依存する場合にのみ再ビルドする。

まだコメントはありません。

まだコメントはありません。