Внешние проекты сборки

Внешние файлы make можно использовать с Xcode, используя шаблон проекта внешней системы сборки. Эти файлы можно изменить, чтобы использовать настройки проекта Xcode, такие как тип сборки и местоположение, но они по-прежнему полезны при использовании отдельно.

Создать внешний проект

Чтобы создать новый проект внешней сборки, в Xcode выберите диалоговое окно «Создать->Новый проект...», затем выберите шаблон «Внешняя система сборки». Поместите проект в тот же каталог, что и целевой Makefile.

Добавить настройки сборки Xcode

При вызове внешней сборки Xcode определяет переменные среды для своих настроек сборки . Эти настройки определяют, где создаются файлы сборки, а также флаги компилятора и компоновщика. Мы используем условные директивы Make для изменения сборки, когда она вызывается Xcode.

Вот пример, где устанавливаемые переменные (например, BUILD_DIR) могут иметь любое имя, которое вы хотите, а условные выражения используют переменные среды, установленные 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)