GeneralDE是为个人开发打造的开发环境,其设计目标是在做新项目时不需要从头写Makefile,只需要在GeneralDE的基础上增加项目需要的模块就好。 GeneralDE不是设计为一个工具,可以在其他地方使用,而是设计为一个环境,可以方便的接入其他工具。为开发人员的开发过程提供支持。
开发环境
- Linux32
- Linux64
- mac
- iphone-simulate
开发语言
- c
- cpp
- m (objective-c)
- mm (objective-c++)
- buildtools 存放编译系统支持Makefile
- include 存放个人开发的支持库的头文件
- src 存放个人开发的支持库的实现文件
- 3rdTools 存放在环境中跟踪的知名第三方库,每一个库都以一个子目录的形式存在,目录名为库名
我一直使用Makefile进行开发,而且对Makefile非常满意,没有任何意愿迁移到任何其他的编译系统。
而且个人总是对编译系统有诸多的需求,一直在通过Makefile扩展。
但是在不同项目中重复开发Makefile,并且Make系统设计细节不太相同,所以在多个项目之间切换就比较麻烦了。
在设计GeneralDE之前,也多次尝试统一Makefile的设计,但是由于后期项目只间Makefile修改同步成本太高,最后都不了了之。
最近接触到了Git,Git帮助解决了Makefile在多个项目之间同步问题,所以GeneralDE的设计就水到渠成的开始了。
接触Git以后又发现了Topgit,他帮我解决了第二个大问题: 第三方库管理。 一直以来如何管理第三方库一直是一个麻烦的问题。
- 如果每次在开发环境之外安装,那么在迁移开发环境时会非常麻烦,一旦库和开发环境版本不一致就真的问题多多了。
- 如果每次将库打包在开发环境之内,那么不同的项目会使用不同的第三方库,将不需要的库引入项目总让人不舒服。
有了Topogit就可以解决这个库管理的问题了: 每一个第三方库单独创建一个特性分支,在项目需要使用这个第三方库的时候可以使用tg depend add增加对这个特性分支的依赖就解决问题了。 所以,目前GeneralDE中还包括了一些我常用的第三方工具的特性分支。
GeneralDE中跟踪的第三方库,其源代码是没有任何一行修改的,这是底线,但是Makefile被我替换成GeneralDE中的makefile,这样可以更好的管理依赖关系。
除了第三方库,我也将一些我写的,和具体的项目无关的代码象第三方库一样,用特性分支跟踪在GeneralDE环境中,方便在多个项目中共享。
[[include/README]]