Xcode能否从一个依赖目标向另一个依赖它的目标传递编译标志?

3

以下是我在构建我的Mac应用程序时遇到的问题。

这个项目有三个目标:目标A由UI源代码组成,生成最终的应用程序;目标B生成一个命令行测试程序,执行一些单元测试(我没有使用自动生成的XXXTests目标);目标C由后端源代码组成,为目标A和目标B生成一个静态库以供链接。

问题在于,目标B需要使用带有“-DZS_TEST”标志构建的目标C,但目标A需要使用不带该标志的目标C进行构建。那么,如何设置Xcode项目/目标设置,以便在从构建目标A和目标B之间切换时无需更改任何设置?因为更改构建设置会导致Git报告未暂存的文件,这感觉是不必要的,因为我只想构建一个不同的目标。

我想知道Xcode是否可以将来自依赖目标的标志转发到被依赖目标,然后我可以让B将“-DZS_TEST=1”转发到C,并让目标A将“-DZS_TEST=0”转发到C。

还是有更好的方法将项目分成不同的目标?

我谷歌搜索了很多与Xcode构建设置相关的文章,但它们并没有分享这个项目的具体需求。先谢谢了。

2个回答

1
我最终使用了两个内核目标,即目标c1和c2,它们使用相同的源代码但不同的编译标志,c1使用ZS_TEST定义进行构建,而c2则没有。然后目标A和B依赖于它们需要的目标。

1
我所做的是设置一个单独的配置,称之为“测试”,作为标准调试配置的副本。在目标C中将您的额外标志放入Test配置中,必要时也可以放入目标B中。
编辑目标B的方案,使其运行构建Test配置。该配置会传递给依赖项,因此它们的Test配置将被构建,并且一切都应该正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接