Zewnętrzne projekty kompilacji

Zewnętrzne twórz pliki mogą być używane z Xcode przy użyciu Szablon projektu systemowego kompilacji. Te pliki można zmodyfikować, aby w pełni wykorzystać ustawień projektu Xcode, takich jak typ kompilacji i lokalizacja, przydatne osobno.

Tworzenie projektu zewnętrznego

Aby utworzyć nowy zewnętrzny projekt kompilacji, w Xcode wybierz Nowy -> Nowy projekt... a następnie wybierz szablon External Build System. Umieszczanie projektu w tym samym katalogu co docelowy plik Makefile.

Dodaj ustawienia kompilacji Xcode

Podczas wywoływania kompilacji zewnętrznej Xcode definiuje zmienne środowiskowe dla jej ustawienia kompilacji. Te ustawienia określają miejsce tworzenia plików kompilacji oraz kompilator i flagi tagu łączącego. Stosujemy warunkowe dyrektywy z programu Make aby zmodyfikować kompilację po jej wywołaniu przez Xcode.

Oto przykład, w którym ustawiane zmienne (np. BUILD_DIR) można dowolna nazwa, a warunki warunkowe korzystają ze zmiennych środowiskowych Zestaw 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)