Zewnętrznego tworzenia plików można używać z Xcode z użyciem szablonu projektu External Build System. Pliki te można modyfikować, aby korzystać z ustawień projektu Xcode, takich jak typ kompilacji i lokalizacja, i jednocześnie używać ich oddzielnie.
Tworzenie projektu zewnętrznego
Aby utworzyć nowy zewnętrzny projekt kompilacji, w Xcode wybierz okno Nowy -> Nowy projekt, a następnie wybierz szablon Zewnętrzny system kompilacji. Umieść projekt w tym samym katalogu co docelowy plik Makefile.
Dodaj ustawienia kompilacji Xcode
Podczas wywoływania kompilacji zewnętrznej Xcode definiuje zmienne środowiskowe w ustawieniach kompilacji. Te ustawienia określają miejsce tworzenia plików kompilacji, a także flagi kompilatora i kreatora linków. Do modyfikowania kompilacji po jej wywołaniu przez Xcode używamy dyrektyw warunkowych Makeup.
Oto przykład, w którym ustawiane zmienne (takie jak BUILD_DIR) mogą mieć dowolną nazwę, a warunki warunkowe używają zestawu zmiennych środowiskowych 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)