从XCode命令行中提取构建标志



我正在使用X-Code 4.2,并希望使用VIM编辑器和clang-complete VIM脚本来完成代码。如果我手动设置clang-complete配置以反映X-Code项目中的设置,则可以正常工作。为了使这项工作更顺利,我想做以下事情。

get_compile_options some_src.m

some_src的地方。m是一个有效的源文件在我的XCode项目。get_compile_options的输出应该是XCode用来将其构建到目标文件中的所有构建标志。有什么想法吗?

我知道没有公平的方法来完成这一点,但你可以在Xcode项目中添加特殊的目标,禁用dsym生成,资源复制,添加用户定义选项'CC='其中''将是你的脚本,记录传入的参数。"some_src。M '将在'-c'选项之后。通过这种方式,您将通过编译您的特殊目标来收集每个文件的选项。

我想我找到了更好的解决方案,你可以使用xctool。

你可以将path传递给你的xcode项目,scheme (target),并通过编译命令获得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编译数据库格式为:

[
  { "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" },
  ...
]

,你可以用通常的json解析器来解析它,也可以使用其他报表符

最新更新