Progetti di build esterni

I file di creazione esterni possono essere utilizzati con Xcode, mediante un modello di progetto per un sistema di build esterno. Questi file possono essere modificati per sfruttare le impostazioni del progetto Xcode, come il tipo di build e la località, ma possono essere comunque utili se utilizzati separatamente.

Crea un progetto esterno

Per creare un nuovo progetto di build esterno, in Xcode seleziona la finestra di dialogo Nuovo->Nuovo progetto..., poi seleziona il modello di sistema di build esterno. Inserisci il progetto nella stessa directory del Makefile di destinazione.

Aggiungi impostazioni build Xcode

Quando richiami una build esterna, Xcode definisce le variabili di ambiente per le impostazioni di build. Queste impostazioni definiscono dove vengono creati i file di build, nonché i flag del compilatore e del linker. Utilizziamo le istruzioni condizionali di Make per modificare la build quando viene richiamata da Xcode.

Di seguito è riportato un esempio in cui le variabili impostate (ad esempio COSTRUIRE_DIR) possono essere qualsiasi nome desiderato, mentre i condizionali utilizzano le variabili di ambiente Xcode set:

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)