setlocal EnableDelayedExpansion
echo *********************************************************
echo 脚本功能:O4基础、合规、UFT的前台、debugtool自动编译脚本。
echo 脚本编写:王华斌
echo 修订时间:2014.10.23
echo *********************************************************
rem 主流程
:main
rem SVN更新(在Jenkins中执行)
rem 初始配置
call %Workspace%\initTMP.bat
call %Workspace%\autopack\UFT_20160122_LS\initNEW2-UFT.bat
rem 判断是否需要编译
if "%U_Client%" EQU "true" (
rem 编译客户端
call :Compileclient
) else (
echo 本次不需要编译UFT前台
)
rem 判断是否需要编译
if "%U_newtran%" EQU "true" (
rem 编译客户端
call :Compilenewtran
) else (
echo 本次不需要编译newtran
)
call :Svncleanup
goto :eof
exit /b
rem =============================编译客户端程序=================================================
:Compileclient
echo 前台编译前时间:%time% >%LogDir%\Client计算时间.log
rem 编译基础客户端
rmdir /s /q %SrcDir%\base\Run\o4client
cd %SrcDir%\base\Sources\Client
%VisualStudio% HSTMS.Base.sln /rebuild "Debug|Mixed Platforms" /out %LogDir%\client_base.log
rem 拷贝base编译出的基础文件到各子系统,各子系统编译时会引用到。
xcopy /y /q /e %SrcDir%\base\Sources\Client\Hundsun.Frame %SrcDir%\compliance\Sources\Client\Hundsun.Frame
xcopy /y /q /e %SrcDir%\base\Sources\Client\Hundsun.Frame %SrcDir%\UFT2.0\Sources\Client\Hundsun.Frame
rem 编译合规客户端
rmdir /s /q %SrcDir%\compliance\Run\o4client
xcopy /e /q /y %SrcDir%\base\Run\o4client %SrcDir%\compliance\Run\o4client\
cd %SrcDir%\compliance\Sources\Client
%VisualStudio% HSTMS.Compliance.sln /rebuild "Debug|Mixed Platforms" /out %LogDir%\client_compliance.log
rem 编译UFT客户端
rmdir /s /q %SrcDir%\UFT2.0\Run\o4client
xcopy /e /q /y %SrcDir%\compliance\Run\o4client %SrcDir%\UFT2.0\Run\o4client\
cd %SrcDir%\UFT2.0\Sources\Client
%VisualStudio% HSTMS.UFT.sln /rebuild "Debug|Mixed Platforms" /out %LogDir%\client_uft.log
rem 同步前台到base下
xcopy /e /q /y %SrcDir%\UFT2.0\Run\o4client %SrcDir%\base\Run\o4client\
rem 对前台加壳,防止反编译
for /r %SrcDir%\base\Run\o4client %%i in (Hundsun.*.dll) do set JMdll=!JMdll!/%%i
%Eziriz% -file "%SrcDir%\base\Run\o4client\O4Trade.exe" -satellite_assemblies "%JMdll%" -targetfile "<AssemblyLocation>\<AssemblyFileName>" -exception_handling 0 -obfuscation 0 -licensing_behaviour 0
echo 前台编译完时间:%time% >>%LogDir%\Client计算时间.log
echo 前台提交SVN前时间:%time% >>%LogDir%\Client计算时间.log
rem cd %SrcDir%\base\Run
rem svn add * --force
rem svn commit -m "升级包编译提交" %SrcDir%\base\Run\o4client
rem Frame由开发提交,编译之前删除
rmdir /q /s %SrcDir%\base\Sources\Client\Hundsun.Frame
rmdir /q /s %SrcDir%\compliance\Sources\Client\Hundsun.Frame
rmdir /q /s %SrcDir%\UFT2.0\Sources\Client\Hundsun.Frame
echo 前台提交SVN完时间:%time% >>%LogDir%\Client计算时间.log
goto :eof
rem =============================编译客户端程序=================================================
:Compilenewtran
echo 前台编译前时间:%time% >%LogDir%\newtran计算时间.log
rem 编译newtran
cd /d %SrcDir%\UFT2.0\Sources\newtran\UFTStockIntf
dcc32 -Q -B -U"E:\Program Files (x86)\Borland\Delphi6\Lib;E:\Program Files (x86)\Borland\Delphi6\Bin;E:\Program Files (x86)\Borland\Delphi6\Projects\Bpl" uftstockintf.dpr >%LogDir%\newtran_uftstockintf.log
cd /d %SrcDir%\UFT2.0\Sources\newtran\UFTFuturesIntf
dcc32 -Q -B -U"E:\Program Files (x86)\Borland\Delphi6\Lib;E:\Program Files (x86)\Borland\Delphi6\Bin;E:\Program Files (x86)\Borland\Delphi6\Projects\Bpl" uftfuturesintf.dpr >%LogDir%\newtran_uftfuturesintf.log
cd /d %SrcDir%\UFT2.0\Sources\newtran\UFTStockFcIntf
dcc32 -Q -B -U"E:\Program Files (x86)\Borland\Delphi6\Lib;E:\Program Files (x86)\Borland\Delphi6\Bin;E:\Program Files (x86)\Borland\Delphi6\Projects\Bpl" uftstockfcintf.dpr >%LogDir%\newtran_uftstockfcintf.log
cd /d %SrcDir%\UFT2.0\Sources\newtran\UFTCsdcAfterIntf
dcc32 -Q -B -U"E:\Program Files (x86)\Borland\Delphi6\Lib;E:\Program Files (x86)\Borland\Delphi6\Bin;E:\Program Files (x86)\Borland\Delphi6\Projects\Bpl" uftcsdcafterintf.dpr >%LogDir%\newtran_uftcsdcafterintf.log
cd /d %SrcDir%\UFT2.0\Sources\newtran\UFTEzStepIntf
dcc32 -Q -B -U"E:\Program Files (x86)\Borland\Delphi6\Lib;E:\Program Files (x86)\Borland\Delphi6\Bin;E:\Program Files (x86)\Borland\Delphi6\Projects\Bpl" uftezstepintf.dpr >%LogDir%\newtran_uftezstepintf.log
cd /d %SrcDir%\UFT2.0\Sources\newtran\UFTSZ5StockIntf
dcc32 -Q -B -U"E:\Program Files (x86)\Borland\Delphi6\Lib;E:\Program Files (x86)\Borland\Delphi6\Bin;E:\Program Files (x86)\Borland\Delphi6\Projects\Bpl" uftsz5stockintf.dpr >%LogDir%\newtran_uftsz5stockintf.log
echo 前台编译完时间:%time% >>%LogDir%\newtran计算时间.log
cd %SrcDir%\UFT2.0\Sources\newtran\bin
svn add * --force
svn commit -m "升级包编译提交M201" %SrcDir%\UFT2.0\Sources\newtran\bin
goto :eof
rem ==========================SVN清理===========================================
:Svncleanup
rem 避免出现下次任务运行出现SVN更新报错
svn cleanup %workspace%\compliance\Sources\ufrcore_code
svn cleanup %workspace%\compliance\Sources\ufrmgnt
svn cleanup %workspace%\UFT2.0\Run
svn cleanup %workspace%\UFT2.0\Sources\Client
svn cleanup %workspace%\UFT2.0\Sources\newtran
svn cleanup %workspace%\UFT2.0\Sources\资管UFT系统V20
svn cleanup %workspace%\升级脚本
goto :eof
echo *********************************************************
echo 脚本功能:O4基础、合规、UFT的前台、debugtool自动编译脚本。
echo 脚本编写:王华斌
echo 修订时间:2014.10.23
echo *********************************************************
rem 主流程
:main
rem SVN更新(在Jenkins中执行)
rem 初始配置
call %Workspace%\initTMP.bat
call %Workspace%\autopack\UFT_20160122_LS\initNEW2-UFT.bat
rem 判断是否需要编译
if "%U_Client%" EQU "true" (
rem 编译客户端
call :Compileclient
) else (
echo 本次不需要编译UFT前台
)
rem 判断是否需要编译
if "%U_newtran%" EQU "true" (
rem 编译客户端
call :Compilenewtran
) else (
echo 本次不需要编译newtran
)
call :Svncleanup
goto :eof
exit /b
rem =============================编译客户端程序=================================================
:Compileclient
echo 前台编译前时间:%time% >%LogDir%\Client计算时间.log
rem 编译基础客户端
rmdir /s /q %SrcDir%\base\Run\o4client
cd %SrcDir%\base\Sources\Client
%VisualStudio% HSTMS.Base.sln /rebuild "Debug|Mixed Platforms" /out %LogDir%\client_base.log
rem 拷贝base编译出的基础文件到各子系统,各子系统编译时会引用到。
xcopy /y /q /e %SrcDir%\base\Sources\Client\Hundsun.Frame %SrcDir%\compliance\Sources\Client\Hundsun.Frame
xcopy /y /q /e %SrcDir%\base\Sources\Client\Hundsun.Frame %SrcDir%\UFT2.0\Sources\Client\Hundsun.Frame
rem 编译合规客户端
rmdir /s /q %SrcDir%\compliance\Run\o4client
xcopy /e /q /y %SrcDir%\base\Run\o4client %SrcDir%\compliance\Run\o4client\
cd %SrcDir%\compliance\Sources\Client
%VisualStudio% HSTMS.Compliance.sln /rebuild "Debug|Mixed Platforms" /out %LogDir%\client_compliance.log
rem 编译UFT客户端
rmdir /s /q %SrcDir%\UFT2.0\Run\o4client
xcopy /e /q /y %SrcDir%\compliance\Run\o4client %SrcDir%\UFT2.0\Run\o4client\
cd %SrcDir%\UFT2.0\Sources\Client
%VisualStudio% HSTMS.UFT.sln /rebuild "Debug|Mixed Platforms" /out %LogDir%\client_uft.log
rem 同步前台到base下
xcopy /e /q /y %SrcDir%\UFT2.0\Run\o4client %SrcDir%\base\Run\o4client\
rem 对前台加壳,防止反编译
for /r %SrcDir%\base\Run\o4client %%i in (Hundsun.*.dll) do set JMdll=!JMdll!/%%i
%Eziriz% -file "%SrcDir%\base\Run\o4client\O4Trade.exe" -satellite_assemblies "%JMdll%" -targetfile "<AssemblyLocation>\<AssemblyFileName>" -exception_handling 0 -obfuscation 0 -licensing_behaviour 0
echo 前台编译完时间:%time% >>%LogDir%\Client计算时间.log
echo 前台提交SVN前时间:%time% >>%LogDir%\Client计算时间.log
rem cd %SrcDir%\base\Run
rem svn add * --force
rem svn commit -m "升级包编译提交" %SrcDir%\base\Run\o4client
rem Frame由开发提交,编译之前删除
rmdir /q /s %SrcDir%\base\Sources\Client\Hundsun.Frame
rmdir /q /s %SrcDir%\compliance\Sources\Client\Hundsun.Frame
rmdir /q /s %SrcDir%\UFT2.0\Sources\Client\Hundsun.Frame
echo 前台提交SVN完时间:%time% >>%LogDir%\Client计算时间.log
goto :eof
rem =============================编译客户端程序=================================================
:Compilenewtran
echo 前台编译前时间:%time% >%LogDir%\newtran计算时间.log
rem 编译newtran
cd /d %SrcDir%\UFT2.0\Sources\newtran\UFTStockIntf
dcc32 -Q -B -U"E:\Program Files (x86)\Borland\Delphi6\Lib;E:\Program Files (x86)\Borland\Delphi6\Bin;E:\Program Files (x86)\Borland\Delphi6\Projects\Bpl" uftstockintf.dpr >%LogDir%\newtran_uftstockintf.log
cd /d %SrcDir%\UFT2.0\Sources\newtran\UFTFuturesIntf
dcc32 -Q -B -U"E:\Program Files (x86)\Borland\Delphi6\Lib;E:\Program Files (x86)\Borland\Delphi6\Bin;E:\Program Files (x86)\Borland\Delphi6\Projects\Bpl" uftfuturesintf.dpr >%LogDir%\newtran_uftfuturesintf.log
cd /d %SrcDir%\UFT2.0\Sources\newtran\UFTStockFcIntf
dcc32 -Q -B -U"E:\Program Files (x86)\Borland\Delphi6\Lib;E:\Program Files (x86)\Borland\Delphi6\Bin;E:\Program Files (x86)\Borland\Delphi6\Projects\Bpl" uftstockfcintf.dpr >%LogDir%\newtran_uftstockfcintf.log
cd /d %SrcDir%\UFT2.0\Sources\newtran\UFTCsdcAfterIntf
dcc32 -Q -B -U"E:\Program Files (x86)\Borland\Delphi6\Lib;E:\Program Files (x86)\Borland\Delphi6\Bin;E:\Program Files (x86)\Borland\Delphi6\Projects\Bpl" uftcsdcafterintf.dpr >%LogDir%\newtran_uftcsdcafterintf.log
cd /d %SrcDir%\UFT2.0\Sources\newtran\UFTEzStepIntf
dcc32 -Q -B -U"E:\Program Files (x86)\Borland\Delphi6\Lib;E:\Program Files (x86)\Borland\Delphi6\Bin;E:\Program Files (x86)\Borland\Delphi6\Projects\Bpl" uftezstepintf.dpr >%LogDir%\newtran_uftezstepintf.log
cd /d %SrcDir%\UFT2.0\Sources\newtran\UFTSZ5StockIntf
dcc32 -Q -B -U"E:\Program Files (x86)\Borland\Delphi6\Lib;E:\Program Files (x86)\Borland\Delphi6\Bin;E:\Program Files (x86)\Borland\Delphi6\Projects\Bpl" uftsz5stockintf.dpr >%LogDir%\newtran_uftsz5stockintf.log
echo 前台编译完时间:%time% >>%LogDir%\newtran计算时间.log
cd %SrcDir%\UFT2.0\Sources\newtran\bin
svn add * --force
svn commit -m "升级包编译提交M201" %SrcDir%\UFT2.0\Sources\newtran\bin
goto :eof
rem ==========================SVN清理===========================================
:Svncleanup
rem 避免出现下次任务运行出现SVN更新报错
svn cleanup %workspace%\compliance\Sources\ufrcore_code
svn cleanup %workspace%\compliance\Sources\ufrmgnt
svn cleanup %workspace%\UFT2.0\Run
svn cleanup %workspace%\UFT2.0\Sources\Client
svn cleanup %workspace%\UFT2.0\Sources\newtran
svn cleanup %workspace%\UFT2.0\Sources\资管UFT系统V20
svn cleanup %workspace%\升级脚本
goto :eof