push (@::gMatchers, # Stage counter { id => "stage-counter", pattern => q{=== Stage=(\d+) started}, action => q{ incValue("stages"); updateSummary();}, }, { id => "phase-counter", pattern => q{=== BUILDING (.*)}, action => q{ incValue("phases"); updateSummary(); diagnostic("phase: $1", "info", -1, 1);}, }, { id => "id-counter", pattern => q{--- .* Executed ID }, action => q{ incValue("id"); updateSummary();}, }, { id => "emake-build-counter", pattern => q{Starting build: (\d)}, action => q{ incValue("emake-builds"); updateSummary();}, }, # 1 file(s) copied. { id => "file-copy-counter", pattern => q{(\d) file\(s\) copied\.}, action => q{ incValue("file-copies", $1); updateSummary();}, }, # make[3]: *** [\EPOC32\BUILD\src\cedar\generic\base\omap_samsung\variant\ESTARTFORS60\ARMV5\UDEB\estartForS60.o] Error 1 { id => "make-error", pattern => q{make.*: \*\*\* \[.*\] Error ([1234567890]+)}, action => q{ incValue("make-errors"); incValue("errors"); updateSummary(); diagnostic("make: Error $1", "error");}, }, # make: [EXPORT] Error 2 (ignored) { id => "make-nontarget-non1-error", pattern => q{make.*: \[.*\] Error ([1234567890]*[234567890])}, action => q{ incValue("make-ignored-errors");updateSummary(); diagnostic("make: Error $1", "info");}, }, # WARNING EC1137: Unrecognized option 'Files' in EMAKEFLAGS. { id => "emake-warning", pattern => q{WARNING EC(\d+):}, action => q{ incValue("emake-warnings"); incValue("warnings"); updateSummary(); diagnostic("emake: $1", "warning");}, }, #WARNING: Can't find following headers in User or System Include Paths # "shared_gpio.h" #(User Inc Paths "\src\cedar\generic\base\omap_samsung\assp\omap24xx\power\" "\src\cedar\generic\base\omap_samsung\VARIANT\power\") #Dependency list for "\src\cedar\generic\base\omap_samsung\assp\omap24xx\power\silicon_resources.cpp" may be incomplete { id => "makmake-headers-not-found", pattern => q{WARNING: Can't find following headers in }, action => q{ incValue("makmake-warnings"); incValue("warnings"); updateSummary(); diagnostic("makmake: Missing headers", "warning", 0, forwardTo(q{Dependency list for .* may be incomplete}));}, }, #"\src\cedar\generic\base\f32\srawfs\sr_rawfs.cpp", line 598: Warning: #940-D: missing return statement at end of non-void function "CRawFsFormatCB::RawFSMount" # } # ^ { id => "armcc-warning", pattern => q{".*", line (\d+): Warning: (.*): }, action => q{ incValue("warnings"); incValue("armcc-warnings"); updateSummary(); diagnostic("ARMCC: $2", "warning", 0, forwardTo(q{[ ]*\^$}));}, }, #"\src\cedar\generic\base\omap_samsung\variant\estart\estartfors60.cpp", line 21: Error: #5: cannot open source input file "LDSYMessageIDs.h": No such file or directory # #include # ^ { id => "armcc-error", pattern => q{".*", line (\d+): Error: (.*): }, action => q{ incValue("errors"); incValue("armcc-errors"); updateSummary(); diagnostic("ARMCC: $2", "error", 0, forwardTo(q{[ ]*\^$}));}, }, #Warning: there are 8 Unicode preferred character codes specified for which there are no conflicts to resolve { id => "cnvtool-unicode-preferred", pattern => q{Warning: there are 8 Unicode preferred character codes specified for which there are no conflicts to resolve}, action => q{ incValue("cnvtool-warnings"); incValue("warnings"); updateSummary(); diagnostic("cnvtool: Unicode warning", "warning");}, }, #Warning: the specified start of the Unicode range 0x00a2-0xffe5 could actually be 0x00a7 { id => "cnvtool-unicode-start-range", pattern => q{Warning: the specified start of the Unicode range}, action => q{ incValue("cnvtool-warnings"); incValue("warnings"); updateSummary(); diagnostic("cnvtool: Unicode warning", "warning");}, }, ); $::gMatcherGroups{'arm'} = ["armcc-error", "armcc-warning"]; $::gMatcherGroups{'SymbianOS-tools-warnings'} = ["armcc-warning", "cnvtool-unicode-preferred", "cnvtool-unicode-start-range", "makmake-headers-not-found"]; $::gMatcherGroups{'SymbianOS-tools-errors'} = ["armcc-error"]; $::gMatcherGroups{'SymbianOS'} = ["stage-counter", "phase-counter", "id-counter", "emake-build-counter", "emake-warning", "file-copy-counter", "make-error", "make-nontarget-non1-error"]; sub updateSummary() { my $emakebuildsString = (defined $::gProperties{"emake-builds"}) ? " (" . $::gProperties{"emake-builds"} . " with emake) " : ""; my $errorsString = (defined $::gProperties{"errors"}) ? $::gProperties{"errors"} . " total errors\n" : ""; my $armccErrorsString = (defined $::gProperties{"armcc-errors"}) ? $::gProperties{"armcc-errors"} . " armcc errors\n" : ""; my $makeErrorsString = (defined $::gProperties{"make-errors"}) ? $::gProperties{"make-errors"} . " errors reported by make\n" : ""; my $makeIgnoredErrorsString = (defined $::gProperties{"make-ignored-errors"}) ? $::gProperties{"make-ignored-errors"} . " ignored errors reported by make\n" : ""; my $warningsString = (defined $::gProperties{"warnings"}) ? $::gProperties{"warnings"} . " total warnings\n" : ""; my $armccWarningsString = (defined $::gProperties{"armcc-warnings"}) ? $::gProperties{"armcc-warnings"} . " armcc warnings\n" : ""; my $makmakeWarningsString = (defined $::gProperties{"makmake-warnings"}) ? $::gProperties{"makmake-warnings"} . " makmake warnings\n" : ""; my $phasesString = (defined $::gProperties{"phases"}) ? "Built " . $::gProperties{"phases"} . " phases" . $emakebuildsString . "\n" : ""; my $stagesString = (defined $::gProperties{"stages"}) ? "Processed " . $::gProperties{"stages"} . " stages\n" : ""; my $idString = (defined $::gProperties{"id"}) ? "Executed " . $::gProperties{"id"} . " ids\n" : ""; my $filecopiesString = (defined $::gProperties{"file-copies"}) ? $::gProperties{"file-copies"} . " files copied\n" : ""; setProperty ("summary", $errorsString . $armccErrorsString . $makeErrorsString . $makeIgnoredErrorsString . $warningsString . $armccWarningsString . $phasesString . $stagesString . $idString . $filecopiesString); }