自作のmodulemapを組み込んだFrameworkの作り方

  • 2
    Like
  • 0
    Comment

 皆さんあっさり作っておられるようですが、自分は悩んだので覚え書きと同様にお悩みの方へ。

ファイルを置くだけじゃ駄目!!

 modulemapの文法自体は、Clang ModuleについてClang Documentationに詳しく書いてあるので割愛します。

module.modulemapを作ったら

まずはファイルをプロジェクト内に配置する

 module.modulemapを作ったら、それをプロジェクト内の任意の位置に配置します。
例えばですが、プロジェクトファイルと同じディレクトリであれば$(SRCROOT)ですね。
とりあえずこの、module.modulemapファイルを置いた場所を$(SRCROOT)等からの相対位置で憶えておいて下さい。

ターゲットを確認する

 Xcode一番左のペインのプロジェクトアイコンをクリックし、次のペインのターゲットからターゲットのフレームワークをクリックします。

サーチパスに、module.modulemapを置いたパスを追加する

 Build Settingsを選び、Search Paths のほぼ最下部のUser Header Search Pathsにmodule.modulemapを配置したパス(今回の例では$(SRCROOT))を追記する。

パッケージングにmodulemapがあることを教える

 最後にPackagingセクションを探して
* Defines ModuleがYesに(基本なっているはずです)なっていることを確認する
* その一行下のModule Map Fileにmodlue.modluemapと自作のmodulemapファイル名を記述する。

あとはビルドしてみると

 作成されたフレームワークのModuleフォルダー内の、module.modulemapが自作のmapに鳴っているはずです。お疲れ様でした。

いいね、ストックが多かったり、コメントがあればスクリーンショットを追加します。