共享 Xcode 项目文件,外部构建系统位于不同位置
我在多台机器上处理一个项目,并且更喜欢使用 Xcode 作为我的 IDE,尽管我使用 SCons 构建工具进行构建。
我按照此讨论的指导来同步我的项目 .pbxproj 文件使用 Git。这工作正常。新的源文件显示在项目树等中。 我的构建在一台机器或另一台机器上运行良好。
我遇到了一个问题,因为 scons 构建工具安装在不同机器上的不同绝对路径中。它也不位于 XCode 使用的任何路径中。
谁能告诉我如何在外部构建工具目标的 XCode 目标设置中使用环境变量或其他方式,以便我可以指定正确的构建工具位置并构建产品目录? 目标是 .pbxproj 文件无需修改即可在我的两台计算机上运行,但每台计算机上的环境变量设置不同。
谢谢。
I work on a project from multiple machines and prefer to use Xcode as my IDE, even though I build with the SCons build tool.
I followed the guidance of this discussion to sync my project .pbxproj file using Git. This works ok. New source files show up in the project tree, etc.
I have the build working fine on one machine or the other.
I am running into a problem in that the scons build tool is installed at a different absolute path on different machines. It is not in whatever path XCode is using either.
Can anyone tell me how to use an environment variable or other means in the XCode target settings for an external build tool target so that I can specify the correct build tool location and also build products directory?
The goal is that the .pbxproj file works on both my machines without modification, but an environment variable would be set differently on each machine.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好的,所以我想出了一个使用间接级别的可行解决方案。 XCode 首先调用 bash shell,给出要运行的脚本名称,该脚本名称与我的 Xcode 项目文件位于同一目录中。该脚本可以智能地使用在我的environment.plist 文件中设置的环境变量值来指定构建工具路径。在那里设置的环境变量传播到 bash shell 进程环境。
规格:
在目标设置中,自定义构建命令部分,我有
构建工具:“bash”
参数:“build_script $PRODUCT_NAME”
目录:空
文件 build_script 是一个 bash 脚本,保存在与我的 XCode 项目文件相同的目录中。它基本上只是将目录更改为我的源代码存储库所在的位置,然后调用 scons 构建工具,从环境变量获取 scons 的路径。
Ok, so I came up with a working solution using a level of indirection. XCode first calls bash shell giving a script name to run that is located in the same directory as my Xcode project file. The script has the smarts to specify the build tool path using values of environment variables set in my environment.plist file. Environment variables set there, propagate to the bash shell process environment.
Specifics:
In the target settings, Custom Build Command portion, I have
Build Tool: "bash"
Arguments: "build_script $PRODUCT_NAME"
Directory: empty
The file build_script is a bash script saved in the same directory as my XCode project file. It is basically just changes directory to where my source code repository is and then calls the scons build tool, getting the path to scons from an environment variable.