bakefile建立统一的开发环境,用SVN进行代码管理
在一个项目中,往往需要很多的子系统甚至子平台,项目团队成员也不一而论,有几人,几十人,甚至几百几千人,那么开发环境搭建的好坏,就会影响团队协作、团队新手上手等。
我们的项目管理使用bakefile和SVN进行团队协作,至于SVN的服务端安装配置,在这就不多说了。
首先安装最新版的bakefile和svn client,分别在http://www.bakefile.org/index.html,http: //www.subversion.org.cn/,安装结束后,将以上二个软件的程序路径加入到windows的系统环境变量中,linux中则相安装 完后,会自动添加。
现在假设我们在WINDOWS中要建一项目test
为了开发及协作方便,大家存放代码的位置也应一致,现假设为c:"works,在svn server中已添加了一个新的代码仓库test,启一命令行,路径切换至c:"works
1. 导出代码库test
svn co http://server/svn/test/trunk test
输入帐户信息后,即可将初始版本导出
2. 将代码添加到SVN中,假设新加了一个程序文件为main.cpp
cd test
svn add main.cpp
svn ci -m "added main.cpp file"
3. 获取SVN中最新版本
svn up
4. 查看svn版本与本地版本差异
svn st
5. 提交svn版本
svn ci -m "message"
以上即为SVN在代码中使用时简介,由于SVN开源、支持合并,差异,版本管理等特性,本人推荐SVN 。
代码受控后,应该做一个统一的编译调试环境,那么为了省事,应建一个bakefile的运行脚本,一个bakefile的编译配置脚本.
运行脚本,在WINDOWS上存为bake.cmd
@echo off
if "%1"=="" goto ERROR
if not "%2"=="" goto ERROR
set WX_WIDGETS=wxWidgets-2.8.7
set WX_DEFINES=-IC:"works"%WX_WIDGETS%"build"bakefiles"wxpresets -DWX_DIR=C:"works"%WX_WIDGETS% -DWX_UNICODE=1
if "%1"=="release" goto RELEASE
:DEBUG
bakefile build.bkl -f msvc -o Makefile -DWX_DEBUG=1 -DWX_SHARED=1 -DBUILD=debug -DBUILDDIR=Debug %WX_DEFINES%
goto END
:RELEASE
bakefile build.bkl -f msvc -o Makefile -DWX_DEBUG=0 -DWX_SHARED=0 -DBUILD=release -DBUILDDIR=Release %WX_DEFINES%
goto END
:ERROR
echo Usage: bake [debug / release]
:END
以上脚本则包含了DEBUG和release二个选项的编译支持。按bakefile需求则还得实现一个build.bkl存放编译环境配置
<?xml version="1.0" ?>
<makefile>
<exe id="test">
<app-type>console</app-type>
<win32-res>test.rc</win32-res>
<sources>$(fileList('*.cpp'))</sources>
</exe>
</makefile>
当然build.bkl还可加如模板,命令等其它内容,这就要按项目需求来实现。
既然各项工作都已做完,那么试试bake.cmd debug或bake.cmd release生成的Makefile吧,如果配置了VC的编译器,nmake一下即可生成你的应用了,如果是GCC的编译器,你也只需make就可以了。