2013-11-27 1 views
0

우리는 프로젝트의 일부 리소스를 컴파일하기 위해 사용자 지정 컴파일러를 사용하고 있습니다. 이러한 리소스는 텍스트 기반이며 개의 확장자를가집니다. 이 ink 파일에 대해 사용자 지정 빌드 규칙을 사용하고 있습니다. (당신은 그들이 무엇에 관심이 있다면 각주 참조!)Xcode : 한 파일과 다른 파일 간의 종속성을 만듭니다.

우리의 잉크 컴파일러는 다른 ink 파일에 대한 include 문을 가질 수있는 루트 ink 파일을합니다. 따라서 Xcode 프로젝트에서는 루트 ink 파일 만 포함하므로 자식 ink 파일을 독립적으로 컴파일하지 않습니다.

그러나 이제는 자식 ink 파일 중 하나를 변경하면 Xcode에서 부모를 다시 컴파일하지 못하는 문제가 발생합니다.

우리가 할 수있는 일종의 사용자 빌드 스크립트가 있습니까? 자식 중 하나라도 수정되면 자동으로 루트 파일을 만질 수 있습니까? 아니면 우리가 설정할 수있는 어떤 종류의 의존성? (현재 빌드마다 루트 파일을 건드리지 만 프로젝트가 커질수록이 속도는 너무 느려집니다)

이렇게하기 위해 잉크 컴파일러의 작동 방식을 변경하지 않으려 고합니다!

p.s. 이러한 잉크 파일이 무엇인지 관심이 있다면 : 스토리 파일입니다. iOS 용 텍스트 기반 서사 게임을 개발합니다.

답변

0

Xcode에서 프로젝트를 선택하고 "빌드 단계"로 이동하면 응용 프로그램 빌드 프로세스에 쉘 스크립트를 추가 할 수 있습니다. 아마도 이것은 잉크 파일을 다시 컴파일해야하는지 확인하기에 좋은 시작일 수 있습니다. 여기

더 많은 정보를 정기적으로는 : Running a Script While Building a Product

0

나는 "스크립트 실행"이 ink 파일을 개최 디렉토리에 make라는 위상을 구축 생성 한 후 사용자 정의 makefile을 만들고, 결국.

내가 메이크에 대해 많이 알고 있지만, 여기에 내가 온라인 자습서를 기반으로 함께 자갈길 무엇을하지 않습니다 : 기본적으로

ALL_CHILD_INK = subdir/*.ink 
FINAL_FILENAME = root_filename 

$(FINAL_FILENAME).json: $(FINAL_FILENAME).ink $(ALL_CHILD_INK) 
    ink_compiler $< [email protected] 

은, 모든 하위 파일의 주요 루트에 대한 종속성이 있음을 보장하는 간단한 메이크 파일.

관련 문제