2011-11-20 4 views
2

많은 대상이있는 프로젝트가 있습니다. 새 대상을 만들 때마다 컴파일 소스에 특정 클래스를 추가하고 해당 클래스에 대한 컴파일러 플래그를 설정하고 있습니다. 어떻게이 설정을 자동으로 적용 할 수 있습니까?빌드 단계의 컴파일 소스 구성

+0

프로젝트에서 몇 개의 대상을 작성하고 있습니까? – Till

+0

나는 50 개 이상의 타겟을 만들고 있습니다 –

+0

그래, 엄청난 양의 타겟이 필요합니까? 대상은 일반적으로 응용 프로그램의 변형에 사용됩니다. FreeVersion 대 ​​PurchaseVersion. 내게는 마치 목표의 개념을 잘못된 방식으로 사용하는 것처럼 들린다. – Till

답변

0

프로젝트 파일을 직접 수정해야 할 필요가 있다고 생각합니다. 즉, 변경 사항을 적용 할 스크립트를 작성하십시오.

다음은 모든 타겟에 대해 아크 플래그를 파일에 추가하는 간단한 예입니다.

#!/bin/sh 

set -e 

USAGE="$0 <filename> ..." 

PROJECTFILE="project.pbxproj" 
FILES="$*" 
COMPILER_FLAGS="\"-fobjc-arc\""; 

if [ "${FILES}" = "" ] ; then 
    echo ${USAGE}; 
    exit 1 ; 
fi 

if [ ! -f "${PROJECTFILE}" ] ; then 
    echo "Cannot find ${PROJECTFILE} - Please run from within the .xcodeproj directory"; 
    exit 1 ; 
fi 


cp ${PROJECTFILE} ${PROJECTFILE}.bak 
for f in ${FILES}; do 
    echo "Adding flags for $f" ; 
    sed -ie "s/\(${f}.*{ *isa *= *PBXBuildFile.*\)};$/\\1 settings = {COMPILER_FLAGS = ${COMPILER_FLAGS}; }; };/g" "${PROJECTFILE}" 
done