Projets de compilation externes

Les fichiers make externes peuvent être utilisés avec Xcode, à l'aide d'un fichier Modèle de projet de système de compilation. Ces fichiers peuvent être modifiés pour profiter des paramètres du projet Xcode, tels que le type et l'emplacement de compilation, utiles lorsqu'elles sont utilisées séparément.

Créer un projet externe

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

Ajouter des paramètres de build Xcode

Lors de l'appel d'une compilation externe, Xcode définit des variables d'environnement pour ses paramètres de compilation. Ces paramètres définissent l'emplacement où les fichiers de compilation sont créés, ainsi que les outils de compilation les indicateurs d'association. Nous utilisons les directives conditionnelles de Make pour modifier la compilation lorsqu'elle est appelée par Xcode.

Dans l'exemple ci-dessous, les variables en cours de définition (telles que CREATE_DIR) peuvent être le nom de votre choix, tandis que les instructions conditionnelles utilisent les variables d'environnement Ensemble 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)