สร้างไฟล์ภายนอกสามารถใช้กับ Xcode ได้โดยใช้เทมเพลตโปรเจ็กต์ระบบของบิลด์ภายนอก ไฟล์เหล่านี้แก้ไขเพื่อใช้ประโยชน์จากการตั้งค่าโปรเจ็กต์ Xcode เช่น ประเภทและตำแหน่ง ในขณะที่ยังคงใช้ประโยชน์ได้เมื่อใช้แยกกัน
สร้างโปรเจ็กต์ภายนอก
หากต้องการสร้างโปรเจ็กต์บิลด์ภายนอกใหม่ ใน Xcode ให้เลือกกล่องโต้ตอบ ใหม่->โปรเจ็กต์ใหม่... แล้วเลือกเทมเพลตระบบบิลด์ภายนอก วางโครงการในไดเรกทอรีเดียวกับ Makefile เป้าหมาย
เพิ่มการตั้งค่าบิลด์ Xcode
เมื่อเรียกใช้บิลด์ภายนอก Xcode จะกำหนดตัวแปรสภาพแวดล้อมสำหรับการตั้งค่าบิลด์ การตั้งค่าเหล่านี้เป็นตัวกำหนดตำแหน่งที่สร้างไฟล์บิลด์ รวมถึงแฟล็กคอมไพเลอร์และ Linker เราใช้คำสั่งแบบมีเงื่อนไขของ "สร้าง" เพื่อแก้ไขบิลด์เมื่อ 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)