مشاريع بناء خارجية

يمكن استخدام ملفات الإنشاء الخارجية مع Xcode، باستخدام نموذج مشروع نظام الإنشاء الخارجي. يمكن تعديل هذه الملفات للاستفادة من إعدادات مشروع Xcode، مثل نوع الإصدار والموقع، مع أنها تظل مفيدة عند استخدامها بشكل منفصل.

إنشاء مشروع خارجي

لإنشاء مشروع إصدار خارجي جديد، في Xcode، حدد مربع الحوار "جديد->مشروع جديد..."، ثم حدد نموذج "نظام الإصدار الخارجي". ضع المشروع في نفس الدليل مثل Makefile المستهدف.

إضافة إعدادات Xcode Build

عند استدعاء إصدار خارجي، يحدد Xcode متغيرات البيئة لإعدادات الإصدار. تحدد هذه الإعدادات مكان إنشاء ملفات الإصدار، بالإضافة إلى علامات المحول البرمجي والرابط. ونستخدم التوجيهات الشرطية في Make لتعديل الإصدار عند استدعائه بواسطة Xcode.

هذا مثال، حيث يمكن أن تكون المتغيرات التي يتم تعيينها (مثل BUILD_DIR) أي اسم تريده، بينما تستخدم الشروط الشرطية متغيرات البيئة 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)