2011-11-20 6 views
2

내가 엑스 코드 4.2을 사용하여 코드 완성을 수행 할 VIM 편집기와 연타 완성 정력 스크립트를 사용하고자 해요에서 엑스 코드에서 플래그를 구축 할 수 있습니다. 내 X-Code 프로젝트의 설정을 반영하도록 clang-complete 구성을 수동으로 설정하면 정상적으로 작동합니다. 이 작업을보다 원활하게 수행하려면 다음을 수행하고 싶습니다.추출 명령 줄

some_src.m 내 Xcode 프로젝트에 유효한 소스 파일입니다
get_compile_options some_src.m 

. get_compile_options의 출력은 Xcode가이 파일을 객체 파일에 작성하는 데 사용할 모든 빌드 플래그 여야합니다. 이 작업을 수행하는 방법에 대한 아이디어.

답변

2

는 AFAIK이 작업을 수행 할 공정한 방법이 없다,하지만 당신은 '= < 사용자 정의 컴파일러 > CC' '< 사용자 정의를, Xcode 프로젝트에 특별한 대상을 추가 dsym 생성, 자원 복사를 해제, 사용자 정의 옵션을 추가 할 수 있습니다 컴파일러 > '은 전달 된 매개 변수를 기록하는 스크립트입니다. 'some_src.m'은 '-c'옵션 바로 다음에 올 것입니다. 이렇게하면 특수 타겟을 컴파일하여 각 파일에 대한 옵션을 수집합니다. 패치 된 버전의 clang에서이 접근 방식을 성공적으로 사용했습니다.

+0

이 좀 더 세부 사항을 설명 할 수있는 다른 사용할 수 있습니다 평소 JSON 파서와 함께 분석 할 수 ? xcode 5에서 어떻게 할 수 있습니까? 그렇게하면 예기치 않게 Xcode가 충돌합니다. – BergP

1

내가 더 나은 해결책을 찾을 수 있다고 생각, 당신은 xctool를 사용할 수 있습니다.

당신은 Xcode 프로젝트, 계획 (목표)의 경로를 통과하고, 컴파일 명령을 JSON을 얻을 수 있습니다.

$1 = path to .xcodeproj file 
$2 = scheme (target) 
$3 = path for generated json 


#!/bin/bash 
XCTOOL_DIR=/Documents/xctool-master #the location of your xctool 
$XCTOOL_DIR/xctool.sh -workspace "$1"/project.xcworkspace \ 
-scheme "$2" \ 
-reporter json-compilation-database:"$3"/compile_commands.json build 

compile_commands.json이다 json compilation database 이 형식은 :

[ 
    { "directory": "/home/user/llvm/build", 
    "command": "/usr/bin/clang++ -Irelative -DSOMEDEF=\"With spaces, quotes and \\-es.\" -c -o file.o file.cc", 
    "file": "file.cc" }, 
    ... 
] 

당신은 또한 당신은 reporters