โครงการภายนอก

สร้างไฟล์ภายนอกสามารถใช้กับ 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)