Dự án xây dựng bên ngoài

Bạn có thể sử dụng tệp tạo bên ngoài với Xcode bằng cách sử dụng mẫu dự án Hệ thống xây dựng bên ngoài. Bạn có thể sửa đổi các tệp này để tận dụng các chế độ cài đặt dự án Xcode, chẳng hạn như loại bản dựng và vị trí, trong khi vẫn hữu ích khi được dùng riêng biệt.

Tạo dự án bên ngoài

Để tạo một dự án bản dựng bên ngoài mới, trong Xcode, hãy chọn hộp thoại New->New Project... (Mới->Dự án mới...), sau đó chọn mẫu External Build System (Hệ thống bản dựng bên ngoài). Đặt dự án trong cùng thư mục với Makefile mục tiêu.

Thêm chế độ cài đặt bản dựng Xcode

Khi gọi một bản dựng bên ngoài, Xcode sẽ xác định các biến môi trường cho chế độ cài đặt bản dựng. Các chế độ cài đặt này xác định nơi tạo tệp bản dựng, cũng như cờ trình biên dịch và cờ trình liên kết. Chúng tôi sử dụng lệnh có điều kiện của Make để sửa đổi bản dựng khi bản dựng được Xcode gọi.

Dưới đây là ví dụ, trong đó các biến đang được đặt (chẳng hạn như BUILD_DIR) có thể là bất kỳ tên nào bạn muốn, trong khi các điều kiện sử dụng các biến môi trường Xcode được đặt:

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)