Posted by & filed under mac.


info.plistプリプロセッサ定義

久々のまともなエントリ.

今回は,Xcodeでひとつのプロジェクト上に複数のターゲットが存在し,すべてのターゲットに共通のコードが存在し,そのコードのインクルードをターゲットによって切り替えて使用したいときの設定方法.

今回はC++(C言語)の場合.

C言語ならば,こういった場合プリプロセッサを使うのが普通.今回も例外なく使う.

問題は,どうやってターゲットを区別するかだが,それにはターゲットの “info.plist プリプロセッサ定義” によって実現できる.

ここに追加された定義は,そのターゲットをビルドするときのみ #define される.

よって,ターゲットごとに別々の “info.plist プリプロセッサ定義” を設定しておき,あとは,

#ifdef HOGEHOGE
#include "hogehoge.h"
#endif
#ifdef FOOBAR
#include "foobar.h"
#endif
・・・

のようにインクルード元のコードに書けば良い.

複数のレベル設定がある課題をやるときに結構使えそう.