外部ビルド プロジェクト

Xcode では、外部ビルドシステム プロジェクト テンプレートを使用して、外部の make ファイルを使用できます。これらのファイルは、ビルドタイプや場所などの Xcode プロジェクト設定を活用するために変更できます。ただし、個別に使用した場合も引き続き有効です。

外部プロジェクトを作成する

新しい外部ビルド プロジェクトを作成するには、Xcode で [New] -> [New Project...] ダイアログを選択し、外部ビルドシステム テンプレートを選択します。プロジェクトをターゲット Makefile と同じディレクトリに配置します。

Xcode ビルド設定を追加する

Xcode は、外部ビルドを呼び出すときにビルド設定の環境変数を定義します。これらの設定により、ビルドファイルが作成される場所、コンパイラ フラグ、リンカーフラグが定義されます。Xcode からビルドが呼び出されたときに、Make の条件付きディレクティブを使用してビルドを変更します。

次の例では、設定する変数(BUILD_DIR など)には任意の名前を付けることができますが、条件では環境変数 Xcode セットを使用します。

ifdef CONFIGURATION_BUILD_DIR
# In Xcode build
BUILD_DIR = $(CONFIGURATION_BUILD_DIR)/build
ARCHFLAGS = $(ARCHS:%=-arch %)
SDKFLAGS = -isysroot $(SDKROOT)
else
# In command-line build
BUILD_DIR = $(HOME)/build
ARCHFLAGS =
SDKFLAGS =
endif

ifdef OPTIMIZATION_LEVEL
DEBUGFLAGS := $(DEBUGFLAGS) -O$(OPTIMIZATION_LEVEL)
endif

ifdef OTHER_CFLAGS
DEBUGFLAGS := $(DEBUGFLAGS) $(OTHER_CFLAGS)
endif

# Workaround for iPhoneSimulator SDK's gcc bug
ifdef EFFECTIVE_PLATFORM_NAME
ifneq ($(EFFECTIVE_PLATFORM_NAME), -iphonesimulator)
WARNINGS := $(WARNINGS) -Wreturn-type
endif
endif

J2OBJCC_FLAGS = $(WARNINGS) $(SDKFLAGS) $(ARCHFLAGS) $(DEBUGFLAGS)
J2OBJCC = $(J2OBJC_DIST)/j2objcc $(J2OBJCC_FLAGS)