28 |
28 |
29 my $sFbfProjectRepo = "\\\\bishare\\mercurial_development\\oss\\FCL\\interim\\fbf\\projects\\packages"; |
29 my $sFbfProjectRepo = "\\\\bishare\\mercurial_development\\oss\\FCL\\interim\\fbf\\projects\\packages"; |
30 my $sFbfProjectDir = ''; |
30 my $sFbfProjectDir = ''; |
31 my $sSubProject = ''; |
31 my $sSubProject = ''; |
32 my $sSubprojVariant = ''; |
32 my $sSubprojVariant = ''; |
33 my $bRVCT4 = 0; |
33 my $sSBSConfig = ''; |
34 #my $sSourcesFile = ''; |
34 #my $sSourcesFile = ''; |
35 #my $sModelFile = ''; |
35 #my $sModelFile = ''; |
36 my $sFbfConfigRepo="\\\\bishare\\mercurial_development\\oss\\FCL\\interim\\fbf\\configs\\default"; |
36 my $sFbfConfigRepo="\\\\bishare\\mercurial_development\\oss\\FCL\\interim\\fbf\\configs\\default"; |
37 my $sFbfConfigDir = ''; |
37 my $sFbfConfigDir = ''; |
38 my $nCmdLineNumber; |
38 my $nCmdLineNumber; |
46 'configdir=s' => \$sFbfConfigDir, |
46 'configdir=s' => \$sFbfConfigDir, |
47 'projectrepo=s' => \$sFbfProjectRepo, |
47 'projectrepo=s' => \$sFbfProjectRepo, |
48 'projectdir=s' => \$sFbfProjectDir, |
48 'projectdir=s' => \$sFbfProjectDir, |
49 'subproj=s' => \$sSubProject, |
49 'subproj=s' => \$sSubProject, |
50 'variant=s' => \$sSubprojVariant, |
50 'variant=s' => \$sSubprojVariant, |
51 'rvct4!' => \$bRVCT4, |
51 'sbsconfig!' => \$sSBSConfig, |
52 #'sources=s' => \$sSourcesFile, |
52 #'sources=s' => \$sSourcesFile, |
53 #'model=s' => \$sModelFile, |
53 #'model=s' => \$sModelFile, |
54 'number=s' => \$nCmdLineNumber, |
54 'number=s' => \$nCmdLineNumber, |
55 'tag=s' => \$sDiamondsTag, |
55 'tag=s' => \$sDiamondsTag, |
56 'hudson!' => \$bHudson, |
56 'hudson!' => \$bHudson, |
64 print "Usage: build_package.pl --subproj=RELPATH [OPTIONS]\n"; |
64 print "Usage: build_package.pl --subproj=RELPATH [OPTIONS]\n"; |
65 print " build_package.pl --projectrepo=REPO [OPTIONS]\n"; |
65 print " build_package.pl --projectrepo=REPO [OPTIONS]\n"; |
66 print "where OPTIONS are:\n"; |
66 print "where OPTIONS are:\n"; |
67 print "\t--subproj=RELPATH Select subproject located at RELPATH (relative to the root of the project repository)\n"; |
67 print "\t--subproj=RELPATH Select subproject located at RELPATH (relative to the root of the project repository)\n"; |
68 print "\t--variant=VARIANT If specified use sources_VARIANT.csv instead of sources.csv and add \"VARIANT\" as tag for this build\n"; |
68 print "\t--variant=VARIANT If specified use sources_VARIANT.csv instead of sources.csv and add \"VARIANT\" as tag for this build\n"; |
69 print "\t--rvct4 Enable build with RVCT4 on top of the other targets\n"; |
69 print "\t--sbsconfig=CONFIG Pass on CONFIG as configuration to SBS (can also be a comma separated list, e.g. 'armv5,winscw')\n"; |
70 print "\t--projectrepo=REPO[#REV] Use repository REPO at revision REV for the project (instead of \\\\bishare\\mercurial_internal\\fbf\\projects\\packages)\n"; |
70 print "\t--projectrepo=REPO[#REV] Use repository REPO at revision REV for the project (instead of \\\\bishare\\mercurial_internal\\fbf\\projects\\packages)\n"; |
71 print "\t--projectdir=DIR Use DIR location for the project (exclusive with --projectrepo).\n"; |
71 print "\t--projectdir=DIR Use DIR location for the project (exclusive with --projectrepo).\n"; |
72 #print "\t--sources=FILE ...\n"; |
72 #print "\t--sources=FILE ...\n"; |
73 #print "\t--model=FILE ...\n"; |
73 #print "\t--model=FILE ...\n"; |
74 print "\t--configrepo=REPO[#REV] Use repository REPO at revision REV for the config (instead of \\\\bishare\\mercurial_internal\\fbf\\config\\default)\n"; |
74 print "\t--configrepo=REPO[#REV] Use repository REPO at revision REV for the config (instead of \\\\bishare\\mercurial_internal\\fbf\\config\\default)\n"; |
228 |
228 |
229 my $sSubProjArg = ''; |
229 my $sSubProjArg = ''; |
230 $sSubProjArg = "-Dsf.subproject.path=$sSubProject" if ($sSubProject); |
230 $sSubProjArg = "-Dsf.subproject.path=$sSubProject" if ($sSubProject); |
231 my $sVariantArg = ''; |
231 my $sVariantArg = ''; |
232 $sVariantArg = "-Dsf.spec.sourcesync.sourcespecfile=sources_$sSubprojVariant.csv" if ($sSubprojVariant); |
232 $sVariantArg = "-Dsf.spec.sourcesync.sourcespecfile=sources_$sSubprojVariant.csv" if ($sSubprojVariant); |
233 my $sRVCT4Arg = ''; |
233 my $sSBSConfigArg = ''; |
234 $sRVCT4Arg = "-Dsf.spec.sbs.config=\"tools2_rel.whatlog,tools2_rel.whatlog.rvct4_0,winscw.whatlog,winscw.whatlog.rvct4_0,armv5.whatlog,armv5.whatlog.rvct4_0\"" if ($bRVCT4); |
234 $sSBSConfigArg = "-Dsf.spec.sbs.config=\"$sSBSConfig\"" if ($sSBSConfig); |
235 my $sAllTags = ''; |
235 my $sAllTags = ''; |
236 $sAllTags = $sDiamondsTag if ($sDiamondsTag); |
236 $sAllTags = $sDiamondsTag if ($sDiamondsTag); |
237 $sAllTags .= ',' if ($sAllTags and $sSubprojVariant); |
237 $sAllTags .= ',' if ($sAllTags and $sSubprojVariant); |
238 $sAllTags .= $sSubprojVariant if ($sSubprojVariant); |
238 $sAllTags .= $sSubprojVariant if ($sSubprojVariant); |
239 my $sTagsArg = ""; |
239 my $sTagsArg = ""; |
240 $sTagsArg = "-Dsf.spec.publish.diamonds.tag=\"$sAllTags\"" if ($sAllTags); |
240 $sTagsArg = "-Dsf.spec.publish.diamonds.tag=\"$sAllTags\"" if ($sAllTags); |
241 print("cd $sJobDir\\sf-config\n"); |
241 print("cd $sJobDir\\sf-config\n"); |
242 chdir("$sJobDir\\sf-config"); |
242 chdir("$sJobDir\\sf-config"); |
243 print "###### BUILD PREPARATION ######\n"; |
243 print "###### BUILD PREPARATION ######\n"; |
244 my $sPreparationCmd = "hlm sf-prep -Dsf.project.type=package $sSubProjArg -Dsf.spec.job.number=$nJobNumber -Dsf.spec.job.drive=$sDriveLetter: $sTagsArg $sNoPublishOpt $sJobRootDirArg $sHlmDefineOpt $sVariantArg $sRVCT4Arg"; |
244 my $sPreparationCmd = "hlm sf-prep -Dsf.project.type=package $sSubProjArg -Dsf.spec.job.number=$nJobNumber -Dsf.spec.job.drive=$sDriveLetter: $sTagsArg $sNoPublishOpt $sJobRootDirArg $sHlmDefineOpt $sVariantArg $sSBSConfigArg"; |
245 print("$sPreparationCmd\n"); |
245 print("$sPreparationCmd\n"); |
246 system($sPreparationCmd); |
246 system($sPreparationCmd); |
247 |
247 |
248 print "###### EXECUTE BUILD ######\n"; |
248 print "###### EXECUTE BUILD ######\n"; |
249 my $sBuildallCmd = "hlm sf-build-all -Dsf.project.type=package $sSubProjArg -Dsf.spec.job.number=$nJobNumber -Dsf.spec.job.drive=$sDriveLetter: $sTagsArg $sNoPublishOpt $sJobRootDirArg $sHlmDefineOpt $sVariantArg $sRVCT4Arg"; |
249 my $sBuildallCmd = "hlm sf-build-all -Dsf.project.type=package $sSubProjArg -Dsf.spec.job.number=$nJobNumber -Dsf.spec.job.drive=$sDriveLetter: $sTagsArg $sNoPublishOpt $sJobRootDirArg $sHlmDefineOpt $sVariantArg $sSBSConfigArg"; |
250 print("$sBuildallCmd\n"); |
250 print("$sBuildallCmd\n"); |
251 system($sBuildallCmd); |
251 system($sBuildallCmd); |
252 |
252 |
253 print("cd $sBOOTSTRAP_DIR\n"); |
253 print("cd $sBOOTSTRAP_DIR\n"); |
254 chdir("$sBOOTSTRAP_DIR"); |
254 chdir("$sBOOTSTRAP_DIR"); |