פרויקטים חיצוניים של גרסת build

אפשר להשתמש בקובצי יצרן חיצוניים עם Xcode, באמצעות קובץ חיצוני יצירת תבנית של פרויקט מערכת. אפשר לשנות את הקבצים האלה כדי ליהנות מהיתרונות של הגדרות פרויקט Xcode, כמו סוג ה-build והמיקום, ועדיין שימושי כאשר משתמשים בו בנפרד.

יצירת פרויקט חיצוני

כדי ליצור פרויקט build חיצוני חדש, ב-Xcode בוחרים באפשרות New->New Project... ולאחר מכן בוחרים בתבנית External Build System. מוסיפים את הפרויקט אותה ספרייה כמו קובץ היעד של ה-Makefile.

הוספת הגדרות Build של Xcode

כשמפעילים build חיצוני, Xcode מגדיר משתני סביבה בשביל הגדרות build. ההגדרות האלה מגדירות את המיקום שבו נוצרים קובצי build, וכן את המהדר (compiler) דגלים מסוג linker. אנחנו משתמשים בהוראות המותנות של Maker כדי לשנות את ה-build כשהוא מופעל על ידי Xcode.

הנה דוגמה, שבה המשתנים שמוגדרים (כמו BUILD_DIR) יכולים להיות איזה שם רוצים, בעוד שהתנאים משתמשים במשתני הסביבה הוגדר קוד X:

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)