Xcode编译器插件&平台的本机构建设置

时间:2014-08-25 06:36:08

标签: xcode compiler-construction clang

我遇到了创建Xcode编译器插件的问题,该插件看起来是Xcode生成编译行的问题的结果,以及平台SDK如何覆盖其中一些选项。

创建自定义编译器插件时,在为MacOSX构建应用程序时可以正常运行。我在为iPhoneOS构建应用程序时发现了一个问题。 SDK不断抱怨min-iphoneos-version变量中的值无效,原因是这不是在编译命令行中设置的。查看适用于Xcode5的iPhoneOS平台SDK,您会注意到该设置已在'Native Build System.xcspec'文件(Applications/Xcode.app/Contents/Developer/Platforms/iPhone*.platform/Developer/Library/Xcode/Specifications/)中定义。基本上,根据我可以收集的内容,查询此文件并使用此命令行选项覆盖-mmin-macosx-version标志,这将导致Apple编译器的有效构建。但是,创建自己的编译器插件并随之出现问题,因为新编译器将 与“Native Build System.xcspec'文件中的任何”编译器“定义匹配。

我只能想到几个解决方案,

  • 在安装时重写/修补'Native Build System.xcspec'文件,导致一个可怕的解决方案,需要为Apple的构建系统制作不受支持的补丁。
  • 另一种允许自定义编译器插件通过某种匹配技术定义特定于平台SDK的选项的技术
  • 如果将新的.xcspec文件作为资源添加到PrivatePlugIns目录中的插件中,是否会在构建时解析所有这些文件?如果是,则可以将这些设置添加到文件中,例如

    Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/PrivatePlugIns/iPhoneSimulator Build System Support.xcplugin/Contents/Resources/MyPlugin.xcspec
    

有没有其他人反对这种“路障”(咳嗽,设计问题)?

0 个答案:

没有答案