533 lines
19 KiB
Perl
533 lines
19 KiB
Perl
|
|
||
|
# buildall.pm
|
||
|
#
|
||
|
# created: 8/03/99, a-jbilas
|
||
|
# modified:
|
||
|
#
|
||
|
|
||
|
# TODO: WINCE SUPPORT?
|
||
|
# BETTER FAULT TOLERANCE
|
||
|
# SCRIPT CLEANUP
|
||
|
# ICECAP
|
||
|
|
||
|
if (!$__SPGBUILDPM ) { use spg::build; }
|
||
|
if (!$__SPGBUILDCABSPM ) { use spg::buildcabs; }
|
||
|
if (!$__SPGBUILDMSIPM ) { use spg::buildmsi; }
|
||
|
if (!$__SPGRUNBVTPM ) { use spg::runbvt; }
|
||
|
|
||
|
sub BuildAll
|
||
|
{
|
||
|
#STD overrides
|
||
|
$sBuildName = "Build of SAPI5 All";
|
||
|
|
||
|
$sLogDropDir = "\\\\b11nlbuilds\\sapi5\\Web.Files\\logs\\".$sShortBuildName;
|
||
|
|
||
|
@lAllowedLanguages = ();
|
||
|
@lAllowedBuilds = ("DEBUG", "RELEASE"); #TODO: ICECAP
|
||
|
@lAllowedComponents = ("ALLPROJ", "DATA", "BVTDLLS");
|
||
|
|
||
|
push(@lAllowedModifiers, "ALLCOMP", "SHIP", "NOAH", "BVT", "DELALL", "NOCOPY", "NOCABS", "NOMSI"); #TODO: UPDATE
|
||
|
push(@lDefaultArgs, "ALLPROJ", "BVT", "NOCOPY", "NOCABS", "BVTDLLS");
|
||
|
|
||
|
%hOptionDescription =
|
||
|
(
|
||
|
%hOptionDescription,
|
||
|
# <----------------------------- SCREEN WIDTH -------------------------------------> (accel)
|
||
|
("NoMsi" => " don't build MSI/MSM files"), #NM
|
||
|
("NoCAbs" => " don't build CAB files"), #NC
|
||
|
("DELALL" => " delete all src, resync/rebuild SLM project -be careful with this-"), #DELALL
|
||
|
("AllProj" => " include `All` SAPI5 project from everything.dsw workspace build"), #AP
|
||
|
("DATA" => " include SR data file build"), #DATA
|
||
|
("BvtDlls" => " include BVT dependency DLLs build"), #BD
|
||
|
);
|
||
|
|
||
|
# custom vars
|
||
|
local(@lSampleExeDirs) = ($SAPIROOT."\\test\\audio",
|
||
|
$SAPIROOT."\\test\\dogfood",
|
||
|
$SAPIROOT."\\sdk\\samples\\cpp\\aoesapi",
|
||
|
$SAPIROOT."\\sdk\\samples\\cpp\\basictts",
|
||
|
$SAPIROOT."\\sdk\\samples\\cpp\\dictpad",
|
||
|
$SAPIROOT."\\sdk\\samples\\cpp\\speak",
|
||
|
$SAPIROOT."\\sdk\\samples\\cpp\\ttshello",
|
||
|
$SAPIROOT."\\sdk\\samples\\cpp\\wintts",
|
||
|
$SAPIROOT."\\QA\\SAPI\\Project\\apps\\SpComp\\kato",
|
||
|
$SAPIROOT."\\QA\\SAPI\\Project\\apps\\ttsapp",
|
||
|
# $SAPIROOT."\\QA\\SAPI\\source\\tools\\tux",
|
||
|
$SAPIROOT."\\QA\\SAPI\\Project\\apps\\SpComp");
|
||
|
local(@lBVTCompKills) = ();
|
||
|
local(@lBVTCompBFails) = ();
|
||
|
|
||
|
local($sCABIni) = $SAPIROOT."\\build\\cabs.ini";
|
||
|
local($sCABDir) = $SAPIROOT."\\cabs";
|
||
|
|
||
|
local($bBVTFailed) = 0;
|
||
|
|
||
|
BeginBuild($SAPIROOT, @_);
|
||
|
|
||
|
# UPDATE SECTION
|
||
|
# check whether build needs to be built at all (if UPDATE opt selected)
|
||
|
|
||
|
if ($bOfficialBuild && IsMemberOf("UPDATE", @lArgs) && IsMemberOf("RESYNC"))
|
||
|
{
|
||
|
$fhSyncLog = OpenFile($sSyncLog, "read");
|
||
|
if ($fhSyncLog)
|
||
|
{
|
||
|
my($text);
|
||
|
my($bSomethingHappened) = 0;
|
||
|
for ( ; !$fhSyncLog->eof() ; $text = $fhSyncLog->getline())
|
||
|
{
|
||
|
if ($text =~ /./) #if anything at all happened
|
||
|
{
|
||
|
$bSomethingHappened = 1;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (!$bSomethingHappened)
|
||
|
{
|
||
|
PrintL("\nNo changes to SLM tree recorded (build unnecessary) ...\n\n", PL_LARGE | PL_BOLD);
|
||
|
EndBuild();
|
||
|
return(1);
|
||
|
}
|
||
|
}
|
||
|
CloseFile($fhSyncLog);
|
||
|
}
|
||
|
|
||
|
# DELALL SECTION
|
||
|
# delete all files in SAPI5 enlistment and ssync, slmck (if DELALL opt selected)
|
||
|
|
||
|
if (IsMemberOf("DELALL", @lArgs))
|
||
|
{
|
||
|
PrintL("\nPerforming Full SAPI5 SLM Directory Rebuild ...\n\n", PL_LARGE | PL_BOLD);
|
||
|
|
||
|
BEGIN_NON_CRITICAL_SECTION();
|
||
|
BEGIN_DHTML_NODE();
|
||
|
if ($bOfficialBuild)
|
||
|
{
|
||
|
GrabCookie("r");
|
||
|
}
|
||
|
|
||
|
CleanUpSAPI();
|
||
|
PrintToFile($sSyncLog, "\n\n"."*" x (20)." DIRECTORY REBUILD LOG "."*" x (20)."\n\n");
|
||
|
ExecuteAndOutputToFile($cmdSync." -rf", $sSyncLog);
|
||
|
PrintToFile($sSyncLog, "\n\n"."*" x (50)."\n\n");
|
||
|
ExecuteAndOutputToFile($cmdSlmck." -rf", $sSyncLog);
|
||
|
if ($bOfficialBuild)
|
||
|
{
|
||
|
FreeCookie();
|
||
|
}
|
||
|
END_DHTML_NODE();
|
||
|
END_NON_CRITICAL_SECTION();
|
||
|
}
|
||
|
|
||
|
# REBUILD SECTION
|
||
|
# delete all standard build target dirs (if REBUILD opt selected)
|
||
|
|
||
|
if (IsMemberOf("REBUILD", @lArgs))
|
||
|
{
|
||
|
PrintL("\nCleaning up ...\n\n", PL_LARGE | PL_BOLD);
|
||
|
|
||
|
BEGIN_DHTML_NODE();
|
||
|
local(@lTargetDirs) = ();
|
||
|
foreach $build (@lBuilds)
|
||
|
{
|
||
|
push(@lTargetDirs, $build."_".PROC);
|
||
|
push(@lTargetDirs, $build);
|
||
|
}
|
||
|
DelOld(cwd(), *lTargetDirs);
|
||
|
END_DHTML_NODE();
|
||
|
}
|
||
|
|
||
|
# UPDATE VERSION INFO
|
||
|
|
||
|
PrintL("\nUpdating version info ...\n\n", PL_LARGE | PL_BOLD);
|
||
|
PushD("build");
|
||
|
SetReadOnly("sapiver.h", 0);
|
||
|
|
||
|
my($sForkNumber) = "00";
|
||
|
|
||
|
PrintL("\nUpdating version for header to ".$sForkNumber.".".$sBuildNumber."\n", PL_BOLD);
|
||
|
EchoedUnlink("sapiver.h");
|
||
|
|
||
|
my($fhNewVersion) = OpenFile("sapiver.h", "write");
|
||
|
my($fhVersionHead) = OpenFile("verhead.h", "read");
|
||
|
if ($fhNewVersion && $fhVersionHead)
|
||
|
{
|
||
|
while (!$fhVersionHead->eof())
|
||
|
{
|
||
|
$fhNewVersion->print($fhVersionHead->getline());
|
||
|
}
|
||
|
CloseFile($fhVersionHead);
|
||
|
|
||
|
$fhNewVersion->print("#define VERSION \"5.00.".$sForkNumber.".".$sBuildNumber."\"\n");
|
||
|
$fhNewVersion->print("#define VER_FILEVERSION_STR \"5.00.".$sForkNumber.".".$sBuildNumber."\0\"\n");
|
||
|
$fhNewVersion->print("#define VER_FILEVERSION 5,00,".$sForkNumber.",".$sBuildNumber."\n");
|
||
|
$fhNewVersion->print("#define VER_PRODUCTVERSION_STR \"5.00.".$sForkNumber.".".$sBuildNumber."\0\"\n");
|
||
|
$fhNewVersion->print("#define VER_PRODUCTVERSION 5,00,".$sForkNumber.",".$sBuildNumber."\n");
|
||
|
|
||
|
my($fhVersionTail) = OpenFile("vertail.h", "read");
|
||
|
if ($fhVersionTail)
|
||
|
{
|
||
|
while (!$fhVersionTail->eof())
|
||
|
{
|
||
|
$fhNewVersion->print($fhVersionTail->getline());
|
||
|
}
|
||
|
CloseFile($fhVersionTail);
|
||
|
}
|
||
|
CloseFile($fhNewVersion);
|
||
|
SetReadOnly("sapiver.h", 1);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
PrintL("Could not update version info\n", PL_BIGERROR);
|
||
|
}
|
||
|
|
||
|
PopD(); #"build"
|
||
|
|
||
|
# BUILD LIST OF ARGS FOR BUILDCOMPONENTVC
|
||
|
|
||
|
local(@lBuildComponentArgs) = ();
|
||
|
if (IsMemberOf("REBUILD", @lArgs))
|
||
|
{
|
||
|
push(@lBuildComponentArgs, "REBUILD");
|
||
|
}
|
||
|
if (IsMemberOf("SHIP", @lArgs))
|
||
|
{
|
||
|
push(@lBuildComponentArgs, "CONFIG=SHIP");
|
||
|
}
|
||
|
@lBuildComponentArgs = Union(*lBuildComponentArgs, *lBuilds);
|
||
|
# push(@lBuildComponentArgs, PROC);
|
||
|
|
||
|
############################## PRECOPY ################################
|
||
|
|
||
|
if (!$bNoCopy)
|
||
|
{
|
||
|
if ($sDropDir !~ /\d\d\d\d$/) # ensure that we don't accidentally delete/copy to server root
|
||
|
{
|
||
|
PrintL("Fatal: Drop dir '".$sDropDir."' is not formatted correctly, skipping all copy operations\n", PL_BIGERROR);
|
||
|
push(@lArgs, "NOCOPY");
|
||
|
$bNoCopy = 1;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
if (IsDirectory($sDropDir))
|
||
|
{
|
||
|
PrintL("\nDeleting old build ".$sBuildNumber." from drop share ...\n\n", PL_SUBHEADER);
|
||
|
|
||
|
BEGIN_DHTML_NODE();
|
||
|
Delnode($sDropDir);
|
||
|
END_DHTML_NODE();
|
||
|
Execute($cmdWebUpdate);
|
||
|
}
|
||
|
|
||
|
PrintL("\nCreating Destination Directories ...\n\n", PL_SUBHEADER);
|
||
|
foreach $buildtype (MatchShipBuilds("DEBUG", "RELEASE"))
|
||
|
{
|
||
|
EchoedMkdir($sDropDir."\\".$buildtype."\\bin\\".PROC);
|
||
|
EchoedMkdir($sDropDir."\\".$buildtype."\\cab\\".PROC);
|
||
|
EchoedMkdir($sDropDir."\\".$buildtype."\\map_sym\\".PROC);
|
||
|
}
|
||
|
EchoedMkdir($sDropDir."\\release\\bvt\\".PROC);
|
||
|
EchoedMkdir($sDropDir."\\src\\tts\\msttsdrv\\voices");
|
||
|
EchoedMkdir($sDropDir."\\src\\sr");
|
||
|
EchoedMkdir($sDropDir."\\src\\include");
|
||
|
EchoedMkdir($sDropDir."\\src\\sapi");
|
||
|
PrintL("\n\n");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
############################### BUILD SAPI5 ##################################
|
||
|
|
||
|
if (IsMemberOf("ALLPROJ", @lComponents))
|
||
|
{
|
||
|
PrintL("\nBuilding SAPI v".$nMajorVersion.".".$nMinorVersion." ...\n\n", PL_SUBHEADER);
|
||
|
|
||
|
PushD($SAPIROOT."\\Workspaces");
|
||
|
BuildComponentVC("everything.dsw", "build.ini", @lBuildComponentArgs);
|
||
|
PopD(); #$SAPIROOT."\\Workspaces"
|
||
|
|
||
|
PrintL("\nCreating the symbol files ...\n\n", PL_SUBHEADER);
|
||
|
|
||
|
PushD($SAPIROOT."\\src\\tts\\msttsdrv");
|
||
|
foreach $buildtype (MatchShipBuilds("DEBUG", "RELEASE"))
|
||
|
{
|
||
|
PushD($buildtype."_".PROC);
|
||
|
Execute("mapsym spttseng.map");
|
||
|
PopD(); #$buildtype"_".$PROC
|
||
|
}
|
||
|
PopD(); #$SAPIROOT."\\src\\tts\\msttsdrv
|
||
|
|
||
|
PushD($SAPIROOT."\\src\\sapi");
|
||
|
foreach $buildtype (MatchShipBuilds("DEBUG", "RELEASE"))
|
||
|
{
|
||
|
PushD($buildtype."_".PROC);
|
||
|
Execute("mapsym sapi.map");
|
||
|
PopD(); #$buildtype."_".$PROC
|
||
|
}
|
||
|
PopD(); #$SAPIROOT."\\src\\sapi"
|
||
|
}
|
||
|
|
||
|
########################### BUILD SR DATA FILES ##############################
|
||
|
|
||
|
if (IsMemberOf("DATA", @lComponents))
|
||
|
{
|
||
|
PrintL("\nBuilding SR data files ...\n\n", PL_LARGE | PL_BOLD);
|
||
|
PushD($SAPIROOT."\\src\\sr\\engine\\datafiles");
|
||
|
BuildComponent("BUILDDRV=".$SAPIROOT."\\src\\sr", "SR Engine", "DEBUG");
|
||
|
PopD(); #$SAPIROOT."\\src\\sr\\engine\\datafiles"
|
||
|
}
|
||
|
|
||
|
########################### BUILD BVT DLLS FILES #############################
|
||
|
|
||
|
# add BVTs here but note the directory that they are being built in
|
||
|
# (if you need another, add it below like srengbvt)
|
||
|
|
||
|
if (IsMemberOf("BVTDLLS", @lComponents))
|
||
|
{
|
||
|
PrintL("\nBuilding BVT DLLs ...\n\n", PL_SUBHEADER);
|
||
|
|
||
|
BEGIN_NON_CRITICAL_SECTION();
|
||
|
PushD($SAPIROOT."\\QA\\SAPI\\Project\\components");
|
||
|
foreach $bvt ("ctestisptokenui", "ttseng", "SRTEngine", "testengineext", "TEngAlt")
|
||
|
{
|
||
|
if (BuildComponentVC($bvt.".dsp", $bvt." - Win32 Debug", @lBuildComponentArgs))
|
||
|
{
|
||
|
if (!$bNoCopy)
|
||
|
{
|
||
|
EchoedCopy($SAPIROOT."\\QA\\SAPI\\Project\\components\\debug\\".$bvt.".dll",
|
||
|
$sDropDir."\\debug\\bin\\".PROC);
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
push(@lBVTCompBFails, $bvt);
|
||
|
++$bBVTFailed;
|
||
|
}
|
||
|
}
|
||
|
PopD(); #$SAPIROOT."\\QA\\SAPI\\Project\\components"
|
||
|
|
||
|
PushD($SAPIROOT."\\QA\\SAPI\\Project\\BVT");
|
||
|
foreach $bvt ("ttsbvt", "srbvt", "lexbvt", "rmbvt", "gramcompbvt", "cfgengbvt", "ambvt")
|
||
|
{
|
||
|
if (BuildComponentVC($bvt.".dsp", $bvt." - Win32 Debug", @lBuildComponentArgs))
|
||
|
{
|
||
|
if (!$bNoCopy)
|
||
|
{
|
||
|
EchoedCopy($SAPIROOT."\\QA\\SAPI\\Project\\BVT\\debug\\".$bvt.".dll",
|
||
|
$sDropDir."\\debug\\bin\\".PROC);
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
push(@lBVTCompBFails, $bvt);
|
||
|
++$bBVTFailed;
|
||
|
}
|
||
|
}
|
||
|
PopD(); #$SAPIROOT."\\QA\\SAPI\\Project\\BVT"
|
||
|
|
||
|
if (!$bNoCopy)
|
||
|
{
|
||
|
EchoedCopy($SAPIROOT."\\QA\\SAPI\\data\\sol*.cfg",
|
||
|
$sDropDir."\\debug\\bin\\".PROC);
|
||
|
EchoedCopy($SAPIROOT."\\QA\\SAPI\\data\\thankyou.cfg",
|
||
|
$sDropDir."\\debug\\bin\\".PROC);
|
||
|
}
|
||
|
|
||
|
PushD($SAPIROOT."\\QA\\SR\\SREngBVT");
|
||
|
if (BuildComponentVC("srengbvt.dsp", "srengbvt - Win32 Debug", @lBuildComponentArgs))
|
||
|
{
|
||
|
if (!$bNoCopy)
|
||
|
{
|
||
|
EchoedCopy($SAPIROOT."\\QA\\SR\\SREngBVT\\debug\\srengbvt.dll",
|
||
|
$sDropDir."\\debug\\bin\\".PROC);
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
push(@lBVTCompBFails, "srengbvt");
|
||
|
++$bBVTFailed;
|
||
|
}
|
||
|
PopD(); #$SAPIROOT."\\QA\\SR\\SREngBVT"
|
||
|
END_NON_CRITICAL_SECTION();
|
||
|
}
|
||
|
|
||
|
############################## BUILD CABS ################################
|
||
|
|
||
|
if (!IsMemberOf("NOCABS", @lArgs))
|
||
|
{
|
||
|
my($startTime) = time();
|
||
|
if (BuildCABs($sCABIni, $sCABDir))
|
||
|
{
|
||
|
my($stopTime) = time();
|
||
|
PrintLTip("All CABs built successfully\n", "CAB Build Time: ".FmtDeltaTime($stopTime - $startTime),
|
||
|
PL_GREEN | PL_MSG | PL_BOLD);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
my($stopTime) = time();
|
||
|
PrintLTip("CABs Build FAILED\n", "CAB Build Time: ".FmtDeltaTime($stopTime - $startTime),
|
||
|
PL_BIGERROR);
|
||
|
# TODO: split MSI/CAB -> $bcStatus |= BC_CABFAILED;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
############################## BUILD MSI #################################
|
||
|
|
||
|
if (!IsMemberOf("NOMSI", @lArgs))
|
||
|
{
|
||
|
my($startTime) = time();
|
||
|
if (BuildMSI($sMSIDir))
|
||
|
{
|
||
|
my($stopTime) = time();
|
||
|
PrintLTip("MSI Build Successful\n", "MSI Build Time: ".FmtDeltaTime($stopTime - $startTime),
|
||
|
PL_GREEN | PL_MSG | PL_BOLD);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
my($stopTime) = time();
|
||
|
PrintLTip("MSI Build FAILED\n", "MSI Build Time: ".FmtDeltaTime($stopTime - $startTime),
|
||
|
PL_BIGERROR);
|
||
|
$bcStatus |= BC_CABFAILED;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
################################# COPY ###################################
|
||
|
|
||
|
if (!$bNoCopy && IsMemberOf("ALLPROJ", @lComponents))
|
||
|
{
|
||
|
PrintL("\nCopying Non-MSI Files to Server\n\n", PL_SUBHEADER);
|
||
|
|
||
|
BEGIN_DHTML_NODE();
|
||
|
|
||
|
foreach $buildtype ('debug', 'release')
|
||
|
{
|
||
|
# Copy the core dlls
|
||
|
EchoedCopy($SAPIROOT."\\src\\tts\\msttsdrv\\".$buildtype."_".PROC."\\*.dll",
|
||
|
$sDropDir."\\".$buildtype."\\bin\\".PROC);
|
||
|
|
||
|
# Copy pdb files for the core dlls
|
||
|
EchoedCopy($SAPIROOT."\\src\\tts\\msttsdrv\\".$buildtype."_".PROC."\\spttseng.pdb",
|
||
|
$sDropDir."\\".$buildtype."\\bin\\".PROC);
|
||
|
EchoedCopy($SAPIROOT."\\src\\sapi\\".$buildtype."_".PROC."\\sapi.pdb",
|
||
|
$sDropDir."\\".$buildtype."\\bin\\".PROC);
|
||
|
EchoedCopy($SAPIROOT."\\src\\sapi\\".$buildtype."_".PROC."\\*.dll",
|
||
|
$sDropDir."\\".$buildtype."\\bin\\".PROC);
|
||
|
|
||
|
# Copy map and symbol files
|
||
|
foreach $ext ('map', 'sym')
|
||
|
{
|
||
|
EchoedCopy($SAPIROOT."\\src\\tts\\msttsdrv\\".$buildtype."_".PROC."\\*.".$ext,
|
||
|
$sDropDir."\\".$buildtype."\\map_sym\\".PROC);
|
||
|
EchoedCopy($SAPIROOT."\\src\\sapi\\".$buildtype."_".PROC."\\*.".$ext,
|
||
|
$sDropDir."\\".$buildtype."\\map_sym\\".PROC);
|
||
|
}
|
||
|
|
||
|
# Copy the sample programs
|
||
|
foreach $dir (@lSampleExeDirs)
|
||
|
{
|
||
|
if (!IsDirectory($dir))
|
||
|
{
|
||
|
PrintL("Warning : Could not copy files from ".$dir."\n", PL_BIGWARNING);
|
||
|
PrintMsgBlock("directory does not exist, has it moved? (update \@lSampleExeDirs in buildall.pm)\n");
|
||
|
}
|
||
|
elsif (IsDirectory($dir."\\".$buildtype))
|
||
|
{
|
||
|
foreach $ext ('pdb', 'exe', 'dll')
|
||
|
{
|
||
|
EchoedCopy($dir."\\".$buildtype."\\*.".$ext,
|
||
|
$sDropDir."\\".$buildtype."\\bin\\".PROC);
|
||
|
}
|
||
|
}
|
||
|
elsif (IsDirectory($dir."\\".$buildtype."_".PROC))
|
||
|
{
|
||
|
foreach $ext ('pdb', 'exe', 'dll')
|
||
|
{
|
||
|
EchoedCopy($dir."\\".$buildtype."_".PROC."\\*.".$ext,
|
||
|
$sDropDir."\\".$buildtype."\\bin\\".PROC);
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
PrintL("Warning : Could not copy ".$dir."\\".$buildtype."\n", PL_BIGWARNING);
|
||
|
PrintMsgBlock("no builds exist in ".$buildtype." or ".$buildtype."_".PROC." (did it fail to build?)\n");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
# Copy the sources (x86 only)
|
||
|
EchoedCopy($SAPIROOT."\\sdk\\include\\*.c", $sDropDir."\\src\\include");
|
||
|
EchoedCopy($SAPIROOT."\\sdk\\include\\*.h*", $sDropDir."\\src\\include");
|
||
|
EchoedCopy($SAPIROOT."\\ddk\\include\\*.c", $sDropDir."\\src\\include");
|
||
|
EchoedCopy($SAPIROOT."\\ddk\\include\\*.h*", $sDropDir."\\src\\include");
|
||
|
EchoedCopy($SAPIROOT."\\sdk\\idl\\*.idl", $sDropDir."\\src\\include");
|
||
|
|
||
|
foreach $fileType ("*.d*", "*.c*", "*.h*", "*.r*", "*.bmp")
|
||
|
{
|
||
|
EchoedCopy($SAPIROOT."\\src\\sapi\\".$fileType, $sDropDir."\\src\\sapi");
|
||
|
}
|
||
|
|
||
|
foreach $fileType ("*.d*", "*.c*", "*.h*", "*.r*", "*.idl")
|
||
|
{
|
||
|
EchoedCopy($SAPIROOT."\\src\\tts\\msttsdrv\\".$fileType, $sDropDir."\\src\\tts\\msttsdrv");
|
||
|
}
|
||
|
|
||
|
# TODO: internal xcopy procedure
|
||
|
Execute("xcopy ".$SAPIROOT."\\src\\sr ".$sDropDir."\\src\\sr \/is \/exclude:".$SAPIROOT."\\build\\srex.txt");
|
||
|
|
||
|
# Copy the voice data
|
||
|
EchoedCopy($SAPIROOT."\\src\\tts\\msttsdrv\\voices\\*.vData", $sDropDir."\\src\\tts\\msttsdrv\\voices");
|
||
|
EchoedCopy($SAPIROOT."\\src\\tts\\msttsdrv\\voices\\*.vDef", $sDropDir."\\src\\tts\\msttsdrv\\voices");
|
||
|
|
||
|
END_DHTML_NODE();
|
||
|
}
|
||
|
|
||
|
PrintL("\n");
|
||
|
|
||
|
if ($bOfficialBuild)
|
||
|
{
|
||
|
# Update web page now in case BVTs hang. Then update Web Page again after BVTs run.
|
||
|
Execute($cmdWebUpdate);
|
||
|
}
|
||
|
|
||
|
########################################## RUN BVTS ##########################################
|
||
|
|
||
|
$g_nBVTPassedPercent = 0;
|
||
|
|
||
|
if (IsMemberOf("BVT", @lArgs) && !IsMemberOf("NOMSI", @lArgs) && !($bcStatus & BC_CABFAILED))
|
||
|
{
|
||
|
Execute("msiexec /x \"".$sMSIDir."\\release\\SDK\\Output\\DISK_1\\Sp5SDK.msi\" /qn"); # uninstall first
|
||
|
Execute("msiexec /i \"".$sMSIDir."\\release\\SDK\\Output\\DISK_1\\Sp5SDK.msi\" /qn"); # install
|
||
|
|
||
|
my ($startTime) = time();
|
||
|
Delnode($SAPIROOT."\\bvt");
|
||
|
EchoedMkdir($SAPIROOT."\\bvt");
|
||
|
PushD($SAPIROOT."\\bvt");
|
||
|
|
||
|
if (SetLocalGlobalsAndBegin("RunBVT",
|
||
|
"__IGNORE", "ALLCOMP", "LOCAL", "QUIET", $sBuildNumber, (IsMemberOf("MAIL", @lArgs) ? "FAILMAIL" : "")))
|
||
|
{
|
||
|
PrintL("BVTs report success (".$g_nBVTPassedPercent."%)", PL_GREEN | PL_MSG | PL_BOLD);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
PrintL("BVTs report failure (".$g_nBVTPassedPercent."%)", PL_BIGERROR);
|
||
|
}
|
||
|
PrintMsgBlock("<a href=\"\\\\b11nlbuilds\\sapi5\\Web.Files\\logs\\runbvt\\runbvt".PROC.$sBuildNumber.".html\">View BVT log<\/a>");
|
||
|
|
||
|
PopD();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$g_nBVTPassedPercent = "SKIPPED"; #NaN, cheap fix
|
||
|
}
|
||
|
|
||
|
CheckTypos();
|
||
|
|
||
|
EndBuild();
|
||
|
|
||
|
return(!($bcStatus & BC_FAILED));
|
||
|
}
|
||
|
|
||
|
|
||
|
$__BUILDALLPM = 1;
|
||
|
1;
|