Projets de compilation externes

Vous pouvez utiliser des fichiers de création externes avec Xcode, à l'aide d'un modèle de projet de système de compilation externe. Ces fichiers peuvent être modifiés pour exploiter les paramètres du projet Xcode, tels que le type de compilation et l'emplacement, tout en restant utiles lorsqu'ils sont utilisés séparément.

Créer un projet externe

Pour créer un projet de compilation externe, dans Xcode, sélectionnez la boîte de dialogue New > New Project... (Nouveau > Nouveau projet), puis sélectionnez le modèle "External Build System" (Système de compilation externe). Placez le projet dans le même répertoire que le fichier Makefile cible.

Ajouter des paramètres de compilation Xcode

Lorsque vous appelez une compilation externe, Xcode définit des variables d'environnement pour ses paramètres de compilation. Ces paramètres définissent l'emplacement de création des fichiers de compilation, ainsi que les indicateurs de compilation et de linker. Nous utilisons les instructions conditionnelles de Make pour modifier la compilation lorsqu'elle est appelée par Xcode.

Voici un exemple dans lequel les variables définies (telles que BUILD_DIR) peuvent être le nom de votre choix, tandis que les instructions conditionnelles utilisent les variables d'environnement Xcode définies:

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)