打建Build System-Part 1-抛弃Build Panel

 原文很精彩。地址:http://robnapier.net/blog/build-system-1-build-panel-360#more-360

我使用Xcode 3.2.5按照原文一步步走过来,结果略有不同,但无关紧要。

正文开始

Xcode有一套先进的build system。再加少许改进,可使你的project更易于设置/维护,也可减少build时间。

Build Panel开始易用,但随着设置的复杂,其使用也会让人越来越迷惑。e.g.你要维护一份Legacy C++ Code,遇到了Thumb Code Generation和一个assembler的冲突,不得已要关掉Thumb。此时写些注释为上策,以防“后来者”无意之中打开Thumb。但是,Build Panel帮不了你,加不了注释。专门的Comments Panel是帮不了多大的忙的。

Xcode提供了更高级的解决方案:xcconfig文件。所有通过Build Panel可以做到的,xcconfig也可以。而且可以加注释。

步骤演示

1. 创建一个Window-Based的应用。

create_prj

2. 给Project命名,选择存放目录。我放到了Prjoects目录下。

prj_name_dir

3. 检查Prjoect创建的目录。XccfgDemo已创建完毕。

prj_dir_name

4. 给Groups & Files创建一个新的Group,以存放所有的xcconfig文件。

new_group

5. 我命名其为:Build Configurations。

group name

6. 添加一个新xcconfig文件到该Group。

add new file

7. 选择Configuration Settings File。

choose cfg

8. 命名新文件为:Shared.xcconfig。这里面以后要存放Debug和Release共享的配置。

name cfg

9. 再创建三个。其中,Application.xcconfig专门用于Target的配置。

cfgs review

10. 双击Groups & Files里的工程名:XccfgDemo。会弹出Project Info panel,选择其中的Build页。然后,

  • Configuration选择Debug;
  • Show选择Settings Defined at This Level。

按Cmd-A组合键,选中所有的配置。于是它们变成了下面的蓝色。再按Cmd-C拷贝到剪贴板。

select debug settings

11. 选择Debug.xcconfig文件,按Cmd-V把剪贴板里的内容复制到该文件。

copy to cfg

12. 回到Build Panel,删掉刚才选中的所有配置。这样它们就恢复为默认值了。

reset settings

13. 设置Show: All Settings,你会发现很多值变成了默认。在Build Panel选择右下角的Based On,选择Debug。你会发现原来的设置又回来了

based on cfg

14. 依法炮制,再复制Release的设置,并清除Build Panel,然后选择新的Based On。

15. 双击你的Target,也就是Targests下默认生成的XccfgDemo。再按照10-14步,把Debug和Release都移到Application.xcconfig里。注意要加上注释,标明这两个独立的部分。

16. 选择Configuration: All Configurations,和Based On: Application。

现在设置都移到xcconfig文件里了,只是还有些混乱。下面来做个清理。

17. 先处理Application.xcconfig。把Debug里有的,Release没有的,都移到Debug.xcconfig里。同样,把Release里有的,Debug里没有的,移到Release.xcconfig里。二者都有的,删掉重复的部分,只留其一。

18. 再处理Debug.xcconfig和Release.xcconfig。把二者里都有的,移到Shared.xcconfig里。并且在Debug和Release里添加#include "Shared.xcconfig"

预览

现在,一切都结束了。看一下四个文件都是什么样子:

shared

debug

release

application

现在编译链接都应该没有问题的。

PS:如果你的文件和我不同,那我们都正确的可能性就小了些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值