用VC6和Install Shield6.2进行自动化构建

如果一个VC的项目中,有10个或者更多的工程(Project),当我们需要进行一次完整的构建(Build)时,如果你分别用VC 打开每个工程然后Build,相信大家都会觉得很是麻烦。其实VC就自带了一个强大的自动构建的工具: nmake 。它可以帮助你完成日常的构建工作。

nmake的详细用法,你可以通过在控制台下输入:nmake /help来查看。下面我举个实际的例子。

该项目有大约十多个工程,目录结构如下:

src/
    +TSHA_LIB
    +TSHP_CFG
    +TSHA_BROW
    +...
    +TSHC_OPT

所有的项目文件源码位于src目录下,每个工程占用一个独立的目录。这时,我们可以编写Makefile文件如下:

VC=MSDEV.EXE
CFLAG_ALL=/make /rebuild
RMDIR=rmdir /S /Q
BIN_DLL_DIR=E:/Project/dvlp/client/Release/bin
DEST_DLL_DIR=E:/Project/dist/dll
DEST_BIN_DIR=E:/Project/dist/bin

all:
    @echo Now building 共通
    $(VC) TSHA_LIB/TSHA_LIB.dsp $(CFLAG_ALL)

    @echo Now building 故障管理
    $(VC) TSHP_MON_MAPX/TSHP_MON.dsp $(CFLAG_ALL)

    @echo Now building 安全管理
    $(VC) TSHI_SEC/TSHI_SEC.dsp $(CFLAG_ALL)

    @echo Now building 资源管理
    $(VC) TSHP_CFG/TSHP_CFG.dsp $(CFLAG_ALL)

    @echo Now building 浏览器
    $(VC) TSHA_BROW/TSHA_BROW.dsp $(CFLAG_ALL)

    @echo Now building 主控画面
    $(VC) MAIN_MENU/MAIN_MNU.dsp $(CFLAG_ALL)

    @echo Now building TSData
    $(VC) TSHA_DATA/TSHA_DATA.dsp $(CFLAG_ALL)

    @echo Now building 配置管理
    $(VC) TSHB_CFG/TSHB_CFG.dsp $(CFLAG_ALL)

    @echo Now building 系统管理
    $(VC) TSHE_SMT/TSHE_SMT.dsp $(CFLAG_ALL)

    @echo Now building 综合查询
    $(VC) TSHF_QRY/TSHF_QRY.dsp $(CFLAG_ALL)

    @echo Now building 系能分析
    $(VC) TSHP_NSO/TSHP_NSO.dsp $(CFLAG_ALL)

    @echo Now building 工单管理
    $(VC) TSHL_TER/TSHL_TER.dsp $(CFLAG_ALL)

    @echo Now building 操作维护
    $(VC) TSHC_OPT/TSHC_OPT.dsp $(CFLAG_ALL)
   
   

    @echo Now removing trash
    $(RMDIR) TSHA_LIB/Release
    $(RMDIR) TSHP_NSO/Release
    $(RMDIR) TSHP_CFG/Release
    $(RMDIR) TSHF_QRY/Release
    $(RMDIR) TSHE_SMT/Release
    $(RMDIR) TSHB_CFG/Release
    $(RMDIR) TSHA_DATA/Release
    $(RMDIR) MAIN_MENU/Release
    $(RMDIR) TSHA_BROW/Release
    $(RMDIR) TSHI_SEC/Release
    $(RMDIR) TSHP_MON_MAPX/Release
    $(RMDIR) TSHL_TER/Release
    $(RMDIR) TSHC_OPT/Release

    copy $(BIN_DLL_DIR)/TSHA_LIB.dll $(DEST_DLL_DIR)
    copy $(BIN_DLL_DIR)/TSHA_Data.dll $(DEST_DLL_DIR)
    copy $(BIN_DLL_DIR)/TSHP_NSO.exe $(DEST_BIN_DIR)
    copy $(BIN_DLL_DIR)/TSHP_CFG.exe $(DEST_BIN_DIR)
    copy $(BIN_DLL_DIR)/TSHF_QRY.exe $(DEST_BIN_DIR)
    copy $(BIN_DLL_DIR)/TSHE_SMT.exe $(DEST_BIN_DIR)
    copy $(BIN_DLL_DIR)/TSHB_CFG.exe $(DEST_BIN_DIR)
    copy $(BIN_DLL_DIR)/MAIN_MNU.exe $(DEST_BIN_DIR)
    copy $(BIN_DLL_DIR)/TSHA_BROW.exe $(DEST_BIN_DIR)
    copy $(BIN_DLL_DIR)/TSHI_SEC.exe $(DEST_BIN_DIR)
    copy $(BIN_DLL_DIR)/TSHP_MON.exe $(DEST_BIN_DIR)
    copy $(BIN_DLL_DIR)/TSHL_TER.exe $(DEST_BIN_DIR)
    copy $(BIN_DLL_DIR)/TSHC_OPT.exe $(DEST_BIN_DIR)

对比上面的文件和你的项目结构,把它稍作修改,最好保存为‘Makefile’文件名。熟悉 UNIX的朋友都知道make使用Makefile作为配置文件,nmake亦然。把保存好的Makefile放在src目录下,在src目录下运行nmake就可以自动构建你的项目了。

很简单吧,Makefile的编写方法几乎UNIX下的Makefile相同。文件的开头是一些变量定义,比如:CFLAG_ALL是编译的参数,BIN_DLL_DIR是输出文件的位置,它和每个Project中的设置是一样的。构建后,我们可以自动调用rmdir删除目标文件,最后,把所有的.exe文件和.dll文件拷贝到Install Shield的工程目录下,在这里就是DEST_DLL_DIR和DEST_BIN_DIR 指定的目录。

Bingo,到此为止,用nmake自动构建就已经基本完成了。下面我们开始用Install Shield打包项目文件了,这个过程更简单,打开Install Shield,在菜单[Build] 中找到[Export (Build) Batch File...],输出一个.bat文件。以后你就不需要打开Install Shield,而只要执行这个.bat文件就可以给你的项目打包了。

如果你想把编译和打包一起做,你可在Makefile的最后调用打包的.bat文件。这样只要在控制台下输入nmake,1/10柱香的工夫你的项目就自动构建好了,岂不快哉。

 

你可能感兴趣的:(用VC6和Install Shield6.2进行自动化构建)