# HG changeset patch
# User raptorbot
# Date 1271442759 -3600
# Node ID c3bf95590c949ab4e263574bdba3f7d495989a97
# Parent 5698eefedfc825e897a1693a6a46dc7890818bb3# Parent 6325833fc6794ad8e2ca920ef8786bc0a8dae8e4
Merge default with raptor 2.13.0 stable
diff -r 6325833fc679 -r c3bf95590c94 .hgtags
--- a/.hgtags Wed Apr 14 18:01:20 2010 +0100
+++ b/.hgtags Fri Apr 16 19:32:39 2010 +0100
@@ -3,3 +3,7 @@
007900c31eef0363e705cf15d131740d4eeb6208 stable
007900c31eef0363e705cf15d131740d4eeb6208 stable
976aca38ffe5ce30d7753ea77a8de44e5cbd0dc8 stable
+976aca38ffe5ce30d7753ea77a8de44e5cbd0dc8 stable
+7006bcce52990f33d0c20c51bebc2b58ed36db60 stable
+7006bcce52990f33d0c20c51bebc2b58ed36db60 stable
+679d97112f986e16e9dbed3f7a016388d42e04f8 stable
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/RELEASE-NOTES.html
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/RELEASE-NOTES.html Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,890 @@
+
+
+Release Notes for Symbian Build System v2
+
+
+
+Release Notes for Symbian Build System v2
+
+version 2.13.0
+
+New Features
+
+
+Defect Fixes
+
+
+- DPDEF143018 - Raptor doesn't handle spaces in GCCE installation directory correctly
+- DPDEF143101 - GCC-E isn't tested as part of the tool checking mechanism
+- DPDEF141195 - Raptor doesn't handle spaces in tool paths
+- SF Bug 2172 - [Raptor] Resource builds warn on encountering trigraph-like strings
+- SF Bug 2308 - [Raptor] PLUGIN3 TARGETTYPEs don't set resource output offsets correctly
+- Fix: in copylogfromannofile mode, ensure that the build id and duration are included in the log. These are not critical but are useful
+- Fix: remove unnecessary empty lines in log output in copylogfromannofile mode
+- SF Bug 1939 - [Raptor] PAGED keyword in MMP files should imply byte pair compressed
+- DPDEF144648 - Raptor failed to build tools_deb objects under Windows XP
+- SF Bug 2134 - [Raptor] Raptor does not pass overridden make variables into its makefiles
+- Fix : do not allow data to be paged implicitly
+- Fix : sort build configurations by name for metadata preprocessing
+- SF Bug 2302 - sbs_filter refers to python.exe in win32/python264/
+- Fix : ensure that FLMDEBUG is empty by default
+
+
+
+
+
+version 2.12.5
+
+Defect Fixes:
+- Fix: Workaround for emake engine log corruption when clockskew errors occur (annofile2log).
+ Allow Raptor to obtain log from emake annotation file where it is uncorrupted. A new
+ Make engine option "copylogfromannofile" enables/disables this mode for emake. If this option is disabled
+ or if no annotation file is specified for the build then Raptor reads logs directly as normal.
+- SF Bug 2125 - [Raptor] - tracecompiler what output incorrect if mmp basename contains '.' e.g. fred.prd.mmp
+- SF Bug 2191 - [Raptor] - When forcesuccess is enabled, exit status for a failed recipe is "retry" but should be "failed"
+- Fix: extend tracecompiler tests to Linux
+- Fix: Amendment to SF Bug 1511 fix - removal of blanked DEFFILE keyword from e32abiv2ani.flm
+- Fix: improve robustness to bad -c options
+
+
+version 2.12.4
+
+Defect Fixes:
+- SF Bug 2113 - [Raptor] what/check filters can assign files to the wrong components
+- SF Bug 2081 - [Raptor] - Exported file executable permissions not maintained (linux)
+- Fix: host attribute in recipes was blank in windows, windows cluster builds.
+- SF Bug 1912 - Raptor should take python from the path [if not set with SBS_PYTHON or bundled with Raptor]
+- SF Bug 2042 - [Raptor] component field empty in recipe
+- SF Bug 2007 - [Raptor] GCCE 4.4.1 builds require 4.3.1 and 4.3.2 SBS_GCCE???BIN env vars etc.
+- SF Bug 2000 - [Raptor] Talon fails when installed in a path containing the string '-c' (windows only)
+- SF Bug 1861 - [Raptor] More helpful console message in case of timeouts
+- SF Bug 1571 - Raptor cannot report error or warning message in wrong implib project
+- DPDEF142718 Incremental rebuild fails if dependent files deleted
+ --no-depend-generate added to suppress the generation and processing of dependency files
+ .DEFAULT target introduced for all non --no-depend-generate and/or --no-depend-include builds
+- Add support for PLUGIN3 TARGETTYPEs
+- Fixing logfile corruption for large GCCXML builds by suppressing zip output
+- Stop copying .bmp files to epoc32/localisation and fix the "what" reporting
+
+
+version 2.12.3
+
+Defect Fixes:
+- Don't print trace "what" information if we do not run the trace compiler.
+
+
+version 2.12.2
+
+Defect Fixes:
+- SF Bug 1569 - excessive recompilation in incremental tracecompiler builds
+- Better error messages for make-engine selection.
+ e.g. "sbs -e arm" will now produce a useful error message rather than
+ a traceback. "arm" is a real variant but it's not a make engine. In
+ the past sbs would have tried to use it and would have failed with a
+ complicated traceback. Also doesn't traceback for non-existent make engines.
+- sbs_filter chose wrong embedded default python version. Set to 2.6.4 now.
+- FilterCheck did not check files when run from sbs_filter
+- Remove old references to python 2.5.2
+- Escape filenames with special XML characters inside <member> tags
+
+
+version 2.12.1
+
+Defect Fixes:
+- SF Bug 1494 - sbs --what does not report Trace Compiler output
+- sbs -c winscw.tracecompiler uses wrong UID and doesn't generate traces
+- SF Bug 1519 - Raptor output files may contain unescaped left angle brackets as XML character data
+
+
+version 2.12.0
+
+New Features:
+- New 'Patchable Constants' target type: TARGETTYPE pdll
+- Combine Linking and Postlinking into a single step - performance improvement.
+- Support exit codes from next version of the trace compiler which will issue them
+- New sbs_filter script and batchfile to ease the use of sbs_filter.py.
+ Allows filters to be executed over a log after a build has been done.
+ e.g.
+
+ sbs_filter --filters=FilterWhat < logfile.log
+
+ (This runs a "--what" without regenerating any makefiles or reparsing
+ the matadata.)
+- New (beta) FilterWhatComp filter. Simulates abld log output for
+ use with parse_what.pl for packing up zips by component. Whatcomp output
+ uses the incoming epocroot value. i.e. if epocroot is relative then so is
+ the what output. e.g. if EPOCROOT=\ then the output will be of the form:
+
+ "\epoc32\release\armv5\...."
+
+ If it's "..\myepocroot" then the output will be:
+
+ "..\myepocroot\epoc32\release\armv5".
+
+ If it's absolute then the what output will also be absolute.
+- New FilterCheck filter. This can be used with sbs_filter to perform the
+ equivalent of --check using the log output from a build. It is more
+ efficient than --check because the metadata is not parsed and no makefiles
+ are generated. e.g.
+
+ sbs_filter --filters=FilterCheck < logfile.log
+
+- New (beta) graphical build visualisation tool (bin/timelines.py).
+ Requires pygame and PyOpenGL. e.g.
+
+ python timelines.py < filename.log
+
+- New (beta) log analyser (recipestats.py) for recording the total time spent
+ in each type of recipe in the build. e.g.
+
+ python recipestats.py < filename.log > stats.csv
+
+ The output is in CSV format.
+
+Defect Fixes:
+- fix for ARM9E + ARMV5 pre-processing confusion
+- SF bug 1606: template_ext.flm wrongly creates dependencies to OTHER_CFG targets
+- SF bug 1570: Adding then removing a capability can produce incorrect
+ result: e.g. ALL TCB -TCB becomes ALL -TCB but it should be just ALL
+
+Other Changes:
+- Default to using Python 2.6.4 on windows (no change in compatibility with
+ older versions of Python).
+
+
+version 2.11.3
+
+Defect Fixes:
+DPDEF142616 Raptor: Variables can be set unnecessarily prior to TEM execution
+Fix for: filter terminal flags up when recipe truncated
+SF bug 170: invalid XML output when a zip file is missing
+SF bug 518: unpaged keyword in mmp files is not parsed properly
+
+
+version 2.11.2
+
+Defect Fixes:
+DPDEF143176 raptor does not respect STDCPP mmp file keyword
+
+
+version 2.11.1
+
+Other Changes:
+GCCE 4.4.1 variant added
+Restored python 2.4 compatibility
+Minor TOOLS2 --what corrections
+Retain Linux execute permissions on unpacked :zip archives
+Prototype of extended timing API added
+Option --noexport added for parallel parsing
+Made --noexport and --export-only mutually exclusive
+SBS_PYTHONPATH insulates sbs from the global PYTHONPATH
+Removed spurious bracket in e32abiv2textnotifier2
+More robust to multiple import library definitions
+
+
+version 2.11.0
+
+New Features:
+Parallel parsing of meta-data
+New keyword APPLY for MMP files
+SAX filter plugin base-class
+
+Defect Fixes:
+DPDEF142895 Raptor does the wrong thing with the ARMFPU keyword
+DPDEF143020 The savespace variant overrides elf2e32's return code
+DPDEF143046 BYTEPAIRCOMPRESSTARGET and INFLATECOMPRESSTARGET not in FLM interface
+Improved error reporting for --check and --what
+
+
+version 2.10.2
+
+Defect Fixes:
+DPDEF142958 regression - ARMV6 and __ARMV6__ are not defined for armv6_urel builds
+DPDEF142730 Raptor crashes with improper VERSION syntax
+DPDEF142928 RVCT 4.0: Linker error when the MMP files modifies the --cpu option
+
+
+version 2.10.1
+
+Defect Fixes:
+DPDEF142666 Cannot remove frozen exports from EABI DEF file in SBSv2
+DPDEF142745 OPTION_REPLACE problems with RVCT 4.0
+DPDEF140622 feature variant configuration file with non exist file set to 'FEATURELISTFILES'
+DPDEF141195 Raptor doesn't handle spaces in tool paths
+DPDEF142616 Raptor: Variables can be set unnecessarily prior to TEM execution
+DPDEF142455 Disable warning L6780W for certain components
+DPDEF142447 GCC-E: Raptor compiles CIA files as Thumb
+DPDEF142448 GCC-E: Raptor tries to build ABIV1 import libraries
+DPDEF142451 GCC-E: Raptor treats C files as C++ files.
+
+
+version 2.10.0
+
+New Features:
+Support for GCCE compiler
+More efficient Feature Variation support
+
+
+version 2.9.3
+
+Defect Fixes:
+DPDEF142166 Raptor sometimes invokes checklib.exe with incorrect parameters
+DPDEF141354 EXPORTUNFROZEN fails in target builds if .savespace is applied
+DPDEF141533 Inconsistent log output
+DPDEF141604 file winscw.auto.bat is released two times
+DPDEF141787 Raptor treats EFREEZE info message as warnings
+
+Other Changes:
+talon can read commands from a temporary file as well as with -c
+
+
+version 2.9.2
+
+Defect Fixes:
+DPDEF141531 Incorrect RVCT variables passed to TEM
+DPDEF141837 Some problems with dependency (.d) files
+DEF140258 Aborting SBSv2 mid-build often leads to corrupt .d files which prevent rebuilds
+DPDEF142049 Garbage in the Raptor log file
+DPDEF141954 Raptor: "tools" config static libraries can have incorrect compilation macros
+DPDEF141974 Raptor: "tools" builds can fail when done in combination with "tools2" builds
+
+Other Changes:
+Static libraries cannot be feature variant
+Option --no-depend-include for very big builds
+
+
+version 2.9.1
+
+Defect Fixes:
+DPDEF141503 RMTPClient::StartTransport Panic when using emulated test tranport plugin
+DPDEF141688 ARMV6 builds with SBSv2 have problems with missing DEF files
+
+
+version 2.9.0
+
+New Features:
+Talon shell to reduce memory usage and improve stability.
+Support for RVCT 4.0 advanced features.
+Optionally use SBS_CYGWIN, SBS_MINGW and SBS_PYTHON to locate tools.
+Makefile to build host tools on Linux.
+Single-file compilation for IDE integration.
+Splitlog and CheckSource filters.
+
+Defect Fixes:
+DPDEF141523 Raptor links kernel-side components to scppnwdl.dso
+DPDEF141418 Raptor turns echo on
+DPDEF141495 Raptor doesn't deal correctly with SOURECEPATH beginning with '/'
+DPDEF141388 raptor inserts epoc32\include at start of systeminclude path
+
+
+version 2.8.6
+
+DPDEF135505 Some TEMs have race conditions for simultaneous urel and udeb. cp fails.
+DPDEF141498 If make crashes, Raptor exits with 0 errors
+DPDEF141071 Raptor: GCCXML build does not support the VAR2 TARGETTYPE
+DPDEF140816 STDCPP keyword in mmp file not interpreted by gccxml tool chain
+DPDEF137727 [Raptor Rollout] Raptor fails to build certain .mbg and .rsg files
+DPDEF137494 SBSv2: preprocessor warnings and errors might cause invalid XML in log
+DPDEF140731 Missing dependency files when building from clean
+DPDEF140540 [System Build]: Changes of Raptor cause 94_331 build failed
+DPDEF141129 raptor generates unknown origin file
+
+Other Changes:
+Fix to support trace compiler switch
+Better message for duplicate objects, states which file overrides which.
+Refactor to avoid "defects" of missing OS variants.
+
+
+version 2.8.5
+
+Defect Fixes:
+DPDEF141102 SBS doesn't set the paging attribute of excutables correctly
+DPDEF140731 Missing dependency files when building from clean
+DPDEF135620 Workaround for broken static libraries
+
+
+version 2.8.4
+
+Defect Fixes:
+DPDEF140839 RComp crashes if it's built with sbs
+DPDEF140929 OPTION GCCE in MMP files generates a build warning
+DPDEF135436 SBSv2 - Python traceback when illegal characters appear on command line
+
+
+version 2.8.3
+
+Defect Fixes:
+DPDEF139904 Raptor: .def file FREEZE attempted for ARMV5 when it shouldn't be
+DPDEF140589 Raptor: .def file FREEZE attempted for WINSCW when it shouldn't be
+DPDEF140456 Raptor build error with -c tools_rel
+DPDEF139759 Raptor warning regarding EXPORTSUNFROZEN is ambiguous
+DPDEF135436 SBSv2 - Python traceback when illegal characters appear on command line
+INC140156 SBSv2 crashes when build QtWebkit for ARMV5
+
+Other Changes:
+Add <info> to show which variant.hrh file is used.
+Replaced the corrupted awk.exe in cygwin distro.
+Fix previous trace compiler auto run mechanism.
+ROMFILE improvements.
+
+
+version 2.8.2
+
+Defect Fixes:
+DPDEF140540 [System Build]: Changes of Raptor cause 94_331 build failed
+
+Other Changes:
+Tolerate XML schema 1_0 files where possible.
+Treat system definition schema 1.[3-9] files the same as schema 1.4 files.
+Remove checksource and its python site-packages.
+
+
+version 2.8.1
+
+Defect Fixes:
+DPDEF140165 SBS error when creating info.xml on component base_omaph2
+DPDEF132996 Location of generated auto.bat files is inconsistent
+
+Other Changes:
+Feature variant "ln -f" fails intermittently in parallel builds.
+Traceback when "group" elements are redefined in XML.
+Trace compiler should run automatically if a trace path exists.
+Need a workaround for Carbide Missing SDK problem.
+
+
+version 2.8.0
+
+New Features:
+XML schema 2.0 with new alias and group elements.
+
+Removed:
+XML config element (use var instead).
+XML .first and .last mechanism (use alias or group instead).
+
+Defect Fixes:
+DPDEF140082 SBS cause env to dirty state
+DPDEF138565 SBSV2 doesn't define the correct macros for ARMV6
+DPDEF139950 SBSv2 Filter Handling not Robust enough - bad filters stop build.
+DEF139686 [TCL Build] coredumpserver compile warnings in DP00458
+
+
+version 2.7.2
+
+Defect Fixes:
+DPDEF139420 Raptor config does not correctly handle mifconv causing resource build errors
+DPDEF138679 Raptor does not create a DEFFILE when building for winscw_urel
+DPDEF139692 SBSV2: 'virtual memory exhausted' when building multiple variants
+DPDEF136321 SBSv2: Zip exports not cleaned
+INC139622 OPTION_REPLACE does not work properly in SBSv2
+
+Other Changes:
+Added utility.prebuilt FLM.
+
+
+version 2.7.1
+
+Defect Fixes:
+DPDEF138366 [T15379] Raptor raise some warnings when build Coredumpserver
+DPDEF139405 SBSV2: Trace compilation fails with large numbers of files.
+DPDEF139572 SBSV2: Changes to '--cpu' option syntax breaks existing MMP files.
+DPDEF139456 Toolcheck file is not created if EPOCROOT is \
+DPDEF133766 Poor SBSv2 reallyclean performance
+DPDEF135780 SBSV2: REALLYCLEAN is not cleaning all files
+
+
+version 2.7.0
+
+New Features:
+DS.1744 Recognize LINKEROPTION in MMP file
+DS.1744 Compiled objects on local filesystem (SBS_BUILD_DIR)
+
+Partial Deliveries:
+DS.1744 CheckSource in Raptor
+
+Defect Fixes:
+DPDEF138293 Carbide: Raptor doesn't resolve variant.cfg entries starting with "\" correctly
+
+
+version 2.6.5
+
+Defect Fixes:
+DPDEF138930 Raptor needs to change to match new trace compiler interface
+
+
+version 2.6.4
+
+Defect Fixes:
+DPDEF138527 [TCL Build] Miss tracecompiler.mk and exclude group for Raptor export
+DPDEF138484 Raptor uses wrong guard causing trace compiler ignores some projects.
+DPDEF138720 BV product folders have missing map files
+DPDEF138721 Raptor uses wrong lib when mmp keyword FIRSTLIB presents.
+DPDEF138053 SBSv2: tools platform: tools not installed by the time they need to be used.
+DPDEF138164 Carbide: Raptor crashes on unrecognised buildinfo.txt content
+DPDEF138296 SBSV2 disables all TOOLS2 compiler warnings
+DPDEF138329 Raptor generates marker file for trace compiler when it's not done
+DPDEF138352 SBSv2: rollout - unsplit EC makefiles not generating correct deps 4 missing .mbg
+DPDEF138480 SBSv2: rollout. Created files sometimes have insufficient permissions on Windows
+DPDEF137511 SBSv2 doesn't behave correctly with the default paging policy
+
+
+version 2.6.3
+
+Defect Fixes:
+DPDEF133508 Number of errors is counted wrong
+DPDEF138098 UID issue in Trace Compiler for Raptor
+DPDEF138296 SBSV2 disables all TOOLS2 compiler warnings
+
+
+version 2.6.2
+
+Defect Fixes:
+DPDEF135330 Raptor Rollout: bangalore messaging winscw udeb test code
+DPDEF137726 Missing mscvr_readme.txt from the SBSv2 drop
+DPDEF137739 SBSv2: rollout - .cia object files can conflict with .cpp object files
+
+
+version 2.6.1
+
+Defect Fixes:
+DPDEF137239 raptor does not include the msvcr71 runtime library
+DPDEF137489 BV builds try and write generated .s files in the wrong directory
+
+
+version 2.6.0
+
+New Features:
+DS.1542 SBSv2 generates Open System Trace dictionaries
+DS.1629 Resource autodependencies
+
+
+version 2.5.5
+
+Defect Fixes:
+DPINC137379 Emulator: Cursor is missing on emulator buttons
+DPDEF133640 SBSv2 usrt3_1.lib is missing from epocroot/epoc32/release/armv5/
+
+
+version 2.5.4
+
+Defect Fixes:
+DPDEF136719 Raptor: sbsv2cache.py cache file generation fails with very large log files
+DPDEF136715 On Linux the shipped python 2.5.2 is not found
+DPDEF132996 SBSv2 doesn't generate AUTO.BAT file
+DPDEF136382 SBSv2: explicit dll versioning not supported on arm platforms
+DPDEF135843 [Raptor Rollout] Raptor does not support OPTION_REPLACE ARMASM/OPTION ARMASM
+DPDEF136693 makesis fails when multiple instances are run concurrently with the same target
+
+
+version 2.5.3
+
+Defect Fixes:
+DPDEF136162 Raptor: resource dependencies require metadata workarounds
+DPDEF128288 SBSv2 does not fully support build target customization.
+DPDEF132880 BV builds cannot find system static libraries
+DPDEF133835 SBSv2 cannot build for ARMV6 or ARM9E
+
+
+version 2.5.2
+
+Defect Fixes:
+DPDEF135983 cpp-raptor crashes if source code contains builtin macro __FILE__
+DPDEF133808 Raptor does not support OPTION --no_rtti with mixed assembly/C++ projects
+DPDEF135577 SBSv2: rollout - TOOLS/TOOLS2 exes sometimes not executable or writable.
+
+
+version 2.5.1
+
+Defect Fixes:
+DPDEF135258 createvmap.py script can hang in BV builds
+DPDEF135385 warnings in RunModeDebugger in M04816vFuture with ARMV7
+
+
+version 2.5.0
+
+New Features:
+DS.1568 User defined configuration file location(s)
+
+
+version 2.4.3
+
+Defect Fixes:
+DPDEF134322 SBSV2 uses the wrong library when building STDCPP targets
+DPDEF132923 SBSv2 freeze don't add Vtable and RTTI information into def file for arm dll
+DPDEF133775 SBSv2: ARMFPU is not passed to compiler
+DPDEF134023 case inconsistency with libOpenVG.lib
+
+Other Changes:
+MINOR_CHANGE updated all copyright notices for SF delivery
+MINOR_CHANGE added vtb91sf variant for SF Timebox 9:1 builds
+MINOR_CHANGE added vtb92sf variant for SF Timebox 9:2 builds
+
+
+version 2.4.2
+
+Defect Fixes:
+DPDEF133820 Raptor Rollout: EXPORTUNFROZEN processing incorrect in ARMV5 builds
+DPDEF132033 Raptor picks up the wrong bld.inf macros when building for RVCT 3.1
+DPDEF133772 SBSv2: console log includes some winscw warnings that should be suppressed
+
+
+version 2.4.1
+
+Defect Fixes:
+DPDEF133639 Raptor Rollout:TEF test server doesn't start under SBSv2 - OK with abld
+DEF133255 [System Build]: Error in compiling NaviEngine Unistore on ARMV7 M04816 vFuture
+DPDEF127973 Freeze fails with SBSv2 under some environments
+
+
+version 2.4.0
+
+New Features:
+DS.1475 Pluggable Log Summariser
+DS.1476 Use FLMs from the source tree
+
+Defect Fixes:
+DPDEF133417 SBSv2: tmp mounting errors on startup
+
+
+version 2.3.3
+
+Defect Fixes:
+DPDEF130261 sbs does not support explicit option to version keyword
+DPDEF130598 sbs does not provide debug and nodebug variants
+DPDEF131630 Raptor smoke tests break when EPOCROOT=\ on Windows
+DPDEF132898 no TEM nbl2.lib dependencies for armv7
+DPDEF133035 SBSv2 - Tools2 build does not include -m32 option. Stlport flm also doesn't.
+DPDEF133176 SBSv2 ignores compillation error for "unidentified identifier" for winscw build
+
+
+version 2.3.2
+
+Other Changes:
+MINOR_CHANGE added vtb92 variant for Timebox 9:2 builds
+
+
+version 2.3.1
+
+Defect Fixes:
+DPDEF132374 SBSv2: Directory creation can fail leading to build errors
+DPDEF132070 SBSv2: stlport 5.2 build fails - library generated to wrong directory
+DPDEF128378 SBSv2 help for global targets only shown when a target is given
+DPDEF129634 ALWAYS_BUILD_AS_ARM does not suppress __MARM_THUMB__ with SBSv2
+
+
+version 2.3.0
+
+New Features:
+DS.1424 Support for ARMV5SMP platform
+
+Defect Fixes:
+DPDEF129804 SBSv2 crashes when there are double \\ in prj_mmpfiles in bld.inf
+DPDEF130892 SBSv2: Reallyclean fails on TEM files
+DPDEF131619 SBSv2: ABIv1 .lib files aren't generated for -c armv5 -c armv5.smp
+DPDEF131637 SBSv2: stlport can fail to build under Cygwin - "/tmp no such directory"
+DPDEF131891 [System Build]: Errors in GT stage in Build M04774 vfuture
+
+
+version 2.2.9
+
+Defect Fixes:
+DPDEF129804 SBSv2 crashes when there are double \\ in prj_mmpfiles in bld.inf
+DPDEF131637 SBSv2: stlport can fail to build under Cygwin - "/tmp no such directory"
+DPDEF130892 SBSv2: Reallyclean fails on TEM files
+
+
+version 2.2.8
+
+Defect Fixes:
+DPDEF130569 .lib files for SSM targets build with different name compared to abld
+DPDEF130571 libxml2 component contains GCCXML build errors
+DPDEF131312 SBSv2 - DEBUGGABLE_UDEBONLY not supported by SBSv2 (Raptor)
+
+
+version 2.2.7
+
+Defect Fixes:
+DPDEF130533 SBSv2 fails to run when installed from SITK
+DPDEF130452 Some rcomp warnings need to be disabled
+DPDEF130286 SBSv2: sbs freezes during CLEAN and REALLYCLEAN operations.
+DPDEF127973 Freeze fails with SBSv2 under some environments
+DPDEF128455 Error during freeze with SBSv2
+DPDEF127149 SBSv2 TEM/extension makefile build doesn't support the .savespace variant
+
+
+version 2.2.6
+
+Defect Fixes:
+DPDEF130008 SBSv2 should recognize these new keywords: SMPSAFE, PAGEDCODE, PAGEDDATA, UN...
+DPDEF127887 Current directory wrong when executing extension makefiles in SBSv2
+DPDEF128915 CCheckEnv ERROR: CBRPatch: Absent file
+DPDEF127675 Raptor does not process stringtables correctly when HEADERONLY is on
+DPDEF127878 give wrong mmp filename for -p option should cause error in SBSv2
+
+Other Changes:
+Uses cygwin instead of msys for improved stability.
+Includes python 2.5.2 instead of using py2exe.
+
+
+version 2.2.5
+
+Defect Fixes:
+DEF127329 OMAP H4 Unistore2 Failure in Raptor 9.5 GT build
+DPDEF128632 SBSv2 : bld.inf ':zip' exports don't maintain timestamps, with an e32 impact
+DPDEF127399 SBSv2 -p [filename].mmp options also builds .mk files
+
+
+version 2.2.4
+
+Defect Fixes:
+DPDEF129187 SBSv2: ABIv1 .lib files are required (again)
+
+
+version 2.2.3
+
+Defect Fixes:
+DPDEF128916 C Standard Library failed on cia2cpp2o armv5 with 1
+DPDEF128503 sbs 2.2.0 produce malformed xml log on Linux with pvmgmake
+DPDEF127604 SIS registry panics at startup on emulator if SWI is built with SBS
+DPDEF128690 SBSv2 generates error when using emake on REALLYCLEAN target
+
+Other Changes:
+MINOR_CHANGE log summariser updated to deal with errors starting "make.exe: ***"
+
+
+version 2.2.2
+
+Defect Fixes:
+DPDEF127497 SBSv2 does not clean when -k or other switch is used with abld wrapper
+DPDEF127829 'cannot open Meta file' warning with SBSv2
+DPDEF127371 abld -v not working correctly through sbsv2
+DPDEF127555 SBSv2 doesn't do "romfile"
+
+Other Changes:
+MINOR_CHANGE made the default number of jobs 4
+
+
+version 2.2.1
+
+Defect Fixes:
+DPDEF128498 SBS creates paths with extra slashes which can cause problems
+
+Other Changes:
+MINOR_CHANGE Removed temporary ABIv1 .lib generation
+MINOR_CHANGE Added monty test data to the test folder
+
+
+version 2.2.0
+
+New Features:
+DS.1347 SBSv2 Compiler Selection
+DS.1348 SBSv2 allow mixed slashes
+
+Defect Fixes:
+DPDEF127904 SBSv2 : recent installdefaultcommdb has broken the 9.4 build
+DPDEF128022 SBSv2: Unrecognised Keyword ['romtarget some_file.dll'] warnings
+DPDEF127815 SBSv2: PAGED and EPOCCALLDLLENTRYPOINTS keywords not supported
+DPDEF127890 SBSv2: TARGETPATH in mmps (also resources, bitmaps) must cope with backslashes
+DPDEF128229 SBSv2: some command invocations can fail, but could be "re-tried"
+
+
+version 2.1.10
+
+Defect Fixes:
+DPDEF126662 Intermittent networking_dhcp compilation failure in Raptor build GT phase
+DPDEF127799 SBSv2: zip and unzip commands not found in some builds
+DPDEF127665 ARMV7 libraries have wrong link order in Raptor
+
+
+version 2.1.9
+
+Defect Fixes:
+DPDEF127498 SBSv2: importlibversioned_abiv1 intermittently fails in ARMV5 builds
+DPDEF125483 CDB breaks due to Attribute values not matching expected values
+DPDEF126335 Intermittent GT errors due to "make" not being found on the PATH
+DPDEF127562 SBSv2 will not unzip the same file into more than one location
+DPDEF127626 SBSv2: sed version on windows is out of date
+
+
+version 2.1.8
+
+Defect Fixes:
+DPDEF125478 CDB breaks caused by file path/name mismatch
+DPDEF125145 Incorrect file access permissions for sbs v2.0.14 in Linux distribution
+DPDEF126126 Intermittent "Segmentation fault" error in Raptor GT phase
+DPDEF124836 SBSv2 cannot build just a single .mmp file from a bld.inf file
+DPDEF126675 Performance regression in SBSv2 python frontend caused by regex usage,
+DPDEF126790 groupin10 is not used in artarget_func
+DPDEF125639 TEM variables are reported incorrectly when building TEM for ARMV7
+DPDEF124273 abld help is ugly and hard to read
+DPDEF126614 "Virtual memory exhausted. Stop" error when building with SBSV2
+
+
+version 2.1.7
+
+Defect Fixes:
+DPDEF124290 SBS -e pvmgmake -j 12 on Linux produces malformed xml log files
+DPDEF126241 SBSv2 : SECURE_DATA error when building uiklaf toolkit in TechView
+DPDEF126328 Performance regression and related excessive memory usage in daily Raptor builds
+
+
+version 2.1.6
+
+Defect Fixes:
+DPDEF125740 SBSv2: Builds can hang during the GT stage in Windows builds when using "-j x"
+DPDEF125145 Incorrect file access permissions for sbs v2.0.14 in Linux distribution
+
+
+version 2.1.5
+
+Defect Fixes:
+DPDEF125812 There is no user created init.xml configuration file
+
+
+version 2.1.4
+
+Defect Fixes:
+DPDEF124680 Raptor builds hang at "tools2" compilation phase
+DPDEF125304 Raptor crashes when running abld
+
+
+version 2.1.3
+
+Defect Fixes:
+DPDEF125394 sbs_2.1.0_(RC1) Building complete OS gives armasm errors on Windows
+DPDEF122556 GT0367: CLEANEXPORT target is not cleaning files with a space in them
+DPDEF124691 Raptor should ignore the new SMPSAFE keyword
+DPDEF125031 SBSv2 Stringtable build fails when EXPORTPATH specified
+
+
+version 2.1.2
+
+Change Requests:
+CR1413 Support for different toolchains to be called by SBSv1 and SBSv2
+
+
+version 2.1.1
+
+Defect Fixes:
+DEF124748 GCCXML errors in Raptor related to missing arm lib files
+DEF124756 Raptor build : Orphan files reported in CBR phase
+DEF124758 Raptor build CBR errors due to missing ".a" files
+DEF124573 CDB breaks in Raptor build due to missing header,dll and lib files
+
+
+version 2.1.0
+
+Change Requests:
+CR1479 Add Armv7 support into SBSv2
+
+Defect Fixes:
+DEF124543 Raptor does not handle the STDCPP keyword correctly
+DEF124515 GT0367: 'bldmake plat' should now show ARMV7
+
+
+version 2.0.14
+
+Defect Fixes:
+DEF124705 CBR errors in raptor builds due to missing rpp files
+DEF120328 SBS v2.0 configuration files cannot be validated
+INC124096 Long list of MMP macros causes crashdump with .s files
+DEF124702 GT0367: Semaphores need altering to correct possible hangs (on Linux)
+
+
+version 2.0.13
+
+Defect Fixes:
+DEF123653 SBS -j 16 on Windows produces malformed xml log files
+
+
+version 2.0.12
+
+Defect Fixes:
+DEF123987 Raptor does not build a lot of .lib files for ARMV5
+DEF123981 SBSv2 doesn't generate DSO when EXPORTUNFROZEN is specified.
+
+
+version 2.0.11
+
+Defect Fixes:
+DEF123988 SBSv2 does not produce rpp files
+DEF123766 SBSv2 log output does not match the specification
+DEF122781 GT0367: 'bldmake bldfiles' output not going to stdout
+DEF122885 GT0367: Need to stop sbs -abld functioning on Linux
+DEF123354 GT0367: Incorrect output if the number of jobs provided is invalid
+
+
+version 2.0.10
+
+Defect Fixes:
+DEF123984 SBSv2 generates more warnings than abld
+DEF124139 GT0367: SBS causes a Python Traceback when a system_definition.xml error occurs
+DEF123601 SBSv2 : Python traceback error is reported when try to build systemtest code
+DEF123916 SBSv2 : "tools" build warns about overrides when "OPTION MSVC /w" in .mmp files
+
+
+version 2.0.9
+
+Defect Fixes:
+PDEF124028 .GXP files not getting created when built for GCCXML target
+DEF123653 SBS -j 16 on Windows produces malformed xml log files
+DEF123586 dso file is not remade when def file changes
+DEF122541 SBSv2 -what should report resource files
+DEF123265 Incorrect file access permissions for sbs v2.0.7 in Linux dist
+DEF123317 SBSv2 -what got error for whatexports if too much exports
+DEF123439 SBSv2 : Exports not performed in total before .mmp processing in sysdef builds
+DEF123552 STLport doesn't build with Raptor on Linux
+DEF123260 GT0367: Circular references in config files not handled
+
+
+version 2.0.8
+
+Defect Fixes:
+DEF122930 SBSv2:Target type exexp giving errors while building for winscw
+DEF123028 Raptor generating double slashes in command files
+DEF123048 SBSv2: build with -k (keep-going) stops when export makefile has a failure.
+DEF123069 False 'missing mmp file' errors reported by SBSv2
+DEF122472 SBSv2 doesn't report content of unpacked zip files
+DEF122534 SBSv2 -what should not report .sym files
+DEF123181 SBSv2: Failure of one export in python aborts remaining exports for bld.inf
+DEF123289 SBSv2 : Netcards doesn't build for "tools" in an SBSv2 build
+DEF123418 SBSV2: stlport build can fail with "no rule to make target"
+DEF123084 SBSv2: exits with an exception if -c option specifies non-existent configuration
+INC122876 Electric Accelerator build fails with Raptor
+
+
+version 2.0.7
+
+Defect Fixes:
+DEF122784 Large MMP files and GNUMAKEFILE causes shell to crash
+DEF122760 Problems with bmconv command files preventing bitmap generation?
+DEF122803 SBSv2 - Freeze doesnt work properly for OE target types
+DEF122833 SBSV2 Performance is poor with -j16 using the GNU Make engine
+DEF122535 GT0367: Invalid system_definition.xml causes SBSv2 layering crash
+DEF122570 SBSv2 : certain "-m" values cause a crash at makefile generation
+DEF122604 Errors in GT only build using sbsv2 on Windows
+DEF122796 Wrong default value for PVMGMAKE in make.xml
+DEF122783 SBSv2 WINSCW builds can produce incorrectly linked executables under emake
+DEF122785 log summariser crashes if errors contain % characters
+DEF122870 SBSv2 assembling .s files fails.
+DEF120473 Enable Windows and Linux Tools to Cohabit
+DEF121826 Pre-include HRH file directory from variant.cfg fails for template extension mak
+DEF121907 Raptor crashes when exporting zip file that already exists
+DEF122523 SBSv2 Logging output affected by bash version on Linux
+DEF122788 SBSv2: We don't ensure correct version of Make for TEMs and for use in FLMs
+
+
+version 2.0.6
+
+The first release of SBSv2 in the SITK.
+
+
+
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/RELEASE-NOTES.txt
--- a/sbsv2/raptor/RELEASE-NOTES.txt Wed Apr 14 18:01:20 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,833 +0,0 @@
-Release Notes for Symbian Build System v2
-
-version 2.12.4
-
-Defect Fixes:
-- SF Bug 2125 - [Raptor] - tracecompiler what output incorrect if mmp basename contains '.' e.g. fred.prd.mmp
-- SF Bug 2113 - [Raptor] what/check filters can assign files to the wrong components
-- SF Bug 2081/1971 - [Raptor] - Exported file executable permissions not maintained (linux)
-- SF Bug 1912 - Raptor should take python from the path [if not set with SBS_PYTHON or bundled with Raptor]
-- SF Bug 2042 - [Raptor] component field empty in recipe
-- SF Bug 2007 - [Raptor] GCCE 4.4.1 builds require 4.3.1 and 4.3.2 SBS_GCCE???BIN env vars etc.
-- SF Bug 2000 - [Raptor] Talon fails when installed in a path containing the string '-c' (windows only)
-- SF Bug 1861 - [Raptor] More helpful console message in case of timeouts
-- SF Bug 1571 - Raptor cannot report error or warning message in wrong implib project
-- DPDEF142718 Incremental rebuild fails if dependent files deleted
- --no-depend-generate added to suppress the generation and processing of dependency files
- .DEFAULT target introduced for all non --no-depend-generate and/or --no-depend-include builds
-- Add support for PLUGIN3 TARGETTYPEs
-- Fixing logfile corruption for large GCCXML builds by suppressing zip output
-- Fix: host attribute in recipes was blank in windows, windows cluster builds.
-- Stop copying .bmp files to epoc32/localisation and fix the "what" reporting
-
-
-version 2.12.3
-
-Defect Fixes:
-- Don't print trace "what" information if we do not run the trace compiler.
-
-
-version 2.12.2
-
-Defect Fixes:
-- SF Bug 1569 - excessive recompilation in incremental tracecompiler builds
-- Better error messages for make-engine selection.
- e.g. "sbs -e arm" will now produce a useful error message rather than
- a traceback. "arm" is a real variant but it's not a make engine. In
- the past sbs would have tried to use it and would have failed with a
- complicated traceback. Also doesn't traceback for non-existent make engines.
-- sbs_filter chose wrong embedded default python version. Set to 2.6.4 now.
-- FilterCheck did not check files when run from sbs_filter
-- Remove old references to python 2.5.2
-- Escape filenames with special XML characters inside tags
-
-
-version 2.12.1
-
-Defect Fixes:
-- SF Bug 1494 - sbs --what does not report Trace Compiler output
-- sbs -c winscw.tracecompiler uses wrong UID and doesn't generate traces
-- SF Bug 1519 - Raptor output files may contain unescaped left angle brackets as XML character data
-
-
-version 2.12.0
-
-New Features:
-- New 'Patchable Constants' target type: TARGETTYPE pdll
-- Combine Linking and Postlinking into a single step - performance improvement.
-- Support exit codes from next version of the trace compiler which will issue them
-- New sbs_filter script and batchfile to ease the use of sbs_filter.py.
- Allows filters to be executed over a log after a build has been done.
- e.g.
-
- sbs_filter --filters=FilterWhat < logfile.log
-
- (This runs a "--what" without regenerating any makefiles or reparsing
- the matadata.)
-- New (beta) FilterWhatComp filter. Simulates abld log output for
- use with parse_what.pl for packing up zips by component. Whatcomp output
- uses the incoming epocroot value. i.e. if epocroot is relative then so is
- the what output. e.g. if EPOCROOT=\ then the output will be of the form:
-
- "\epoc32\release\armv5\...."
-
- If it's "..\myepocroot" then the output will be:
-
- "..\myepocroot\epoc32\release\armv5".
-
- If it's absolute then the what output will also be absolute.
-- New FilterCheck filter. This can be used with sbs_filter to perform the
- equivalent of --check using the log output from a build. It is more
- efficient than --check because the metadata is not parsed and no makefiles
- are generated. e.g.
-
- sbs_filter --filters=FilterCheck < logfile.log
-
-- New (beta) graphical build visualisation tool (bin/timelines.py).
- Requires pygame and PyOpenGL. e.g.
-
- python timelines.py < filename.log
-
-- New (beta) log analyser (recipestats.py) for recording the total time spent
- in each type of recipe in the build. e.g.
-
- python recipestats.py < filename.log > stats.csv
-
- The output is in CSV format.
-
-Defect Fixes:
-- fix for ARM9E + ARMV5 pre-processing confusion
-- SF bug 1606: template_ext.flm wrongly creates dependencies to OTHER_CFG targets
-- SF bug 1570: Adding then removing a capability can produce incorrect
- result: e.g. ALL TCB -TCB becomes ALL -TCB but it should be just ALL
-
-Other Changes:
-- Default to using Python 2.6.4 on windows (no change in compatibility with
- older versions of Python).
-
-
-version 2.11.3
-
-Defect Fixes:
-DPDEF142616 Raptor: Variables can be set unnecessarily prior to TEM execution
-Fix for: filter terminal flags up when recipe truncated
-SF bug 170: invalid XML output when a zip file is missing
-SF bug 518: unpaged keyword in mmp files is not parsed properly
-
-
-version 2.11.2
-
-Defect Fixes:
-DPDEF143176 raptor does not respect STDCPP mmp file keyword
-
-
-version 2.11.1
-
-Other Changes:
-GCCE 4.4.1 variant added
-Restored python 2.4 compatibility
-Minor TOOLS2 --what corrections
-Retain Linux execute permissions on unpacked :zip archives
-Prototype of extended timing API added
-Option --noexport added for parallel parsing
-Made --noexport and --export-only mutually exclusive
-SBS_PYTHONPATH insulates sbs from the global PYTHONPATH
-Removed spurious bracket in e32abiv2textnotifier2
-More robust to multiple import library definitions
-
-
-version 2.11.0
-
-New Features:
-Parallel parsing of meta-data
-New keyword APPLY for MMP files
-SAX filter plugin base-class
-
-Defect Fixes:
-DPDEF142895 Raptor does the wrong thing with the ARMFPU keyword
-DPDEF143020 The savespace variant overrides elf2e32's return code
-DPDEF143046 BYTEPAIRCOMPRESSTARGET and INFLATECOMPRESSTARGET not in FLM interface
-Improved error reporting for --check and --what
-
-
-version 2.10.2
-
-Defect Fixes:
-DPDEF142958 regression - ARMV6 and __ARMV6__ are not defined for armv6_urel builds
-DPDEF142730 Raptor crashes with improper VERSION syntax
-DPDEF142928 RVCT 4.0: Linker error when the MMP files modifies the --cpu option
-
-
-version 2.10.1
-
-Defect Fixes:
-DPDEF142666 Cannot remove frozen exports from EABI DEF file in SBSv2
-DPDEF142745 OPTION_REPLACE problems with RVCT 4.0
-DPDEF140622 feature variant configuration file with non exist file set to 'FEATURELISTFILES'
-DPDEF141195 Raptor doesn't handle spaces in tool paths
-DPDEF142616 Raptor: Variables can be set unnecessarily prior to TEM execution
-DPDEF142455 Disable warning L6780W for certain components
-DPDEF142447 GCC-E: Raptor compiles CIA files as Thumb
-DPDEF142448 GCC-E: Raptor tries to build ABIV1 import libraries
-DPDEF142451 GCC-E: Raptor treats C files as C++ files.
-
-
-version 2.10.0
-
-New Features:
-Support for GCCE compiler
-More efficient Feature Variation support
-
-
-version 2.9.3
-
-Defect Fixes:
-DPDEF142166 Raptor sometimes invokes checklib.exe with incorrect parameters
-DPDEF141354 EXPORTUNFROZEN fails in target builds if .savespace is applied
-DPDEF141533 Inconsistent log output
-DPDEF141604 file winscw.auto.bat is released two times
-DPDEF141787 Raptor treats EFREEZE info message as warnings
-
-Other Changes:
-talon can read commands from a temporary file as well as with -c
-
-
-version 2.9.2
-
-Defect Fixes:
-DPDEF141531 Incorrect RVCT variables passed to TEM
-DPDEF141837 Some problems with dependency (.d) files
-DEF140258 Aborting SBSv2 mid-build often leads to corrupt .d files which prevent rebuilds
-DPDEF142049 Garbage in the Raptor log file
-DPDEF141954 Raptor: "tools" config static libraries can have incorrect compilation macros
-DPDEF141974 Raptor: "tools" builds can fail when done in combination with "tools2" builds
-
-Other Changes:
-Static libraries cannot be feature variant
-Option --no-depend-include for very big builds
-
-
-version 2.9.1
-
-Defect Fixes:
-DPDEF141503 RMTPClient::StartTransport Panic when using emulated test tranport plugin
-DPDEF141688 ARMV6 builds with SBSv2 have problems with missing DEF files
-
-
-version 2.9.0
-
-New Features:
-Talon shell to reduce memory usage and improve stability.
-Support for RVCT 4.0 advanced features.
-Optionally use SBS_CYGWIN, SBS_MINGW and SBS_PYTHON to locate tools.
-Makefile to build host tools on Linux.
-Single-file compilation for IDE integration.
-Splitlog and CheckSource filters.
-
-Defect Fixes:
-DPDEF141523 Raptor links kernel-side components to scppnwdl.dso
-DPDEF141418 Raptor turns echo on
-DPDEF141495 Raptor doesn't deal correctly with SOURECEPATH beginning with '/'
-DPDEF141388 raptor inserts epoc32\include at start of systeminclude path
-
-
-version 2.8.6
-
-DPDEF135505 Some TEMs have race conditions for simultaneous urel and udeb. cp fails.
-DPDEF141498 If make crashes, Raptor exits with 0 errors
-DPDEF141071 Raptor: GCCXML build does not support the VAR2 TARGETTYPE
-DPDEF140816 STDCPP keyword in mmp file not interpreted by gccxml tool chain
-DPDEF137727 [Raptor Rollout] Raptor fails to build certain .mbg and .rsg files
-DPDEF137494 SBSv2: preprocessor warnings and errors might cause invalid XML in log
-DPDEF140731 Missing dependency files when building from clean
-DPDEF140540 [System Build]: Changes of Raptor cause 94_331 build failed
-DPDEF141129 raptor generates unknown origin file
-
-Other Changes:
-Fix to support trace compiler switch
-Better message for duplicate objects, states which file overrides which.
-Refactor to avoid "defects" of missing OS variants.
-
-
-version 2.8.5
-
-Defect Fixes:
-DPDEF141102 SBS doesn't set the paging attribute of excutables correctly
-DPDEF140731 Missing dependency files when building from clean
-DPDEF135620 Workaround for broken static libraries
-
-
-version 2.8.4
-
-Defect Fixes:
-DPDEF140839 RComp crashes if it's built with sbs
-DPDEF140929 OPTION GCCE in MMP files generates a build warning
-DPDEF135436 SBSv2 - Python traceback when illegal characters appear on command line
-
-
-version 2.8.3
-
-Defect Fixes:
-DPDEF139904 Raptor: .def file FREEZE attempted for ARMV5 when it shouldn't be
-DPDEF140589 Raptor: .def file FREEZE attempted for WINSCW when it shouldn't be
-DPDEF140456 Raptor build error with -c tools_rel
-DPDEF139759 Raptor warning regarding EXPORTSUNFROZEN is ambiguous
-DPDEF135436 SBSv2 - Python traceback when illegal characters appear on command line
-INC140156 SBSv2 crashes when build QtWebkit for ARMV5
-
-Other Changes:
-Add to show which variant.hrh file is used.
-Replaced the corrupted awk.exe in cygwin distro.
-Fix previous trace compiler auto run mechanism.
-ROMFILE improvements.
-
-
-version 2.8.2
-
-Defect Fixes:
-DPDEF140540 [System Build]: Changes of Raptor cause 94_331 build failed
-
-Other Changes:
-Tolerate XML schema 1_0 files where possible.
-Treat system definition schema 1.[3-9] files the same as schema 1.4 files.
-Remove checksource and its python site-packages.
-
-
-version 2.8.1
-
-Defect Fixes:
-DPDEF140165 SBS error when creating info.xml on component base_omaph2
-DPDEF132996 Location of generated auto.bat files is inconsistent
-
-Other Changes:
-Feature variant "ln -f" fails intermittently in parallel builds.
-Traceback when "group" elements are redefined in XML.
-Trace compiler should run automatically if a trace path exists.
-Need a workaround for Carbide Missing SDK problem.
-
-
-version 2.8.0
-
-New Features:
-XML schema 2.0 with new alias and group elements.
-
-Removed:
-XML config element (use var instead).
-XML .first and .last mechanism (use alias or group instead).
-
-Defect Fixes:
-DPDEF140082 SBS cause env to dirty state
-DPDEF138565 SBSV2 doesn't define the correct macros for ARMV6
-DPDEF139950 SBSv2 Filter Handling not Robust enough - bad filters stop build.
-DEF139686 [TCL Build] coredumpserver compile warnings in DP00458
-
-
-version 2.7.2
-
-Defect Fixes:
-DPDEF139420 Raptor config does not correctly handle mifconv causing resource build errors
-DPDEF138679 Raptor does not create a DEFFILE when building for winscw_urel
-DPDEF139692 SBSV2: 'virtual memory exhausted' when building multiple variants
-DPDEF136321 SBSv2: Zip exports not cleaned
-INC139622 OPTION_REPLACE does not work properly in SBSv2
-
-Other Changes:
-Added utility.prebuilt FLM.
-
-
-version 2.7.1
-
-Defect Fixes:
-DPDEF138366 [T15379] Raptor raise some warnings when build Coredumpserver
-DPDEF139405 SBSV2: Trace compilation fails with large numbers of files.
-DPDEF139572 SBSV2: Changes to '--cpu' option syntax breaks existing MMP files.
-DPDEF139456 Toolcheck file is not created if EPOCROOT is \
-DPDEF133766 Poor SBSv2 reallyclean performance
-DPDEF135780 SBSV2: REALLYCLEAN is not cleaning all files
-
-
-version 2.7.0
-
-New Features:
-DS.1744 Recognize LINKEROPTION in MMP file
-DS.1744 Compiled objects on local filesystem (SBS_BUILD_DIR)
-
-Partial Deliveries:
-DS.1744 CheckSource in Raptor
-
-Defect Fixes:
-DPDEF138293 Carbide: Raptor doesn't resolve variant.cfg entries starting with "\" correctly
-
-
-version 2.6.5
-
-Defect Fixes:
-DPDEF138930 Raptor needs to change to match new trace compiler interface
-
-
-version 2.6.4
-
-Defect Fixes:
-DPDEF138527 [TCL Build] Miss tracecompiler.mk and exclude group for Raptor export
-DPDEF138484 Raptor uses wrong guard causing trace compiler ignores some projects.
-DPDEF138720 BV product folders have missing map files
-DPDEF138721 Raptor uses wrong lib when mmp keyword FIRSTLIB presents.
-DPDEF138053 SBSv2: tools platform: tools not installed by the time they need to be used.
-DPDEF138164 Carbide: Raptor crashes on unrecognised buildinfo.txt content
-DPDEF138296 SBSV2 disables all TOOLS2 compiler warnings
-DPDEF138329 Raptor generates marker file for trace compiler when it's not done
-DPDEF138352 SBSv2: rollout - unsplit EC makefiles not generating correct deps 4 missing .mbg
-DPDEF138480 SBSv2: rollout. Created files sometimes have insufficient permissions on Windows
-DPDEF137511 SBSv2 doesn't behave correctly with the default paging policy
-
-
-version 2.6.3
-
-Defect Fixes:
-DPDEF133508 Number of errors is counted wrong
-DPDEF138098 UID issue in Trace Compiler for Raptor
-DPDEF138296 SBSV2 disables all TOOLS2 compiler warnings
-
-
-version 2.6.2
-
-Defect Fixes:
-DPDEF135330 Raptor Rollout: bangalore messaging winscw udeb test code
-DPDEF137726 Missing mscvr_readme.txt from the SBSv2 drop
-DPDEF137739 SBSv2: rollout - .cia object files can conflict with .cpp object files
-
-
-version 2.6.1
-
-Defect Fixes:
-DPDEF137239 raptor does not include the msvcr71 runtime library
-DPDEF137489 BV builds try and write generated .s files in the wrong directory
-
-
-version 2.6.0
-
-New Features:
-DS.1542 SBSv2 generates Open System Trace dictionaries
-DS.1629 Resource autodependencies
-
-
-version 2.5.5
-
-Defect Fixes:
-DPINC137379 Emulator: Cursor is missing on emulator buttons
-DPDEF133640 SBSv2 usrt3_1.lib is missing from epocroot/epoc32/release/armv5/
-
-
-version 2.5.4
-
-Defect Fixes:
-DPDEF136719 Raptor: sbsv2cache.py cache file generation fails with very large log files
-DPDEF136715 On Linux the shipped python 2.5.2 is not found
-DPDEF132996 SBSv2 doesn't generate AUTO.BAT file
-DPDEF136382 SBSv2: explicit dll versioning not supported on arm platforms
-DPDEF135843 [Raptor Rollout] Raptor does not support OPTION_REPLACE ARMASM/OPTION ARMASM
-DPDEF136693 makesis fails when multiple instances are run concurrently with the same target
-
-
-version 2.5.3
-
-Defect Fixes:
-DPDEF136162 Raptor: resource dependencies require metadata workarounds
-DPDEF128288 SBSv2 does not fully support build target customization.
-DPDEF132880 BV builds cannot find system static libraries
-DPDEF133835 SBSv2 cannot build for ARMV6 or ARM9E
-
-
-version 2.5.2
-
-Defect Fixes:
-DPDEF135983 cpp-raptor crashes if source code contains builtin macro __FILE__
-DPDEF133808 Raptor does not support OPTION --no_rtti with mixed assembly/C++ projects
-DPDEF135577 SBSv2: rollout - TOOLS/TOOLS2 exes sometimes not executable or writable.
-
-
-version 2.5.1
-
-Defect Fixes:
-DPDEF135258 createvmap.py script can hang in BV builds
-DPDEF135385 warnings in RunModeDebugger in M04816vFuture with ARMV7
-
-
-version 2.5.0
-
-New Features:
-DS.1568 User defined configuration file location(s)
-
-
-version 2.4.3
-
-Defect Fixes:
-DPDEF134322 SBSV2 uses the wrong library when building STDCPP targets
-DPDEF132923 SBSv2 freeze don't add Vtable and RTTI information into def file for arm dll
-DPDEF133775 SBSv2: ARMFPU is not passed to compiler
-DPDEF134023 case inconsistency with libOpenVG.lib
-
-Other Changes:
-MINOR_CHANGE updated all copyright notices for SF delivery
-MINOR_CHANGE added vtb91sf variant for SF Timebox 9:1 builds
-MINOR_CHANGE added vtb92sf variant for SF Timebox 9:2 builds
-
-
-version 2.4.2
-
-Defect Fixes:
-DPDEF133820 Raptor Rollout: EXPORTUNFROZEN processing incorrect in ARMV5 builds
-DPDEF132033 Raptor picks up the wrong bld.inf macros when building for RVCT 3.1
-DPDEF133772 SBSv2: console log includes some winscw warnings that should be suppressed
-
-
-version 2.4.1
-
-Defect Fixes:
-DPDEF133639 Raptor Rollout:TEF test server doesn't start under SBSv2 - OK with abld
-DEF133255 [System Build]: Error in compiling NaviEngine Unistore on ARMV7 M04816 vFuture
-DPDEF127973 Freeze fails with SBSv2 under some environments
-
-
-version 2.4.0
-
-New Features:
-DS.1475 Pluggable Log Summariser
-DS.1476 Use FLMs from the source tree
-
-Defect Fixes:
-DPDEF133417 SBSv2: tmp mounting errors on startup
-
-
-version 2.3.3
-
-Defect Fixes:
-DPDEF130261 sbs does not support explicit option to version keyword
-DPDEF130598 sbs does not provide debug and nodebug variants
-DPDEF131630 Raptor smoke tests break when EPOCROOT=\ on Windows
-DPDEF132898 no TEM nbl2.lib dependencies for armv7
-DPDEF133035 SBSv2 - Tools2 build does not include -m32 option. Stlport flm also doesn't.
-DPDEF133176 SBSv2 ignores compillation error for "unidentified identifier" for winscw build
-
-
-version 2.3.2
-
-Other Changes:
-MINOR_CHANGE added vtb92 variant for Timebox 9:2 builds
-
-
-version 2.3.1
-
-Defect Fixes:
-DPDEF132374 SBSv2: Directory creation can fail leading to build errors
-DPDEF132070 SBSv2: stlport 5.2 build fails - library generated to wrong directory
-DPDEF128378 SBSv2 help for global targets only shown when a target is given
-DPDEF129634 ALWAYS_BUILD_AS_ARM does not suppress __MARM_THUMB__ with SBSv2
-
-
-version 2.3.0
-
-New Features:
-DS.1424 Support for ARMV5SMP platform
-
-Defect Fixes:
-DPDEF129804 SBSv2 crashes when there are double \\ in prj_mmpfiles in bld.inf
-DPDEF130892 SBSv2: Reallyclean fails on TEM files
-DPDEF131619 SBSv2: ABIv1 .lib files aren't generated for -c armv5 -c armv5.smp
-DPDEF131637 SBSv2: stlport can fail to build under Cygwin - "/tmp no such directory"
-DPDEF131891 [System Build]: Errors in GT stage in Build M04774 vfuture
-
-
-version 2.2.9
-
-Defect Fixes:
-DPDEF129804 SBSv2 crashes when there are double \\ in prj_mmpfiles in bld.inf
-DPDEF131637 SBSv2: stlport can fail to build under Cygwin - "/tmp no such directory"
-DPDEF130892 SBSv2: Reallyclean fails on TEM files
-
-
-version 2.2.8
-
-Defect Fixes:
-DPDEF130569 .lib files for SSM targets build with different name compared to abld
-DPDEF130571 libxml2 component contains GCCXML build errors
-DPDEF131312 SBSv2 - DEBUGGABLE_UDEBONLY not supported by SBSv2 (Raptor)
-
-
-version 2.2.7
-
-Defect Fixes:
-DPDEF130533 SBSv2 fails to run when installed from SITK
-DPDEF130452 Some rcomp warnings need to be disabled
-DPDEF130286 SBSv2: sbs freezes during CLEAN and REALLYCLEAN operations.
-DPDEF127973 Freeze fails with SBSv2 under some environments
-DPDEF128455 Error during freeze with SBSv2
-DPDEF127149 SBSv2 TEM/extension makefile build doesn't support the .savespace variant
-
-
-version 2.2.6
-
-Defect Fixes:
-DPDEF130008 SBSv2 should recognize these new keywords: SMPSAFE, PAGEDCODE, PAGEDDATA, UN...
-DPDEF127887 Current directory wrong when executing extension makefiles in SBSv2
-DPDEF128915 CCheckEnv ERROR: CBRPatch: Absent file
-DPDEF127675 Raptor does not process stringtables correctly when HEADERONLY is on
-DPDEF127878 give wrong mmp filename for -p option should cause error in SBSv2
-
-Other Changes:
-Uses cygwin instead of msys for improved stability.
-Includes python 2.5.2 instead of using py2exe.
-
-
-version 2.2.5
-
-Defect Fixes:
-DEF127329 OMAP H4 Unistore2 Failure in Raptor 9.5 GT build
-DPDEF128632 SBSv2 : bld.inf ':zip' exports don't maintain timestamps, with an e32 impact
-DPDEF127399 SBSv2 -p .mmp options also builds .mk files
-
-
-version 2.2.4
-
-Defect Fixes:
-DPDEF129187 SBSv2: ABIv1 .lib files are required (again)
-
-
-version 2.2.3
-
-Defect Fixes:
-DPDEF128916 C Standard Library failed on cia2cpp2o armv5 with 1
-DPDEF128503 sbs 2.2.0 produce malformed xml log on Linux with pvmgmake
-DPDEF127604 SIS registry panics at startup on emulator if SWI is built with SBS
-DPDEF128690 SBSv2 generates error when using emake on REALLYCLEAN target
-
-Other Changes:
-MINOR_CHANGE log summariser updated to deal with errors starting "make.exe: ***"
-
-
-version 2.2.2
-
-Defect Fixes:
-DPDEF127497 SBSv2 does not clean when -k or other switch is used with abld wrapper
-DPDEF127829 'cannot open Meta file' warning with SBSv2
-DPDEF127371 abld -v not working correctly through sbsv2
-DPDEF127555 SBSv2 doesn't do "romfile"
-
-Other Changes:
-MINOR_CHANGE made the default number of jobs 4
-
-
-version 2.2.1
-
-Defect Fixes:
-DPDEF128498 SBS creates paths with extra slashes which can cause problems
-
-Other Changes:
-MINOR_CHANGE Removed temporary ABIv1 .lib generation
-MINOR_CHANGE Added monty test data to the test folder
-
-
-version 2.2.0
-
-New Features:
-DS.1347 SBSv2 Compiler Selection
-DS.1348 SBSv2 allow mixed slashes
-
-Defect Fixes:
-DPDEF127904 SBSv2 : recent installdefaultcommdb has broken the 9.4 build
-DPDEF128022 SBSv2: Unrecognised Keyword ['romtarget .dll'] warnings
-DPDEF127815 SBSv2: PAGED and EPOCCALLDLLENTRYPOINTS keywords not supported
-DPDEF127890 SBSv2: TARGETPATH in mmps (also resources, bitmaps) must cope with backslashes
-DPDEF128229 SBSv2: some command invocations can fail, but could be "re-tried"
-
-
-version 2.1.10
-
-Defect Fixes:
-DPDEF126662 Intermittent networking_dhcp compilation failure in Raptor build GT phase
-DPDEF127799 SBSv2: zip and unzip commands not found in some builds
-DPDEF127665 ARMV7 libraries have wrong link order in Raptor
-
-
-version 2.1.9
-
-Defect Fixes:
-DPDEF127498 SBSv2: importlibversioned_abiv1 intermittently fails in ARMV5 builds
-DPDEF125483 CDB breaks due to Attribute values not matching expected values
-DPDEF126335 Intermittent GT errors due to "make" not being found on the PATH
-DPDEF127562 SBSv2 will not unzip the same file into more than one location
-DPDEF127626 SBSv2: sed version on windows is out of date
-
-
-version 2.1.8
-
-Defect Fixes:
-DPDEF125478 CDB breaks caused by file path/name mismatch
-DPDEF125145 Incorrect file access permissions for sbs v2.0.14 in Linux distribution
-DPDEF126126 Intermittent "Segmentation fault" error in Raptor GT phase
-DPDEF124836 SBSv2 cannot build just a single .mmp file from a bld.inf file
-DPDEF126675 Performance regression in SBSv2 python frontend caused by regex usage,
-DPDEF126790 groupin10 is not used in artarget_func
-DPDEF125639 TEM variables are reported incorrectly when building TEM for ARMV7
-DPDEF124273 abld help is ugly and hard to read
-DPDEF126614 "Virtual memory exhausted. Stop" error when building with SBSV2
-
-
-version 2.1.7
-
-Defect Fixes:
-DPDEF124290 SBS -e pvmgmake -j 12 on Linux produces malformed xml log files
-DPDEF126241 SBSv2 : SECURE_DATA error when building uiklaf toolkit in TechView
-DPDEF126328 Performance regression and related excessive memory usage in daily Raptor builds
-
-
-version 2.1.6
-
-Defect Fixes:
-DPDEF125740 SBSv2: Builds can hang during the GT stage in Windows builds when using "-j x"
-DPDEF125145 Incorrect file access permissions for sbs v2.0.14 in Linux distribution
-
-
-version 2.1.5
-
-Defect Fixes:
-DPDEF125812 There is no user created init.xml configuration file
-
-
-version 2.1.4
-
-Defect Fixes:
-DPDEF124680 Raptor builds hang at "tools2" compilation phase
-DPDEF125304 Raptor crashes when running abld
-
-
-version 2.1.3
-
-Defect Fixes:
-DPDEF125394 sbs_2.1.0_(RC1) Building complete OS gives armasm errors on Windows
-DPDEF122556 GT0367: CLEANEXPORT target is not cleaning files with a space in them
-DPDEF124691 Raptor should ignore the new SMPSAFE keyword
-DPDEF125031 SBSv2 Stringtable build fails when EXPORTPATH specified
-
-
-version 2.1.2
-
-Change Requests:
-CR1413 Support for different toolchains to be called by SBSv1 and SBSv2
-
-
-version 2.1.1
-
-Defect Fixes:
-DEF124748 GCCXML errors in Raptor related to missing arm lib files
-DEF124756 Raptor build : Orphan files reported in CBR phase
-DEF124758 Raptor build CBR errors due to missing ".a" files
-DEF124573 CDB breaks in Raptor build due to missing header,dll and lib files
-
-
-version 2.1.0
-
-Change Requests:
-CR1479 Add Armv7 support into SBSv2
-
-Defect Fixes:
-DEF124543 Raptor does not handle the STDCPP keyword correctly
-DEF124515 GT0367: 'bldmake plat' should now show ARMV7
-
-
-version 2.0.14
-
-Defect Fixes:
-DEF124705 CBR errors in raptor builds due to missing rpp files
-DEF120328 SBS v2.0 configuration files cannot be validated
-INC124096 Long list of MMP macros causes crashdump with .s files
-DEF124702 GT0367: Semaphores need altering to correct possible hangs (on Linux)
-
-
-version 2.0.13
-
-Defect Fixes:
-DEF123653 SBS -j 16 on Windows produces malformed xml log files
-
-
-version 2.0.12
-
-Defect Fixes:
-DEF123987 Raptor does not build a lot of .lib files for ARMV5
-DEF123981 SBSv2 doesn't generate DSO when EXPORTUNFROZEN is specified.
-
-
-version 2.0.11
-
-Defect Fixes:
-DEF123988 SBSv2 does not produce rpp files
-DEF123766 SBSv2 log output does not match the specification
-DEF122781 GT0367: 'bldmake bldfiles' output not going to stdout
-DEF122885 GT0367: Need to stop sbs -abld functioning on Linux
-DEF123354 GT0367: Incorrect output if the number of jobs provided is invalid
-
-
-version 2.0.10
-
-Defect Fixes:
-DEF123984 SBSv2 generates more warnings than abld
-DEF124139 GT0367: SBS causes a Python Traceback when a system_definition.xml error occurs
-DEF123601 SBSv2 : Python traceback error is reported when try to build systemtest code
-DEF123916 SBSv2 : "tools" build warns about overrides when "OPTION MSVC /w" in .mmp files
-
-
-version 2.0.9
-
-Defect Fixes:
-PDEF124028 .GXP files not getting created when built for GCCXML target
-DEF123653 SBS -j 16 on Windows produces malformed xml log files
-DEF123586 dso file is not remade when def file changes
-DEF122541 SBSv2 -what should report resource files
-DEF123265 Incorrect file access permissions for sbs v2.0.7 in Linux dist
-DEF123317 SBSv2 -what got error for whatexports if too much exports
-DEF123439 SBSv2 : Exports not performed in total before .mmp processing in sysdef builds
-DEF123552 STLport doesn't build with Raptor on Linux
-DEF123260 GT0367: Circular references in config files not handled
-
-
-version 2.0.8
-
-Defect Fixes:
-DEF122930 SBSv2:Target type exexp giving errors while building for winscw
-DEF123028 Raptor generating double slashes in command files
-DEF123048 SBSv2: build with -k (keep-going) stops when export makefile has a failure.
-DEF123069 False 'missing mmp file' errors reported by SBSv2
-DEF122472 SBSv2 doesn't report content of unpacked zip files
-DEF122534 SBSv2 -what should not report .sym files
-DEF123181 SBSv2: Failure of one export in python aborts remaining exports for bld.inf
-DEF123289 SBSv2 : Netcards doesn't build for "tools" in an SBSv2 build
-DEF123418 SBSV2: stlport build can fail with "no rule to make target"
-DEF123084 SBSv2: exits with an exception if -c option specifies non-existent configuration
-INC122876 Electric Accelerator build fails with Raptor
-
-
-version 2.0.7
-
-Defect Fixes:
-DEF122784 Large MMP files and GNUMAKEFILE causes shell to crash
-DEF122760 Problems with bmconv command files preventing bitmap generation?
-DEF122803 SBSv2 - Freeze doesnt work properly for OE target types
-DEF122833 SBSV2 Performance is poor with -j16 using the GNU Make engine
-DEF122535 GT0367: Invalid system_definition.xml causes SBSv2 layering crash
-DEF122570 SBSv2 : certain "-m" values cause a crash at makefile generation
-DEF122604 Errors in GT only build using sbsv2 on Windows
-DEF122796 Wrong default value for PVMGMAKE in make.xml
-DEF122783 SBSv2 WINSCW builds can produce incorrectly linked executables under emake
-DEF122785 log summariser crashes if errors contain % characters
-DEF122870 SBSv2 assembling .s files fails.
-DEF120473 Enable Windows and Linux Tools to Cohabit
-DEF121826 Pre-include HRH file directory from variant.cfg fails for template extension mak
-DEF121907 Raptor crashes when exporting zip file that already exists
-DEF122523 SBSv2 Logging output affected by bash version on Linux
-DEF122788 SBSv2: We don't ensure correct version of Make for TEMs and for use in FLMs
-
-
-version 2.0.6
-
-The first release of SBSv2 in the SITK.
-
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/bin/sbs.bat
--- a/sbsv2/raptor/bin/sbs.bat Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/bin/sbs.bat Fri Apr 16 19:32:39 2010 +0100
@@ -15,66 +15,7 @@
@rem
@SETLOCAL
-@SET HOSTPLATFORM=win 32
-@SET HOSTPLATFORM_DIR=win32
-
-
-@REM Automatically find SBS_HOME if it is not set
-@IF NOT "%SBS_HOME%"=="" goto foundhome
-@SET RAPTORBINDIR=%~dp0
-@SET WD=%cd%
-@cd /d %RAPTORBINDIR%\..
-@SET SBS_HOME=%cd%
-@cd /d %WD%
-:foundhome
-
-@REM The python and PYTHONPATH used by Raptor are determined by, in order of precedence:
-@REM 1. the SBS_PYTHON and SBS_PYTHONPATH environment variables (if set)
-@REM 2. the python shipped locally with Raptor (if present)
-@REM 3. the python on the system PATH and the PYTHONPATH set in the system environment
-
-@SET __LOCAL_PYTHON__=%SBS_HOME%\win32\python264\python.exe
-@IF NOT "%SBS_PYTHON%"=="" GOTO sbspython
-@IF EXIST %__LOCAL_PYTHON__% GOTO localpython
-@SET __PYTHON__=python.exe
-@GOTO sbspythonpath
-
-:sbspython
-@SET __PYTHON__=%SBS_PYTHON%
-@GOTO sbspythonpath
-
-:localpython
-@SET __PYTHON__=%__LOCAL_PYTHON__%
-@SET SBS_PYTHON=%__PYTHON__%
-@SET PYTHONPATH=
-
-:sbspythonpath
-@IF NOT "%SBS_PYTHONPATH%"=="" SET PYTHONPATH=%SBS_PYTHONPATH%
-
-@REM Use the mingw set by the environment if possible
-@SET __MINGW__=%SBS_MINGW%
-@IF "%__MINGW__%"=="" SET __MINGW__=%SBS_HOME%\win32\mingw
-
-@REM Use the cygwin set by the environment if possible
-@SET __CYGWIN__=%SBS_CYGWIN%
-@IF "%__CYGWIN__%"=="" SET __CYGWIN__=%SBS_HOME%\win32\cygwin
-
-@REM add to the search path
-@REM (make sure that we don't get into trouble if there are Path and PATH variables)
-@SET PATH_TEMP=%__MINGW__%\bin;%__CYGWIN__%\bin;%SBS_HOME%\win32\bin;%PATH%
-@SET PATH=
-@SET PATH=%PATH_TEMP%
-@SET PATH_TEMP=
-
-@REM Make sure that /tmp is not set incorrectly for sbs
-@umount -u /tmp >NUL 2>NUL
-@mount -u %TEMP% /tmp >NUL 2>NUL
-@umount -u / >NUL 2>NUL
-@mount -u %__CYGWIN__% / >NUL 2>NUL
-
-@REM Tell CYGWIN not to map unix security attributes to windows to
-@REM prevent raptor from potentially creating read-only files:
-@SET CYGWIN=nontsec nosmbntsec
+@CALL "%~dp0sbs_env.bat"
@REM Run Raptor with all the arguments.
@%__PYTHON__% %SBS_HOME%\python\raptor_start.py %*
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/bin/sbs_env.bat
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/bin/sbs_env.bat Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,83 @@
+@REM
+@REM Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+@REM All rights reserved.
+@REM This component and the accompanying materials are made available
+@REM under the terms of the License "Eclipse Public License v1.0"
+@REM which accompanies this distribution, and is available
+@REM at the URL "http://www.eclipse.org/legal/epl-v10.html".
+@REM
+@REM Initial Contributors:
+@REM Nokia Corporation - initial contribution.
+@REM
+@REM Contributors:
+@REM
+@REM Description:
+@REM
+
+@SET HOSTPLATFORM=win 32
+@SET HOSTPLATFORM_DIR=win32
+
+@REM Automatically find SBS_HOME if it is not set
+@IF NOT "%SBS_HOME%"=="" GOTO foundhome
+@SET RAPTORBINDIR=%~dp0
+@SET WD=%CD%
+@CD /d %RAPTORBINDIR%\..
+@SET SBS_HOME=%CD%
+@CD /d %WD%
+:foundhome
+
+@REM The python and PYTHONPATH used by Raptor are determined by, in order of precedence:
+@REM 1. the SBS_PYTHON and SBS_PYTHONPATH environment variables (if set)
+@REM 2. the python shipped locally with Raptor (if present)
+@REM 3. the python on the system PATH and the PYTHONPATH set in the system environment
+
+@SET __LOCAL_PYTHON__=%SBS_HOME%\win32\python264\python.exe
+@IF NOT "%SBS_PYTHON%"=="" GOTO sbspython
+@IF EXIST %__LOCAL_PYTHON__% GOTO localpython
+@SET __PYTHON__=python.exe
+@GOTO sbspythonpath
+
+:sbspython
+@SET __PYTHON__=%SBS_PYTHON%
+@GOTO sbspythonpath
+
+:localpython
+@SET __PYTHON__=%__LOCAL_PYTHON__%
+@SET SBS_PYTHON=%__PYTHON__%
+@SET PYTHONPATH=
+
+:sbspythonpath
+@IF NOT "%SBS_PYTHONPATH%"=="" SET PYTHONPATH=%SBS_PYTHONPATH%
+
+@REM Use the mingw set by the environment if possible
+@SET __MINGW__=%SBS_MINGW%
+@IF "%__MINGW__%"=="" SET __MINGW__=%SBS_HOME%\win32\mingw
+
+@REM Tell CYGWIN not to map unix security attributes to windows to
+@REM prevent raptor from potentially creating read-only files.
+@REM Assume Cygwin 1.5 CLI.
+@SET __MOUNTOPTIONS__=-u
+@SET __UMOUNTOPTIONS__=-u
+@SET CYGWIN=nontsec nosmbntsec
+
+@REM If SBS_CYGWIN17 is set, we are using Cygwin 1.7, so change the mount/umount
+@REM options to the 1.7 CLI and set SBS_CYGWIN to the value of SBS_CYGWIN17
+@IF NOT "%SBS_CYGWIN17%" == "" SET CYGWIN=nodosfilewarning && SET "SBS_CYGWIN=%SBS_CYGWIN17%" && SET __MOUNTOPTIONS__=-o noacl -o user && SET __UMOUNTOPTIONS__=
+
+@REM Use the Cygwin set by the environment (from SBS_CYGWIN or SBS_CYGWIN17) if possible
+@SET __CYGWIN__=%SBS_CYGWIN%
+@IF "%__CYGWIN__%"=="" SET __CYGWIN__=%SBS_HOME%\win32\cygwin
+
+@REM Add to the search path
+@REM (make sure that we don't get into trouble if there are Path and PATH variables)
+@SET PATH_TEMP=%__MINGW__%\bin;%__CYGWIN__%\bin;%SBS_HOME%\win32\bin;%PATH%
+@SET PATH=
+@SET PATH=%PATH_TEMP%
+@SET PATH_TEMP=
+
+@REM Make sure that /tmp is not set incorrectly for sbs.
+@umount %__UMOUNTOPTIONS__% /tmp >NUL 2>NUL
+@mount %__MOUNTOPTIONS__% %TEMP% /tmp >NUL 2>NUL
+@umount %__UMOUNTOPTIONS__% / >NUL 2>NUL
+@mount %__MOUNTOPTIONS__% %__CYGWIN__% / >NUL 2>NUL
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/bin/sbs_filter.bat
--- a/sbsv2/raptor/bin/sbs_filter.bat Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/bin/sbs_filter.bat Fri Apr 16 19:32:39 2010 +0100
@@ -14,31 +14,8 @@
@rem Description:
@rem
-@REM Automatically find SBS_HOME if it is not set
-@IF NOT "%SBS_HOME%"=="" goto foundhome
-@SET RAPTORBINDIR=%~dp0
-@SET WD=%cd%
-@cd %RAPTORBINDIR%\..
-@SET SBS_HOME=%cd%
-@cd %WD%
-:foundhome
-
-@REM Use the cygwin set by the environment if possible
-@SET __CYGWIN__=%SBS_CYGWIN%
-@IF "%__CYGWIN__%"=="" SET __CYGWIN__=%SBS_HOME%\win32\cygwin
-
-@REM add to the search path
-@SET PATH=%__CYGWIN__%\bin;%PATH%
-
-@REM Make sure that /tmp is not set incorrectly for sbs
-@umount -u /tmp >NUL 2>NUL
-@mount -u %TEMP% /tmp >NUL 2>NUL
-@umount -u / >NUL 2>NUL
-@mount -u %__CYGWIN__% / >NUL 2>NUL
-
-@REM Tell CYGWIN not to map unix security attributes to windows to
-@REM prevent raptor from potentially creating read-only files:
-@set CYGWIN=nontsec nosmbntsec
+@SETLOCAL
+@CALL "%~dp0\sbs_env.bat"
@REM Run with all the arguments.
@bash %SBS_HOME%\bin\sbs_filter %*
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/group/bld.inf
--- a/sbsv2/raptor/group/bld.inf Wed Apr 14 18:01:20 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-/*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-
-PRJ_PLATFORMS
-TOOLS TOOLS2
-
-PRJ_EXPORTS
-#include "exports.inf"
-
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/group/checkexports.sh
--- a/sbsv2/raptor/group/checkexports.sh Wed Apr 14 18:01:20 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#!/bin/bash
-
-for dir in . cpp-raptor cygwin-1.5.25 mingw-5.1.4 python-2.5.2; do
- echo testing exports.inf in $dir
- (cd $dir; ./exports.sh2; sort exports.inf > t1; sort exports.inf2 > t2; diff t1 t2)
-done
-
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/group/exports.inf
--- a/sbsv2/raptor/group/exports.inf Wed Apr 14 18:01:20 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:
-*
-*/
-
-../RELEASE-NOTES.txt /tools/sbs/RELEASE-NOTES.txt
-../bin/sbs /tools/sbs/bin/sbs
-../bin/fixmeta.py /tools/sbs/bin/fixmeta.py
-../bin/codetest_osbuild.sh /tools/sbs/bin/codetest_osbuild.sh
-../bin/countbinaries.sh /tools/sbs/bin/countbinaries.sh
-../bin/gethost.sh /tools/sbs/bin/gethost.sh
-../bin/failedstats.py /tools/sbs/bin/failedstats.py
-../bin/sbs.bat /tools/sbs/bin/sbs.bat
-../bin/unsplitdirs.py /tools/sbs/bin/unsplitdirs.py
-../bin/buildstats.py /tools/sbs/bin/buildstats.py
-../bin/speedtest_osbuild.sh /tools/sbs/bin/speedtest_osbuild.sh
-../bin/sbsv2cache.py /tools/sbs/bin/sbsv2cache.py
-../bin/whatsource.py /tools/sbs/bin/whatsource.py
-../bin/oby2linux.py /tools/sbs/bin/oby2linux.py
-../bin/createrfifile.pl /tools/sbs/bin/createrfifile.pl
-../bin/vartoxml.py /tools/sbs/bin/vartoxml.py
-../bin/readme.txt /tools/sbs/bin/readme.txt
-../bin/squashlog.py /tools/sbs/bin/squashlog.py
-../bin/statcollate.py /tools/sbs/bin/statcollate.py
-../bin/createvmap.py /tools/sbs/bin/createvmap.py
-../bin/raptorlog.py /tools/sbs/bin/raptorlog.py
-../bin/osbuild.sh /tools/sbs/bin/osbuild.sh
-../bin/setup_user.sh /tools/sbs/bin/setup_user.sh
-../bin/msvcr71.dll /tools/sbs/bin/msvcr71.dll
-../bin/install_raptor.sh /tools/sbs/bin/install_raptor.sh
-../bin/mkgetfailed.py /tools/sbs/bin/mkgetfailed.py
-../examples/os_properties.xml /tools/sbs/examples/os_properties.xml
-../examples/sbs_init.xml /tools/sbs/examples/sbs_init.xml
-../lib/flm/e32abiv2stdexe.flm /tools/sbs/lib/flm/e32abiv2stdexe.flm
-../lib/flm/user/default.flm_ex /tools/sbs/lib/flm/user/default.flm_ex
-../lib/flm/user/globals.mk_ex /tools/sbs/lib/flm/user/globals.mk_ex
-../lib/flm/e32abiv2dll.flm /tools/sbs/lib/flm/e32abiv2dll.flm
-../lib/flm/tracecompiler.mk /tools/sbs/lib/flm/tracecompiler.mk
-../lib/flm/win32exe.flm /tools/sbs/lib/flm/win32exe.flm
-../lib/flm/template_ext.flm /tools/sbs/lib/flm/template_ext.flm
-../lib/flm/e32abiv2ani.flm /tools/sbs/lib/flm/e32abiv2ani.flm
-../lib/flm/converged-comms/createcommdbs.flm /tools/sbs/lib/flm/converged-comms/createcommdbs.flm
-../lib/flm/converged-comms/installdefaultcommdb.flm /tools/sbs/lib/flm/converged-comms/installdefaultcommdb.flm
-../lib/flm/win32plugin.flm /tools/sbs/lib/flm/win32plugin.flm
-../lib/flm/win32klib.flm /tools/sbs/lib/flm/win32klib.flm
-../lib/flm/extensions.xml /tools/sbs/lib/flm/extensions.xml
-../lib/flm/stack.mk /tools/sbs/lib/flm/stack.mk
-../lib/flm/globals.mk /tools/sbs/lib/flm/globals.mk
-../lib/flm/win32stdexe.flm /tools/sbs/lib/flm/win32stdexe.flm
-../lib/flm/e32abiv2lib.flm /tools/sbs/lib/flm/e32abiv2lib.flm
-../lib/flm/win32resource.flm /tools/sbs/lib/flm/win32resource.flm
-../lib/flm/config/default.flm /tools/sbs/lib/flm/config/default.flm
-../lib/flm/win32lib.flm /tools/sbs/lib/flm/win32lib.flm
-../lib/flm/null.flm /tools/sbs/lib/flm/null.flm
-../lib/flm/tools/test_command_diff.sh /tools/sbs/lib/flm/tools/test_command_diff.sh
-../lib/flm/tools/stlport.flm /tools/sbs/lib/flm/tools/stlport.flm
-../lib/flm/tools/buildstubsis.flm /tools/sbs/lib/flm/tools/buildstubsis.flm
-../lib/flm/msvctools.xml /tools/sbs/lib/flm/msvctools.xml
-../lib/flm/tools2lib.flm /tools/sbs/lib/flm/tools2lib.flm
-../lib/flm/win32ldd.flm /tools/sbs/lib/flm/win32ldd.flm
-../lib/flm/tools.xml /tools/sbs/lib/flm/tools.xml
-../lib/flm/metaflm.mk /tools/sbs/lib/flm/metaflm.mk
-../lib/flm/e32abiv2ldd.flm /tools/sbs/lib/flm/e32abiv2ldd.flm
-../lib/flm/e32abiv2pdl.flm /tools/sbs/lib/flm/e32abiv2pdl.flm
-../lib/flm/e32abiv2stdlib.flm /tools/sbs/lib/flm/e32abiv2stdlib.flm
-../lib/flm/config.xml /tools/sbs/lib/flm/config.xml
-../lib/flm/win32stddll.flm /tools/sbs/lib/flm/win32stddll.flm
-../lib/flm/gccxmlresource.flm /tools/sbs/lib/flm/gccxmlresource.flm
-../lib/flm/e32abiv2textnotifier2.flm /tools/sbs/lib/flm/e32abiv2textnotifier2.flm
-../lib/flm/e32abiv2implib.flm /tools/sbs/lib/flm/e32abiv2implib.flm
-../lib/flm/e32abiv2exe.flm /tools/sbs/lib/flm/e32abiv2exe.flm
-../lib/flm/win32pdl.flm /tools/sbs/lib/flm/win32pdl.flm
-../lib/flm/win32.flm /tools/sbs/lib/flm/win32.flm
-../lib/flm/base.xml /tools/sbs/lib/flm/base.xml
-../lib/flm/grouping.flm /tools/sbs/lib/flm/grouping.flm
-../lib/flm/e32abiv2.flm /tools/sbs/lib/flm/e32abiv2.flm
-../lib/flm/e32abiv2exexp.flm /tools/sbs/lib/flm/e32abiv2exexp.flm
-../lib/flm/e32abiv2defaults.mk /tools/sbs/lib/flm/e32abiv2defaults.mk
-../lib/flm/e32abiv2fsy.flm /tools/sbs/lib/flm/e32abiv2fsy.flm
-../lib/flm/final.mk /tools/sbs/lib/flm/final.mk
-../lib/flm/none.flm /tools/sbs/lib/flm/none.flm
-../lib/flm/analysis.xml /tools/sbs/lib/flm/analysis.xml
-../lib/flm/e32abiv2var2.flm /tools/sbs/lib/flm/e32abiv2var2.flm
-../lib/flm/msvctools.flm /tools/sbs/lib/flm/msvctools.flm
-../lib/flm/win32kdll.flm /tools/sbs/lib/flm/win32kdll.flm
-../lib/flm/win32ani.flm /tools/sbs/lib/flm/win32ani.flm
-../lib/flm/e32abiv2plugin.flm /tools/sbs/lib/flm/e32abiv2plugin.flm
-../lib/flm/win32bitmap.flm /tools/sbs/lib/flm/win32bitmap.flm
-../lib/flm/tools2common.flm /tools/sbs/lib/flm/tools2common.flm
-../lib/flm/win32fsy.flm /tools/sbs/lib/flm/win32fsy.flm
-../lib/flm/readme.txt /tools/sbs/lib/flm/readme.txt
-../lib/flm/e32abiv2kext.flm /tools/sbs/lib/flm/e32abiv2kext.flm
-../lib/flm/e32abiv2stddll.flm /tools/sbs/lib/flm/e32abiv2stddll.flm
-../lib/flm/win32exexp.flm /tools/sbs/lib/flm/win32exexp.flm
-../lib/flm/stringtable.flm /tools/sbs/lib/flm/stringtable.flm
-../lib/flm/utils/utility.xml /tools/sbs/lib/flm/utils/utility.xml
-../lib/flm/utils/prebuilt.flm /tools/sbs/lib/flm/utils/prebuilt.flm
-../lib/flm/utils/copydir.flm /tools/sbs/lib/flm/utils/copydir.flm
-../lib/flm/win32pdd.flm /tools/sbs/lib/flm/win32pdd.flm
-../lib/flm/taggedrules.mk /tools/sbs/lib/flm/taggedrules.mk
-../lib/flm/booleanlogic.mk /tools/sbs/lib/flm/booleanlogic.mk
-../lib/flm/emulator.xml /tools/sbs/lib/flm/emulator.xml
-../lib/flm/win32kext.flm /tools/sbs/lib/flm/win32kext.flm
-../lib/flm/test/exeabiv2_2/test.cpp /tools/sbs/lib/flm/test/exeabiv2_2/test.cpp
-../lib/flm/test/exeabiv2_2/test_function.cpp /tools/sbs/lib/flm/test/exeabiv2_2/test_function.cpp
-../lib/flm/test/exeabiv2_2/exeabiv2_2.mk /tools/sbs/lib/flm/test/exeabiv2_2/exeabiv2_2.mk
-../lib/flm/test/templateext/temex.mk /tools/sbs/lib/flm/test/templateext/temex.mk
-../lib/flm/test/templateext/Makefile /tools/sbs/lib/flm/test/templateext/Makefile
-../lib/flm/test/Makefile /tools/sbs/lib/flm/test/Makefile
-../lib/flm/test/exeabiv2_4/test.cpp /tools/sbs/lib/flm/test/exeabiv2_4/test.cpp
-../lib/flm/test/exeabiv2_4/exeabiv2_4.mk /tools/sbs/lib/flm/test/exeabiv2_4/exeabiv2_4.mk
-../lib/flm/test/exeabiv2_4/test_big.cpp /tools/sbs/lib/flm/test/exeabiv2_4/test_big.cpp
-../lib/flm/test/flmtests.mk /tools/sbs/lib/flm/test/flmtests.mk
-../lib/flm/test/ciaabiv2_1/uc_exe.cia /tools/sbs/lib/flm/test/ciaabiv2_1/uc_exe.cia
-../lib/flm/test/ciaabiv2_1/uc_exe.cpp /tools/sbs/lib/flm/test/ciaabiv2_1/uc_exe.cpp
-../lib/flm/test/ciaabiv2_1/ciaabiv2_1.mk /tools/sbs/lib/flm/test/ciaabiv2_1/ciaabiv2_1.mk
-../lib/flm/test/export1/Makefile /tools/sbs/lib/flm/test/export1/Makefile
-../lib/flm/test/export1/t1e.h /tools/sbs/lib/flm/test/export1/t1e.h
-../lib/flm/test/export1/t4e.h /tools/sbs/lib/flm/test/export1/t4e.h
-../lib/flm/test/export1/t2e.h /tools/sbs/lib/flm/test/export1/t2e.h
-../lib/flm/test/export1/t3e.h /tools/sbs/lib/flm/test/export1/t3e.h
-../lib/flm/test/dllabiv2_1/test.cpp /tools/sbs/lib/flm/test/dllabiv2_1/test.cpp
-../lib/flm/test/dllabiv2_1/dllabiv2_1.mk /tools/sbs/lib/flm/test/dllabiv2_1/dllabiv2_1.mk
-../lib/flm/test/raptorglue/raptorglue.mk /tools/sbs/lib/flm/test/raptorglue/raptorglue.mk
-../lib/flm/test/dllbasictests.mk /tools/sbs/lib/flm/test/dllbasictests.mk
-../lib/flm/test/exeabiv2_1/test.cpp /tools/sbs/lib/flm/test/exeabiv2_1/test.cpp
-../lib/flm/test/exeabiv2_1/exeabiv2_1.mk /tools/sbs/lib/flm/test/exeabiv2_1/exeabiv2_1.mk
-../lib/flm/test/dllabiv2_defaults.mk /tools/sbs/lib/flm/test/dllabiv2_defaults.mk
-../lib/flm/test/exeperftests.mk /tools/sbs/lib/flm/test/exeperftests.mk
-../lib/flm/test/ciatests.mk /tools/sbs/lib/flm/test/ciatests.mk
-../lib/flm/test/environment/pvm/pvmtest.mk /tools/sbs/lib/flm/test/environment/pvm/pvmtest.mk
-../lib/flm/test/environment/make/test_variable_restore.mk /tools/sbs/lib/flm/test/environment/make/test_variable_restore.mk
-../lib/flm/test/exebasictests.mk /tools/sbs/lib/flm/test/exebasictests.mk
-../lib/flm/test/exeabiv2_defaults.mk /tools/sbs/lib/flm/test/exeabiv2_defaults.mk
-../lib/flm/test/exeabiv2_3/exeabiv2_3.mk /tools/sbs/lib/flm/test/exeabiv2_3/exeabiv2_3.mk
-../lib/flm/test/exeabiv2_3/test_big.cpp /tools/sbs/lib/flm/test/exeabiv2_3/test_big.cpp
-../lib/flm/win32stdlib.flm /tools/sbs/lib/flm/win32stdlib.flm
-../lib/flm/win32var2.flm /tools/sbs/lib/flm/win32var2.flm
-../lib/flm/win32implib.flm /tools/sbs/lib/flm/win32implib.flm
-../lib/flm/bitmap.flm /tools/sbs/lib/flm/bitmap.flm
-../lib/flm/build.flm /tools/sbs/lib/flm/build.flm
-../lib/flm/build.xml /tools/sbs/lib/flm/build.xml
-../lib/flm/tools2exe.flm /tools/sbs/lib/flm/tools2exe.flm
-../lib/flm/e32abiv2klib.flm /tools/sbs/lib/flm/e32abiv2klib.flm
-../lib/flm/standard.xml /tools/sbs/lib/flm/standard.xml
-../lib/flm/win32var.flm /tools/sbs/lib/flm/win32var.flm
-../lib/flm/e32abiv2pdd.flm /tools/sbs/lib/flm/e32abiv2pdd.flm
-../lib/flm/e32abiv2none.flm /tools/sbs/lib/flm/e32abiv2none.flm
-../lib/flm/romfile.mk /tools/sbs/lib/flm/romfile.mk
-../lib/flm/win32textnotifier2.flm /tools/sbs/lib/flm/win32textnotifier2.flm
-../lib/flm/resource.flm /tools/sbs/lib/flm/resource.flm
-../lib/flm/flmtools.mk /tools/sbs/lib/flm/flmtools.mk
-../lib/flm/gnumakefile.flm /tools/sbs/lib/flm/gnumakefile.flm
-../lib/flm/e32abiv2kdll.flm /tools/sbs/lib/flm/e32abiv2kdll.flm
-../lib/flm/e32abiv2var.flm /tools/sbs/lib/flm/e32abiv2var.flm
-../lib/flm/win32dll.flm /tools/sbs/lib/flm/win32dll.flm
-../lib/flm/gccxml.flm /tools/sbs/lib/flm/gccxml.flm
-../lib/flm/e32postlink.mk /tools/sbs/lib/flm/e32postlink.mk
-../lib/config/default.xml /tools/sbs/lib/config/default.xml
-../lib/config/build.xml /tools/sbs/lib/config/build.xml
-../lib/config/interfaces.xml /tools/sbs/lib/config/interfaces.xml
-../lib/config/gcc.xml /tools/sbs/lib/config/gcc.xml
-../lib/config/variants.xml /tools/sbs/lib/config/variants.xml
-../lib/config/coverity.xml /tools/sbs/lib/config/coverity.xml
-../lib/config/meta.xml /tools/sbs/lib/config/meta.xml
-../lib/config/locations.xml /tools/sbs/lib/config/locations.xml
-../lib/config/gccxml.xml /tools/sbs/lib/config/gccxml.xml
-../lib/config/carbide.xml /tools/sbs/lib/config/carbide.xml
-../lib/config/msvc.xml /tools/sbs/lib/config/msvc.xml
-../lib/config/make.xml /tools/sbs/lib/config/make.xml
-../lib/config/root.xml /tools/sbs/lib/config/root.xml
-../lib/config/winscw.xml /tools/sbs/lib/config/winscw.xml
-../lib/config/arm.xml /tools/sbs/lib/config/arm.xml
-../lib/config/gcce.xml /tools/sbs/lib/config/gcce.xml
-../lib/config/rvct.xml /tools/sbs/lib/config/rvct.xml
-../python/raptor_makefile.py /tools/sbs/python/raptor_makefile.py
-../python/filter_interface.py /tools/sbs/python/filter_interface.py
-../python/raptor_start.py /tools/sbs/python/raptor_start.py
-../python/pyparsing.py /tools/sbs/python/pyparsing.py
-../python/raptor_cli.py /tools/sbs/python/raptor_cli.py
-../python/raptor_cache.py /tools/sbs/python/raptor_cache.py
-../python/raptor_meta.py /tools/sbs/python/raptor_meta.py
-../python/raptor_xml.py /tools/sbs/python/raptor_xml.py
-../python/raptor_version.py /tools/sbs/python/raptor_version.py
-../python/generic_path.py /tools/sbs/python/generic_path.py
-../python/raptor_make.py /tools/sbs/python/raptor_make.py
-../python/plugins/filter_logfile.py /tools/sbs/python/plugins/filter_logfile.py
-../python/plugins/filter_terminal.py /tools/sbs/python/plugins/filter_terminal.py
-../python/plugins/filter_carbide.py /tools/sbs/python/plugins/filter_carbide.py
-../python/plugins/filter_what.py /tools/sbs/python/plugins/filter_what.py
-../python/plugins/dummyplugin.py /tools/sbs/python/plugins/dummyplugin.py
-../python/plugins/filter_clean.py /tools/sbs/python/plugins/filter_clean.py
-../python/plugins/filter_squashlog.py /tools/sbs/python/plugins/filter_squashlog.py
-../python/plugins/filter_checksource.py /tools/sbs/python/plugins/filter_checksource.py
-../python/plugins/filter_splitlog.py /tools/sbs/python/plugins/filter_splitlog.py
-../python/sbs_dist.py /tools/sbs/python/sbs_dist.py
-../python/raptor_utilities.py /tools/sbs/python/raptor_utilities.py
-../python/pluginbox.py /tools/sbs/python/pluginbox.py
-../python/dos2unix.py /tools/sbs/python/dos2unix.py
-../python/raptor_data.py /tools/sbs/python/raptor_data.py
-../python/filter_list.py /tools/sbs/python/filter_list.py
-../python/raptor.py /tools/sbs/python/raptor.py
-../python/mmpparser.py /tools/sbs/python/mmpparser.py
-../python/filter_utils.py /tools/sbs/python/filter_utils.py
-../schema/build/2_0.xsd /tools/sbs/schema/build/2_0.xsd
-../schema/build/log/1_0.xsd /tools/sbs/schema/build/log/1_0.xsd
-../schema/build/1_0.xsd /tools/sbs/schema/build/1_0.xsd
-../win32/bin/ransleep.exe /tools/sbs/win32/bin/ransleep.exe
-../win32/bin/sbs_descramble.exe /tools/sbs/win32/bin/sbs_descramble.exe
-../win32/bin/talonctl.exe /tools/sbs/win32/bin/talonctl.exe
-../win32/bin/talon.exe /tools/sbs/win32/bin/talon.exe
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/group/exports.sh
--- a/sbsv2/raptor/group/exports.sh Wed Apr 14 18:01:20 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-# script to generate exports for this component
-
-# copy ../* to /tools/sbs
-
-find .. -maxdepth 1 -type f -not -name "distribution.policy*" -print | sed 's!\.\.\(.*\)!\.\.\1 /tools/sbs\1!' > exports.inf
-
-for i in bin lib python schema util; do
- find ../$i -type f -not -name "distribution.policy*" -not -name "*.pyc" -print | sed 's!\.\.\(.*\)!\.\.\1 /tools/sbs\1!' >> exports.inf
-done
-
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/group/exports.sh2
--- a/sbsv2/raptor/group/exports.sh2 Wed Apr 14 18:01:20 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-# script to generate exports for this component to compare with the existing exports.inf
-
-# copy ../* to /tools/sbs
-
-find .. -maxdepth 1 -type f -not -name "distribution.policy*" -print | sed 's!\.\.\(.*\)!\.\.\1 /tools/sbs\1!' > exports.inf2
-
-for i in bin examples lib python schema win32/bin; do
- find ../$i -type f -not -name "distribution.policy*" -not -name "*.pyc" -print | sed 's!\.\.\(.*\)!\.\.\1 /tools/sbs\1!' >> exports.inf2
-done
-
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/group/raptor.mrp
--- a/sbsv2/raptor/group/raptor.mrp Wed Apr 14 18:01:20 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-component dev_build_sbsv2_raptor
-
-
-source /src/tools/dev/build/sbsv2/raptor
-exports /src/tools/dev/build/sbsv2/raptor/group
-
-ipr T
-ipr B ../python/pyparsing.py
-
-notes_source release.txt
-
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/group/release.txt
--- a/sbsv2/raptor/group/release.txt Wed Apr 14 18:01:20 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-NOTESRC_RELEASER
-Symbian Software Ltd. (kits.notify@symbian.com)
-
-NOTESRC_RELEASE_REASON
-Symbian Build System release.
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/config/arm.xml
--- a/sbsv2/raptor/lib/config/arm.xml Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/config/arm.xml Fri Apr 16 19:32:39 2010 +0100
@@ -1,51 +1,62 @@
-
+
-
-
-
+
+
-
+
+
+
-
-
-
+
-
-
-
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
@@ -57,16 +68,9 @@
-
-
-
-
-
-
-
-
-
+
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/config/gcc.xml
--- a/sbsv2/raptor/lib/config/gcc.xml Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/config/gcc.xml Fri Apr 16 19:32:39 2010 +0100
@@ -1,33 +1,33 @@
-
-
+
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
@@ -58,7 +56,6 @@
-
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/config/gcce.xml
--- a/sbsv2/raptor/lib/config/gcce.xml Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/config/gcce.xml Fri Apr 16 19:32:39 2010 +0100
@@ -1,15 +1,15 @@
-
-
+
+
+
+
-
-
@@ -119,9 +119,10 @@
+
-
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/config/gccxml.xml
--- a/sbsv2/raptor/lib/config/gccxml.xml Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/config/gccxml.xml Fri Apr 16 19:32:39 2010 +0100
@@ -1,21 +1,20 @@
-
+
-
+
+
+
+
-
-
+
-
-
+
+
-
-
-
-
+
@@ -51,11 +50,13 @@
-
+
+
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/config/locations.xml
--- a/sbsv2/raptor/lib/config/locations.xml Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/config/locations.xml Fri Apr 16 19:32:39 2010 +0100
@@ -30,7 +30,7 @@
-
+
@@ -102,13 +102,13 @@
-
+
-
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/config/make.xml
--- a/sbsv2/raptor/lib/config/make.xml Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/config/make.xml Fri Apr 16 19:32:39 2010 +0100
@@ -47,6 +47,9 @@
+
+
+
@@ -67,6 +70,9 @@
+
+
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/config/msvc.xml
--- a/sbsv2/raptor/lib/config/msvc.xml Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/config/msvc.xml Fri Apr 16 19:32:39 2010 +0100
@@ -1,11 +1,11 @@
-
+
-
+
@@ -17,8 +17,14 @@
+
+
+
+
+
+
@@ -32,7 +38,6 @@
-
@@ -44,7 +49,7 @@
-
+
@@ -57,9 +62,6 @@
-
-
-
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/config/root.xml
--- a/sbsv2/raptor/lib/config/root.xml Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/config/root.xml Fri Apr 16 19:32:39 2010 +0100
@@ -11,6 +11,8 @@
-->
+
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/config/rvct.xml
--- a/sbsv2/raptor/lib/config/rvct.xml Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/config/rvct.xml Fri Apr 16 19:32:39 2010 +0100
@@ -1,68 +1,62 @@
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -71,25 +65,35 @@
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
-
@@ -100,6 +104,7 @@
-
+
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/config/variants.xml
--- a/sbsv2/raptor/lib/config/variants.xml Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/config/variants.xml Fri Apr 16 19:32:39 2010 +0100
@@ -5,7 +5,19 @@
These can be referenced from the command-line or in configurations.
-->
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -79,37 +91,40 @@
-
+
+
-
+
+
-
+
+
-
-
-
+
+
+
-
+
@@ -119,8 +134,8 @@
+
-
@@ -130,13 +145,13 @@
-
-
-
+
+
+
-
+
@@ -146,8 +161,8 @@
+
-
@@ -160,13 +175,13 @@
-
-
-
+
+
+
-
+
@@ -176,8 +191,8 @@
+
-
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/config/winscw.xml
--- a/sbsv2/raptor/lib/config/winscw.xml Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/config/winscw.xml Fri Apr 16 19:32:39 2010 +0100
@@ -1,24 +1,31 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -45,97 +52,96 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/flm/base.xml
--- a/sbsv2/raptor/lib/flm/base.xml Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/flm/base.xml Fri Apr 16 19:32:39 2010 +0100
@@ -16,6 +16,7 @@
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/flm/e32abiv2.flm
--- a/sbsv2/raptor/lib/flm/e32abiv2.flm Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/flm/e32abiv2.flm Fri Apr 16 19:32:39 2010 +0100
@@ -16,15 +16,37 @@
#
#
-# Only build feature invariant binaries in non-product builds *and*
-# Only build feature variant binaries in product builds.
+# Feature/Binary Variation
+#
+# FEATUREVARIANTNAME != "" implies a product build configuration
+# FEATUREVARIANT == 1 implies a .mmp defined feature variant binary
+#
+# By default:
+# Build all binaries in non-product builds *and*
+# Only build feature variant binaries in product builds.
+#
+# test FEATUREVARIANTNAME=="" or FEATUREVARIANT==1
+#
+# If FEATUREVARIANTSAFE is set:
+# Only build feature invariant binaries in non-product builds *and*
+# Only build feature variant binaries in product builds.
#
-# FEATUREVARIANTNAME != "" implies product build
-# FEATUREVARIANT == 1 implies a feature variant binary
+# test (FEATUREVARIANTNAME=="" and FEATUREVARIANT=="") or
+# (FEATUREVARIANTNAME!="" and FEATUREVARIANT==1)
#
-# test FEATUREVARIANTNAME=="" or FEATUREVARIANT==1
-#
-ifneq ($(or $(call equal,$(FEATUREVARIANTNAME),),$(call equal,$(FEATUREVARIANT),1)),)
+
+DOBUILD:=
+ifeq ($(FEATUREVARIANTSAFE),)
+ DOBUILD:=$(if $(or $(call equal,$(FEATUREVARIANTNAME),),\
+ $(call equal,$(FEATUREVARIANT),1)),1)
+else
+ DOBUILD:=$(if $(or $(and $(call equal,$(FEATUREVARIANTNAME),),\
+ $(call equal,$(FEATUREVARIANT),)),\
+ $(and $(call not,$(call equal,$(FEATUREVARIANTNAME),)),\
+ $(call equal,$(FEATUREVARIANT),1))),1)
+endif
+
+ifeq ($(DOBUILD),1)
$(if $(FLMDEBUG),$(info ))
@@ -553,8 +575,7 @@
# Targettype is some type of DLL or EXE (or derivative)
ifneq ($(LINK_TARGET),)
-escaped_located_ARMLIBS:=$(foreach L,$(ARMLIBS),$(call ruleEscape,$(wildcard $(subst $(CHAR_SPACE),?,$(RVCTLIB)/*/$(L)))))
-quoted_located_ARMLIBS:=$(foreach L,$(ARMLIBS),$(call dblquoteitem,$(wildcard $(RVCTLIB)/*/$(L))))
+located_ARMLIBS:=$(foreach L,$(ARMLIBS),$(wildcard $(RVCTLIB)/*/$(L)))
located_STATICLIBRARIES:=$(foreach L,$(STATICLIBRARY),$(STATIC_LIBRARY_DIR)/$(L).lib)
e32abiv2_LIBS:=$(EXPTARGET) $(LINKER_STUB_LIBRARY) $(if $(STATIC_RUNTIME_LIB),$(STATIC_RUNTIME_DIR)/$(STATIC_RUNTIME_LIB),) $(located_STATICLIBRARIES)
# DLLS and EXEs - These objects are linked by a linker
@@ -567,12 +588,10 @@
REDUCED_RUNTIME_LIBS_LIST:=$(subst $(TARGET).dso,,$(RUNTIME_LIBS_LIST))
ifeq ($(VARIANTTYPE),udeb)
- e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY_DEBUG)) $(addprefix $(RUNTIME_LIBS_PATH)/,$(REDUCED_RUNTIME_LIBS_LIST))
+ e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY_DEBUG)) $(addprefix $(RUNTIME_LIBS_PATH)/,$(REDUCED_RUNTIME_LIBS_LIST)) $(located_ARMLIBS)
else
- e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY)) $(addprefix $(RUNTIME_LIBS_PATH)/,$(REDUCED_RUNTIME_LIBS_LIST))
+ e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY)) $(addprefix $(RUNTIME_LIBS_PATH)/,$(REDUCED_RUNTIME_LIBS_LIST)) $(located_ARMLIBS)
endif
-quoted_e32abiv2_LIBS=$(e32abiv2_LIBS) $(quoted_located_ARMLIBS)
-escaped_e32abiv2_LIBS=$(e32abiv2_LIBS) $(escaped_located_ARMLIBS)
else
# NORMAL
@@ -585,19 +604,16 @@
ifeq ($(HAS_DEDICATED_OP_NEWDEL_LIB),1)
e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(RUNTIME_LIBS_PATH)/,$(NEWLIB))
endif
-quoted_e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(RUNTIME_LIBS_PATH)/,$(RUNTIME_LIBS_LIST)) $(call addquotedprefix,$(STATIC_LIBS_PATH)/,$(STATIC_LIBS_LIST)) $(quoted_located_ARMLIBS)
-escaped_e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(RUNTIME_LIBS_PATH)/,$(RUNTIME_LIBS_LIST)) $(addprefix $(call ruleEscape,$(STATIC_LIBS_PATH)/),$(STATIC_LIBS_LIST)) $(escaped_located_ARMLIBS)
+e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(RUNTIME_LIBS_PATH)/,$(RUNTIME_LIBS_LIST)) $(addprefix $(STATIC_LIBS_PATH)/,$(STATIC_LIBS_LIST)) $(located_ARMLIBS)
endif
else
# ARM RUNTIME LIBS
ifeq ($(VARIANTTYPE),udeb)
- e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY_DEBUG))
+ e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY_DEBUG)) $(located_ARMLIBS)
else
- e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY))
+ e32abiv2_LIBS:=$(e32abiv2_LIBS) $(addprefix $(IMPORTLIBPATH)/,$(LIBRARY)) $(located_ARMLIBS)
endif
-quoted_e32abiv2_LIBS=$(e32abiv2_LIBS) $(quoted_located_ARMLIBS)
-escaped_e32abiv2_LIBS=$(e32abiv2_LIBS) $(escaped_located_ARMLIBS)
endif
# NOTE: the groupin10 macro must be used before a call to the "startrule" macro
@@ -607,7 +623,7 @@
# outside the relevant tags but it is also unavoidable.
define linktarget_func
## The actual link target, dependencies and build step
-$(E32TARGET): $(POSTLINKDEFFILE) $(ELF2E32) $(if $(MULTIFILE_ENABLED),$(MULTIFILEOBJECT) $(CIAFILES_LINKOBJECTS),$(LINKOBJECTS)) $(escaped_e32abiv2_LIBS) $(LINKER_ENTRYPOINT_LIBDEP) $(if $(SUPPORTS_STDCPP_NEWLIB),$(CHECKLIB)) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),) $(if $(HAVE_ORDERONLY),|,) $(EPOCROOT)/epoc32/build/TEM_LIB
+$(E32TARGET): $(POSTLINKDEFFILE) $(ELF2E32) $(if $(MULTIFILE_ENABLED),$(MULTIFILEOBJECT) $(CIAFILES_LINKOBJECTS),$(LINKOBJECTS)) $(e32abiv2_LIBS) $(LINKER_ENTRYPOINT_LIBDEP) $(if $(SUPPORTS_STDCPP_NEWLIB),$(CHECKLIB)) $(if $(LINKERFEEDBACK_STAGE2),$(FEEDBACKFILE),) $(if $(HAVE_ORDERONLY),|,) $(EPOCROOT)/epoc32/build/TEM_LIB
$(if $(MULTIFILE_ENABLED),,@echo -n "" > $(VIAFILE);
$(call groupin10,$(LINKOBJECTS)) ;)
$(call startrule,linkandpostlink) \
@@ -627,7 +643,7 @@
$(if $(MULTIFILE_ENABLED),$(call dblquote,$(MULTIFILEOBJECT) $(CIAFILES_LINKOBJECTS)),$(COMMANDFILE_OPTION)$(call dblquote,$(VIAFILE))) \
$(if $(GENERATELINKERFEEDBACK),$(FEEDBACK_OPTION)$(call dblquote,$(FEEDBACKFILE))) \
$(if $(LINKER_ADD_STATIC_RUNTIME),$(if $(STATIC_RUNTIME_LIB),$(LINKER_GROUP_START_OPTION) $(STATIC_RUNTIME_DIR)/$(STATIC_RUNTIME_LIB) $(LINKER_GROUP_END_OPTION),)) \
- $(quoted_e32abiv2_LIBS) $(LINKER_DEFAULT_LIBS) && \
+ $(call dblquote,$(e32abiv2_LIBS)) $(LINKER_DEFAULT_LIBS) && \
$(ELF2E32) \
--sid=0x$(if $(SID),$(SID),$(if $(UID3),$(UID3),0)) \
--version=$(VERSION) \
@@ -768,7 +784,7 @@
$(if $(USE_PROFILER_FEEDBACK),--profile=$(call dblquote,$(ARM_PROFILER_FILE)),) \
$(call makemacrodef,-D,$(COMPILER_INTERWORK_DEFINES) $(CDEFS)) \
$(if $(PREINCLUDE),$(PREINCLUDE_OPTION) ,)$(call concat, $(PREINCLUDE_OPTION) ,$(call dblquote,$(PREINCLUDE)))\
- $(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquoteitem,$(RVCTINC)),),) \
+ $(if $(SET_ARMINC),$(if $(RVCTINC),$(COMPILER_SYSTEM_INCLUDE_OPTION)$(call dblquote,$(RVCTINC)),),) \
$(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquote,$$(
-
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/flm/resource.flm
--- a/sbsv2/raptor/lib/flm/resource.flm Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/flm/resource.flm Fri Apr 16 19:32:39 2010 +0100
@@ -1,4 +1,4 @@
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "Eclipse Public License v1.0"
@@ -112,7 +112,7 @@
$(call makepath,$(INTERBASE))
# common pre-processor options
-CPPOPT:=-nostdinc -undef -D_UNICODE -include $(PRODUCT_INCLUDE)\
+CPPOPT:=-nostdinc -undef -Wno-trigraphs -D_UNICODE -include $(PRODUCT_INCLUDE)\
-I$(dir $(SOURCE)) $(foreach I, $(USERINCLUDE),-I$(I) ) -I- $(foreach J,$(SYSTEMINCLUDE),-I$(J) )
CREATABLEPATHS:=$(RSCDIR) $(RSGDIR) $(OUTPUTPATH)
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/flm/standard.xml
--- a/sbsv2/raptor/lib/flm/standard.xml Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/flm/standard.xml Fri Apr 16 19:32:39 2010 +0100
@@ -60,6 +60,7 @@
+
@@ -116,6 +117,7 @@
+
@@ -171,6 +173,7 @@
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/flm/tools.xml
--- a/sbsv2/raptor/lib/flm/tools.xml Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/flm/tools.xml Fri Apr 16 19:32:39 2010 +0100
@@ -27,6 +27,7 @@
+
@@ -35,6 +36,7 @@
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/flm/tools2common.flm
--- a/sbsv2/raptor/lib/flm/tools2common.flm Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/flm/tools2common.flm Fri Apr 16 19:32:39 2010 +0100
@@ -18,17 +18,28 @@
## Input parameters
+ifeq ($(filter win,$(HOSTPLATFORM)),win)
+CDEFS.TOOLS2:=$(CDEFS.WIN32) $(CDEFS)
+CFLAGS:=$(CFLAGS.WIN32) $(CFLAGS) $(OPTION_GCC)
+COMPILER_PATH:=$(COMPILER_PATH.WIN32)
OUTPUTPATH:=$(OUTPUTPATH)/$(TARGET)_$(TARGETTYPE)/tools2/$(VARIANTTYPE)$(TOOLPLATFORMDIR)
-
-ifeq ($(OSTYPE),cygwin)
+else
+ifneq ($(TOOLS2WIN32),)
+# Build win32 tools in Linux
CDEFS.TOOLS2:=$(CDEFS.WIN32) $(CDEFS)
CFLAGS:=$(CFLAGS.WIN32) $(CFLAGS) $(OPTION_GCC)
COMPILER_PATH:=$(COMPILER_PATH.WIN32)
+OUTPUTPATH:=$(OUTPUTPATH)/$(TARGET)_$(TARGETTYPE)/tools2/$(VARIANTTYPE)
else
+# Build linux tools in Linux
CDEFS.TOOLS2:=$(CDEFS.LINUX) $(CDEFS)
CFLAGS:=$(CFLAGS) $(OPTION_GCC)
COMPILER_PATH=$(COMPILER_PATH.LINUX)
+OUTPUTPATH:=$(OUTPUTPATH)/$(TARGET)_$(TARGETTYPE)/tools2/$(VARIANTTYPE)$(TOOLPLATFORMDIR)
endif
+endif
+
+
CDEFS.TOOLS2:=$(call makemacrodef,$(OPT.D),$(CDEFS.TOOLS2))
## Locally used variables
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/lib/flm/tools2exe.flm
--- a/sbsv2/raptor/lib/flm/tools2exe.flm Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/lib/flm/tools2exe.flm Fri Apr 16 19:32:39 2010 +0100
@@ -1,4 +1,4 @@
-# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "Eclipse Public License v1.0"
@@ -16,11 +16,18 @@
#
## Outputs - externally relevant targets that this FLM generates
-ifeq ($(OSTYPE),cygwin)
+ifeq ($(filter win,$(HOSTPLATFORM)),win)
SYSTEMLIBS:=$(LIBS.WIN32)
else
+ifneq ($(TOOLS2WIN32),)
+# Build win32 tools in Linux
+SYSTEMLIBS:=$(LIBS.WIN32)
+else
+# Build linux tools in Linux
SYSTEMLIBS:=$(LIBS.LINUX)
endif
+endif
+
EXETARGET:=$(RELEASEPATH)/$(TARGET)$(DOTEXE)
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/license.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/license.txt Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,8 @@
+Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+All rights reserved.
+
+This component and the accompanying materials are made available
+under the terms of the License "Eclipse Public License v1.0"
+which accompanies this distribution, and is available
+at the URL "http://www.eclipse.org/legal/epl-v10.html".
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/notes/cross_compiling_tools.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/notes/cross_compiling_tools.txt Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,7 @@
+
+To build tools for Windows and Linux, on Linux, use
+
+sbs -c tools2.win32 -c tools2
+
+You will also need the mingw32 package, for the cross-compiler.
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/notes/cygwin_1_7.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/notes/cygwin_1_7.txt Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,17 @@
+
+Starting with Raptor 2.13.0, it is also possible to use Cygwin 1.7 instead of
+Cygwin 1.5. Some work was necessary to add support for Cygwin 1.7 due to a
+change in command line interface in some of the Cygwin tools.
+
+Due to this change in the command line interface, we have had to introduce the
+SBS_CYGWIN17 environment variable whose value should be the root directory of
+the Cygwin 1.7 installation. We hope this is temporary and that we can remove
+this at some point. The following bullet points indicate the order of
+precedence of the SBS_CYGWIN and SBS_CYGWIN17 environment variables.
+
+* SBS_CYGWIN set, SBS_CYGWIN17 unset: assume Cygwin 1.5 is being used
+* SBS_CYGWIN set, SBS_CYGWIN17 set: assume Cygwin 1.7 is being used
+* SBS_CYGWIN unset, SBS_CYGWIN17 set: assume Cygwin 1.7 is being used
+
+You will get errors if you set SBS_CYGWIN to be the root of a Cygwin 1.7
+installation directory and if SBS_CYGWIN17 is not defined correctly.
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/notes/epocnestedexceptions.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/notes/epocnestedexceptions.txt Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,10 @@
+
+Qt needs to be able to have more than one active exception object, even when
+OOM (out-of-memory).
+
+A detailed overview of the solution can be found at
+http://wikis.in.nokia.com/Toolchain/QtExceptionHandling
+
+In short, we add a new MMP flag keyword - EPOCNESTEDEXCEPTIONS. When this
+keyword is specified, a different static run-time library is used.
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/notes/featurevariantsafe.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/notes/featurevariantsafe.txt Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,12 @@
+
+By default, .mmp files that include FEATUREVARIANT will generate binaries for
+both "normal", non-binary variant, build configurations and binary variant
+build configurations.
+
+In order to ensure that only invariant binaries are created for invariant
+build configurations, and variant binaries for variant build configurations,
+the optional setting FEATUREVARIANTSAFE can be used. FEATUREVARIANTSAFE can be
+set via an os_properties.xml file and, when set, variant binaries will no
+longer be created for invariant build configurations.
+
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/notes/system_definition_v3.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/notes/system_definition_v3.txt Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,8 @@
+
+System Definition version 3 Support
+
+This is only prototype support for testing the reading of single
+"package" files. The implementation was submitted by Bob Rosenberg
+and has been regression tested by the Raptor team. Testing on real
+sysdef files is being carried out by the Symbian Foundation.
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/python/generic_path.py
--- a/sbsv2/raptor/python/generic_path.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/python/generic_path.py Fri Apr 16 19:32:39 2010 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "Eclipse Public License v1.0"
@@ -19,6 +19,7 @@
import sys
import re
import types
+import ctypes
# are we on windows, and if so what is the current drive letter
isWin = sys.platform.lower().startswith("win")
@@ -265,7 +266,37 @@
return self.path
+ def GetSpaceSafePath(self):
+ """Returns a version of the path where spaces don't interfere with shell interpretation.
+
+ This functionality only applies to Windows - paths containing spaces are assumed to be problematic
+ on non-Windows platforms.
+
+ On Windows, the path is returned in Windows-specific 8.3 short path form - tilde are used to replace
+ spaces and fit path elements within 8.3 requirements. As 8.3 format paths are not guaranteed to be
+ supported on all Windows installs, and can only be calculated if they exist, a newly formated path is
+ only returned if it is returned by the Windows API and tested to exist.
+ """
+
+ if not isWin:
+ return None
+
+ from ctypes.wintypes import DWORD, LPSTR, MAX_PATH
+ GetShortPathNameA = ctypes.windll.kernel32.GetShortPathNameA
+ GetShortPathNameA.restype = DWORD
+ GetShortPathNameA.argtypes = LPSTR, LPSTR, DWORD
+
+ buffer = ctypes.create_string_buffer(MAX_PATH)
+ GetShortPathNameA(self.path, buffer, MAX_PATH)
+
+ spacesafe = buffer.value
+
+ if not spacesafe or not os.path.exists(spacesafe):
+ return None
+
+ return spacesafe
+
# Module functions
def Join(*arguments):
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/python/mmpparser.py
--- a/sbsv2/raptor/python/mmpparser.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/python/mmpparser.py Fri Apr 16 19:32:39 2010 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "Eclipse Public License v1.0"
@@ -143,6 +143,7 @@
CaselessKeyword('EPOCALLOWDLLDATA') ^ \
CaselessKeyword('EPOCCALLDLLENTRYPOINTS') ^ \
CaselessKeyword('EPOCFIXEDPROCESS') ^ \
+ CaselessKeyword('EPOCNESTEDEXCEPTIONS') ^ \
CaselessKeyword('EXPORTUNFROZEN') ^ \
CaselessKeyword('FEATUREVARIANT') ^ \
CaselessKeyword('BYTEPAIRCOMPRESSTARGET') ^ \
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/python/plugins/filter_terminal.py
--- a/sbsv2/raptor/python/plugins/filter_terminal.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/python/plugins/filter_terminal.py Fri Apr 16 19:32:39 2010 +0100
@@ -161,7 +161,7 @@
# list of strings to catch recipe warnings (must be lowercase)
self.recipe_warning_expr = ["warning:"]
-
+
def isMakeWarning(self, text):
"""A simple test for warnings.
Can be extended do to more comprehensive checking."""
@@ -201,6 +201,9 @@
if self.raptor.quiet:
self.quiet = True
+ # the build configurations which were reported
+ self.built_configs = []
+
# keep count of errors and warnings
self.err_count = 0
self.warn_count = 0
@@ -393,7 +396,9 @@
self.recipeBody.append(text)
else:
self.recipelineExceeded += 1
-
+ elif text.startswith("Buildable configuration '"):
+ # Buildable configuration 'name'
+ self.built_configs.append(text[30:-8])
def logit(self):
""" log a message """
@@ -432,11 +437,14 @@
if self.warn_count > 0 or self.err_count > 0:
sys.stdout.write("\n%s : warnings: %s\n" % (raptor.name,
self.warn_count))
- sys.stdout.write("%s : errors: %s\n" % (raptor.name,
+ sys.stdout.write("%s : errors: %s\n\n" % (raptor.name,
self.err_count))
else:
- sys.stdout.write("\nno warnings or errors\n")
+ sys.stdout.write("\nno warnings or errors\n\n")
+ for bc in self.built_configs:
+ sys.stdout.write("built " + bc + "\n")
+
sys.stdout.write("\nRun time %d seconds\n" % self.raptor.runtime);
sys.stdout.write("\n")
return True
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/python/raptor.py
--- a/sbsv2/raptor/python/raptor.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/python/raptor.py Fri Apr 16 19:32:39 2010 +0100
@@ -42,7 +42,6 @@
import sys
import types
import time
-import re
import traceback
import pluginbox
from xml.sax.saxutils import escape
@@ -232,8 +231,9 @@
def makefile(self, makefilename_base, engine, named = False):
"""Makefiles for individual mmps not feasible at the moment"""
- pass # Cannot, currently, "unfurl an mmp" directly but do want
- # to be able to simulate the overall recursive unfurling of a build.
+ pass
+ # Cannot, currently, "unfurl an mmp" directly but do want
+ # to be able to simulate the overall recursive unfurling of a build.
class Component(ModelNode):
"""A group of projects or, in symbian-speak, a bld.inf.
@@ -321,7 +321,6 @@
# insert the start time into the Makefile name?
- buildconfig = build.GetConfig("build").GenerateBuildUnits(build.cache)
self.configs = build.buildUnitsToBuild
# Pass certain CLI flags through to the makefile-generating sbs calls
@@ -385,8 +384,7 @@
makefile_path = str(build.topMakefile) + "_" + str(loop_number)
try:
os.unlink(makefile_path) # until we have dependencies working properly
- except Exception,e:
- # print "couldn't unlink %s: %s" %(componentMakefileName, str(e))
+ except Exception:
pass
# add some basic data in a component-wide variant
@@ -859,32 +857,6 @@
self.cache.Load(self.systemFLM)
- def GetConfig(self, configname):
- names = configname.split(".")
-
- cache = self.cache
-
- base = names[0]
- mods = names[1:]
-
- if base in cache.groups:
- x = cache.FindNamedGroup(base)
- elif base in cache.aliases:
- x = cache.FindNamedAlias(base)
- elif base in cache.variants:
- x = cache.FindNamedVariant(base)
- else:
- raise Exception("Unknown build configuration '%s'" % configname)
-
- x.ClearModifiers()
-
-
- try:
- for m in mods: x.AddModifier( cache.FindNamedVariant(m) )
- except KeyError:
- raise Exception("Unknown build configuration '%s'" % configname)
- return x
-
def GetBuildUnitsToBuild(self, configNames):
"""Return a list of the configuration objects that correspond to the
list of configuration names in the configNames parameter.
@@ -900,17 +872,7 @@
else:
configNames.append(self.defaultConfig)
- buildUnitsToBuild = set()
-
-
- for c in set(configNames):
- self.Debug("BuildUnit: %s", c)
- try:
- x = self.GetConfig(c)
- gb = x.GenerateBuildUnits(self.cache)
- buildUnitsToBuild.update( gb )
- except Exception, e:
- self.FatalError(str(e))
+ buildUnitsToBuild = raptor_data.GetBuildUnits(configNames, self.cache, self)
for b in buildUnitsToBuild:
self.Info("Buildable configuration '%s'", b.name)
@@ -1003,7 +965,6 @@
dir = generic_path.Path(aDir)
bldInf = dir.Append(self.buildInformation)
- componentgroup = []
if bldInf.isFile():
return bldInf
@@ -1150,7 +1111,7 @@
self.out.write(raptor_timing.Timing.discovery_string(object_type = object_type,
count = count))
except Exception, exception:
- Error(exception.Text, function = "InfoDiscoveryTime")
+ self.Error(exception.Text, function = "InfoDiscoveryTime")
def InfoStartTime(self, object_type, task, key):
if self.timing:
@@ -1158,7 +1119,7 @@
self.out.write(raptor_timing.Timing.start_string(object_type = object_type,
task = task, key = key))
except Exception, exception:
- Error(exception.Text, function = "InfoStartTime")
+ self.Error(exception.Text, function = "InfoStartTime")
def InfoEndTime(self, object_type, task, key):
if self.timing:
@@ -1166,7 +1127,7 @@
self.out.write(raptor_timing.Timing.end_string(object_type = object_type,
task = task, key = key))
except Exception, exception:
- Error(exception.Text, function = "InfoEndTime")
+ self.Error(exception.Text, function = "InfoEndTime")
def Debug(self, format, *extras, **attributes):
"Send a debugging message to the configured channel"
@@ -1280,6 +1241,9 @@
self.AssertBuildOK()
buildUnitsToBuild = self.GetBuildUnitsToBuild(self.configNames)
+ if len(buildUnitsToBuild) == 0:
+ raise BuildCannotProgressException("No configurations to build.")
+
self.buildUnitsToBuild = buildUnitsToBuild
# find out what components to build, and in what way
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/python/raptor_cli.py
--- a/sbsv2/raptor/python/raptor_cli.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/python/raptor_cli.py Fri Apr 16 19:32:39 2010 +0100
@@ -34,7 +34,7 @@
# raptor_cli module attributes
parser = OptionParser(prog = raptor.name,
- usage = """%prog [--help] [options] [variable=value] [target] ...
+ usage = """%prog [--help] [options] [target] ...
Targets:
@@ -247,13 +247,8 @@
# the leftover_args are either variable assignments of the form a=b
# or target names.
- regex = re.compile("^(.+)=(.*)$")
for leftover in leftover_args:
- assignment = regex.findall(leftover)
- if len(assignment) > 0:
- Raptor.SetEnv(assignment[0][0],assignment[0][1])
- else:
- Raptor.AddTarget(leftover)
+ Raptor.AddTarget(leftover)
# Define the dictionary of functions to be used.
# Attributes and function names can be added easily.
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/python/raptor_data.py
--- a/sbsv2/raptor/python/raptor_data.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/python/raptor_data.py Fri Apr 16 19:32:39 2010 +0100
@@ -65,7 +65,7 @@
# Make sure not to start up on an unsupported platform
if not HostPlatform.IsKnown(HostPlatform.hostplatform):
- raise Exception("raptor_data module loaded on an unrecognised platform '%s'. Expected one of %s" % (hostplatform, str(hostplatforms)))
+ raise Exception("raptor_data module loaded on an unrecognised platform '%s'. Expected one of %s" % (HostPlatform.hostplatform, str(HostPlatform.hostplatforms)))
# raptor_data module classes
@@ -139,7 +139,13 @@
raise BadReferenceError()
def GetModifiers(self, cache):
- return [ cache.FindNamedVariant(m) for m in self.modifiers ]
+ mods = []
+ for m in self.modifiers:
+ try:
+ mods.append(cache.FindNamedVariant(m))
+ except KeyError:
+ raise BadReferenceError(m)
+ return mods
def Valid(self):
return self.ref
@@ -710,7 +716,7 @@
def __str__(self):
attributes = "name='" + self.name + "' type='" + self.type + "'"
- if default != None:
+ if self.default != None:
attributes += " default='" + self.default + "'"
if type == "tool":
@@ -724,19 +730,31 @@
value = os.environ[self.name]
if value:
- # if this value is a "path" or a "tool" then we need to make sure
- # it is a proper absolute path in our preferred format.
- if self.type == "path" or self.type == "tool":
+ if self.type in ["path", "tool", "toolchainpath"]:
+ # if this value is some sort of path or tool then we need to make sure
+ # it is a proper absolute path in our preferred format.
try:
path = generic_path.Path(value)
value = str(path.Absolute())
except ValueError,e:
- raise BadToolValue("the environment variable %s is incorrect: %s" % (self.name, str(e)))
- # if this value ends in an un-escaped backslash, then it will be treated as a line continuation character
- # in makefile parsing - un-escaped backslashes at the end of values are therefore escaped
+ raise BadToolValue("the environment variable %s is incorrect: %s" % (self.name, str(e)))
+
+ if self.type in ["tool", "toolchainpath"]:
+ # if we're dealing with tool-related values, then make sure that we can get "safe"
+ # versions if they contain spaces - if we can't, that's an error, as they won't
+ # survive full usage in the toolcheck or when used and/or referenced in FLMs
+ if ' ' in value:
+ path = generic_path.Path(value)
+ spaceSafeValue = path.GetSpaceSafePath()
+
+ if not spaceSafeValue:
+ raise BadToolValue("the environment variable %s is incorrect - it is a '%s' type but contains spaces that cannot be neutralised: %s" % (self.name, self.type, value))
+
+ value = spaceSafeValue
elif value.endswith('\\'):
- # an odd number of backslashes means there's one to escape
- count = len(value) - len(value.rstrip('\\'))
+ # if this value ends in an un-escaped backslash, then it will be treated as a line continuation character
+ # in makefile parsing - un-escaped backslashes at the end of values are therefore escaped
+ count = len(value) - len(value.rstrip('\\')) # an odd number of backslashes means there's one to escape
if count % 2:
value += '\\'
except KeyError:
@@ -906,7 +924,6 @@
s += ""
return s
-import traceback
class VariantRef(Reference):
def __init__(self, ref=None):
@@ -918,7 +935,7 @@
def Resolve(self, cache):
try:
return cache.FindNamedVariant(self.ref)
- except KeyError, e:
+ except KeyError:
raise BadReferenceError(self.ref)
class MissingVariantException(Exception):
@@ -961,7 +978,7 @@
missing_variants.append(r.ref)
if len(missing_variants) > 0:
- raise MissingVariantException("Missing variants '%s'", " ".join(missing_variants))
+ raise MissingVariantException("Missing variants '%s'" % " ".join(missing_variants))
def GenerateBuildUnits(self, cache):
self.Resolve(cache)
@@ -1026,25 +1043,27 @@
def GenerateBuildUnits(self, cache):
units = []
-
+
missing_variants = []
for r in self.childRefs:
- refMods = r.GetModifiers(cache)
-
try:
obj = r.Resolve(cache=cache)
except BadReferenceError:
missing_variants.append(r.ref)
else:
obj.ClearModifiers()
+ try:
+ refMods = r.GetModifiers(cache)
+ except BadReferenceError,e:
+ missing_variants.append(str(e))
+ else:
+ for m in refMods + self.modifiers:
+ obj.AddModifier(m)
- for m in refMods + self.modifiers:
- obj.AddModifier(m)
-
- units.extend( obj.GenerateBuildUnits(cache) )
+ units.extend( obj.GenerateBuildUnits(cache) )
if len(missing_variants) > 0:
- raise MissingVariantException("Missing variants '%s'", " ".join(missing_variants))
+ raise MissingVariantException("Missing variants '%s'" % " ".join(missing_variants))
return units
@@ -1055,7 +1074,7 @@
Reference.__init__(self, ref)
def __str__(self):
- return "<%s />" % (prefix, self.ref, ".".join(self.modifiers))
+ return "" % (self.ref, ".".join(self.modifiers))
def Resolve(self, cache):
try:
@@ -1063,6 +1082,81 @@
except KeyError:
raise BadReferenceError(self.ref)
+def GetBuildUnits(configNames, cache, logger):
+ """expand a list of config strings like "arm.v5.urel" into a list
+ of BuildUnit objects that can be queried for settings.
+
+ The expansion tries to be tolerant of errors in the XML so that a
+ typo in one part of a group does not invalidate the whole group.
+ """
+
+ # turn dot-separated name strings into Model objects (Group, Alias, Variant)
+ models = []
+
+ for c in set(configNames):
+ ok = True
+ names = c.split(".")
+
+ base = names[0]
+ mods = names[1:]
+
+ if base in cache.groups:
+ x = cache.FindNamedGroup(base)
+ elif base in cache.aliases:
+ x = cache.FindNamedAlias(base)
+ elif base in cache.variants:
+ x = cache.FindNamedVariant(base)
+ else:
+ logger.Error("Unknown build configuration '%s'" % base)
+ continue
+
+ x.ClearModifiers()
+
+ for m in mods:
+ if m in cache.variants:
+ x.AddModifier( cache.FindNamedVariant(m) )
+ else:
+ logger.Error("Unknown build variant '%s'" % m)
+ ok = False
+
+ if ok:
+ models.append(copy.copy(x))
+
+ # turn Model objects into BuildUnit objects
+ #
+ # all objects have a GenerateBuildUnits method but don't use
+ # that for Groups because it is not tolerant of errors (the
+ # first error raises an exception and the rest of the group is
+ # abandoned)
+ units = []
+
+ while len(models) > 0:
+ x = models.pop()
+ try:
+ if isinstance(x, (Alias, Variant)):
+ # these we just turn straight into BuildUnits
+ units.extend(x.GenerateBuildUnits(cache))
+ elif isinstance(x, Group):
+ # deal with each part of the group separately (later)
+ for child in x.childRefs:
+ modChild = copy.copy(child)
+ modChild.modifiers = child.modifiers + [m.name for m in x.modifiers]
+ models.append(modChild)
+ elif isinstance(x, Reference):
+ # resolve references and their modifiers
+ try:
+ obj = x.Resolve(cache)
+ modObj = copy.copy(obj)
+ modObj.modifiers = x.GetModifiers(cache)
+ except BadReferenceError,e:
+ logger.Error("Unknown reference '%s'" % str(e))
+ else:
+ models.append(modObj)
+ except Exception, e:
+ logger.Error(str(e))
+
+ return units
+
class ToolErrorException(Exception):
def __init__(self, s):
Exception.__init__(self,s)
@@ -1364,6 +1458,9 @@
class UninitialisedVariableException(Exception):
pass
+class RecursionException(Exception):
+ pass
+
class Evaluator(object):
"""Determine the values of variables under different Configurations.
Either of specification and buildUnit may be None."""
@@ -1436,7 +1533,6 @@
for k, v in self.dict.items():
if v.find('$(' + k + ')') != -1:
raise RecursionException("Recursion Detected in variable '%s' in configuration '%s' " % (k,configName))
- expanded = "RECURSIVE_INVALID_STRING"
else:
expanded = self.ExpandAll(v, specName, configName)
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/python/raptor_make.py
--- a/sbsv2/raptor/python/raptor_make.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/python/raptor_make.py Fri Apr 16 19:32:39 2010 +0100
@@ -31,11 +31,99 @@
import traceback
import sys
from xml.sax.saxutils import escape
+from xml.sax.saxutils import unescape
class BadMakeEngineException(Exception):
pass
+def string_following(prefix, str):
+ """If str starts with prefix then return the rest of str, otherwise None"""
+ if str.startswith(prefix):
+ return str[len(prefix):]
+ else:
+ return None
+
+def XMLEscapeLog(stream):
+ """ A generator that reads a raptor log from a stream and performs an XML escape
+ on all text between tags, which is usually make output that could contain
+ illegal characters that upset XML-based log parsers.
+ This function yields "xml-safe" output line by line.
+ """
+ inRecipe = False
+
+ for line in stream:
+ if line.startswith("", line)
+ if not o:
+ o = string_following('")
+
+ if end_output != -1:
+ line = line[:end_output]
+ inOutput = False
+
+ if line != "":
+ yield unescape(line)+'\n'
+
+ yield "Finished build: %s Duration: %s (m:s) Cluster availability: %s%%\n" %(buildid,duration,availability)
+ af.close()
+
+
+
# raptor_make module classes
class MakeEngine(object):
@@ -82,6 +170,25 @@
self.jobsOption = evaluator.Get("jobs")
self.defaultMakeOptions = evaluator.Get("defaultoptions")
+ # Logging
+ # copylogfromannofile means, for emake, that we should ignore
+ # emake's console output and instead extract output from its annotation
+ # file. This is a workaround for a problem where some emake
+ # console output is lost. The annotation file has a copy of this
+ # output in the "parse" job and it turns out to be uncorrupted.
+ self.copyLogFromAnnoFile = (evaluator.Get("copylogfromannofile") == "true")
+ self.annoFileName = None
+
+ if self.copyLogFromAnnoFile:
+ for o in self.raptor.makeOptions:
+ self.annoFileName = string_following("--emake-annofile=", o)
+ if self.annoFileName:
+ self.raptor.Info("annofile: " + o)
+
+ if not self.annoFileName:
+ self.raptor.Info("Cannot copy log from annotation file as no annotation filename was specified via the option --mo=--emake-annofile=")
+ self.copyLogFromAnnoFile = False
+
# buffering
self.scrambled = (evaluator.Get("scrambled") == "true")
@@ -479,8 +586,16 @@
# clock skew messages from some build engines scatter their
# output across our xml.
stderrfilename = makefile+'.stderr'
+ stdoutfilename = makefile+'.stdout'
command += " 2>'%s' " % stderrfilename
+ # Keep a copy of the stdout too in the case of using the
+ # annofile - so that we can trap the problem that
+ # makes the copy-log-from-annofile workaround necessary
+ # and perhaps determine when we can remove it.
+ if self.copyLogFromAnnoFile:
+ command += " >'%s' " % stdoutfilename
+
# Substitute the makefile name for any occurrence of #MAKEFILE#
command = command.replace("#MAKEFILE#", str(makefile))
@@ -518,28 +633,23 @@
stream = p.stdout
inRecipe = False
- line = " "
- while line:
- line = stream.readline()
-
- if line.startswith("" + markerfilename + "\n")
self.__Raptor.PrintXML("\n")
- except IOError:
+ except IOError, e:
self.__Raptor.Warn("Problem while unzipping export %s to %s: %s",source,destination,str(e))
self.__Raptor.Info("Unzipped %d files from %s to %s", filecount, source, destination)
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/python/raptor_version.py
--- a/sbsv2/raptor/python/raptor_version.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/python/raptor_version.py Fri Apr 16 19:32:39 2010 +0100
@@ -16,7 +16,7 @@
# replace CHANGESET with the Hg changeset for ANY release
-version=(2,12,4,"2010-03-05","symbian build system","CHANGESET")
+version=(2,13,0,"2010-04-12","symbian build system","CHANGESET")
def numericversion():
"""Raptor version string"""
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/python/raptor_xml.py
--- a/sbsv2/raptor/python/raptor_xml.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/python/raptor_xml.py Fri Apr 16 19:32:39 2010 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "Eclipse Public License v1.0"
@@ -144,25 +144,29 @@
"""Path sub-class that wraps up a component bld.inf file with
system_definition.xml context information."""
- def __init__(self, aBldInfFile, aContainerNames, aSystemDefinitionFile, aSystemDefinitionBase, aSystemDefinitionVersion):
+ def __init__(self, aBldInfFile, aLayerName, aContainerNames, aSystemDefinitionFile, aSystemDefinitionBase, aSystemDefinitionVersion):
generic_path.Path.__init__(self, aBldInfFile.Absolute().path)
self.__ContainerNames = aContainerNames
+ self.__LayerName = aLayerName
self.__SystemDefinitionFile = aSystemDefinitionFile
- self.__SystemDefinitionBase = aSystemDefinitionBase
- self.__SystemDefinitionVersion = aSystemDefinitionVersion
+ self.__SystemDefinitionBase = aSystemDefinitionBase
+ self.__SystemDefinitionVersion = aSystemDefinitionVersion
def GetSystemDefinitionFile(self):
return self.__SystemDefinitionFile
def GetSystemDefinitionBase(self):
return self.__SystemDefinitionBase
-
- def GetSystemDefinitionFile(self):
- return self.__SystemDefinitionVersion
+
+ def GetSystemDefinitionVersion(self):
+ return self.__SystemDefinitionVersion
+
+ def GetLayerName(self):
+ return self.__LayerName
def GetContainerName(self, aContainerType):
if self.__ContainerNames.has_key(aContainerType):
- return self.__ContainerNames[aContainerType]
+ return self.__ContainerNames[aContainerType]
return ""
@@ -173,7 +177,8 @@
self.__Logger = aLogger
self.__SystemDefinitionFile = aSystemDefinitionFile.GetLocalString()
self.__SystemDefinitionBase = aSystemDefinitionBase.GetLocalString()
- self.__Version = {'MAJOR':0,'MID':0,'MINOR':0}
+ self.__Version = {'MAJOR':0,'MID':0,'MINOR':0}
+ self.__IdAttribute = "name"
self.__ComponentRoot = ""
self.__TotalComponents = 0
self.__LayerList = []
@@ -263,42 +268,62 @@
if self.__Version['MAJOR'] == 1 and self.__Version['MID'] > 2:
self.__ComponentRoot = self.__SystemDefinitionBase
- elif self.__Version['MAJOR'] == 2:
- # 2.0.0 format supports SOURCEROOT as an environment specified base - we respect this, unless
- # explicitly overridden on the command line
- if os.environ.has_key('SOURCEROOT'):
+ elif self.__Version['MAJOR'] == 2 or self.__Version['MAJOR'] == 3:
+ # 2.0.x and 3.0.0 formats support SOURCEROOT or SRCROOT as an environment specified base - we respect this, unless
+ # explicitly overridden on the command line
+ if os.environ.has_key('SRCROOT'):
+ self.__ComponentRoot = generic_path.Path(os.environ['SRCROOT'])
+ elif os.environ.has_key('SOURCEROOT'):
self.__ComponentRoot = generic_path.Path(os.environ['SOURCEROOT'])
- if self.__SystemDefinitionBase and self.__SystemDefinitionBase != ".":
- self.__ComponentRoot = self.__SystemDefinitionBase
- if os.environ.has_key('SOURCEROOT'):
- self.__Logger.Info("Command line specified System Definition file base \'%s\' overriding environment SOURCEROOT \'%s\'", self.__SystemDefinitionBase, os.environ['SOURCEROOT'])
+
+ if self.__SystemDefinitionBase and self.__SystemDefinitionBase != ".":
+ self.__ComponentRoot = self.__SystemDefinitionBase
+ if os.environ.has_key('SRCROOT'):
+ self.__Logger.Info("Command line specified System Definition file base \'%s\' overriding environment SRCROOT \'%s\'", self.__SystemDefinitionBase, os.environ['SRCROOT'])
+ elif os.environ.has_key('SOURCEROOT'):
+ self.__Logger.Info("Command line specified System Definition file base \'%s\' overriding environment SOURCEROOT \'%s\'", self.__SystemDefinitionBase, os.environ['SOURCEROOT'])
else:
self.__Logger.Error("Cannot process schema version %s of file %s", version.string, self.__SystemDefinitionFile)
return False
+
+ if self.__Version['MAJOR'] >= 3:
+ # id is the unique identifier for 3.0 and later schema
+ self.__IdAttribute = "id"
return True
def __Parse(self):
- # find the element (there can be 0 or 1) and search any elements for elements with "bldFile" attributes
- # the context of captured "bldFile" attributes is recorded as we go
+ # For 2.0 and earlier: find the element (there can be 0 or 1) and search any elements for elements with "bldFile" attributes
+ # the context of captured "bldFile" attributes is recorded as we go
+ # For 3.0 and later, process any architectural topmost element, use the topmost element with an id as the "layer"
for child in self.__SystemDefinitionElement.childNodes:
- if child.localName == "systemModel":
+ if child.localName in ["systemModel", "layer", "package", "collection", "component"]:
self.__ProcessSystemModelElement(child)
def __CreateComponent(self, aBldInfFile, aUnitElement):
# take a resolved bld.inf file and associated element and returns a populated Component object
containers = {}
- self.__GetElementContainers(aUnitElement, containers)
- component = SystemModelComponent(aBldInfFile, containers, self.__SystemDefinitionFile, self.__SystemDefinitionBase, self.__Version)
+ self.__GetElementContainers(aUnitElement, containers)
+ layer = self.__GetEffectiveLayer(aUnitElement)
+ component = SystemModelComponent(aBldInfFile, layer, containers, self.__SystemDefinitionFile, self.__SystemDefinitionBase, self.__Version)
return component
+
+ def __GetEffectiveLayer(self, aElement):
+ #' return the ID of the topmost item which has an ID. For 1.x and 2.x, this will always be layer, for 3.x, it will be the topmost ID'd element in the file
+ # never call this on the root element
+ if aElement.parentNode.hasAttribute(self.__IdAttribute):
+ return self.__GetEffectiveLayer(aElement.parentNode)
+ elif aElement.hasAttribute(self.__IdAttribute):
+ return aElement.getAttribute(self.__IdAttribute)
+ return ""
def __GetElementContainers(self, aElement, aContainers):
# take a element and creates a type->name dictionary of all of its parent containers
# We're only interested in parent nodes if they're not the top-most node
if aElement.parentNode.parentNode:
parent = aElement.parentNode
- name = parent.getAttribute("name")
+ name = parent.getAttribute(self.__IdAttribute)
if name:
aContainers[parent.tagName] = name
@@ -308,9 +333,10 @@
def __ProcessSystemModelElement(self, aElement):
"""Search for XML elements with 'bldFile' attributes and resolve concrete bld.inf locations
with an appreciation of different schema versions."""
-
- if aElement.tagName == "layer":
- currentLayer = aElement.getAttribute("name")
+
+ # The effective "layer" is the item whose parent does not have an id (or name in 2.x and earlier)
+ if not aElement.parentNode.hasAttribute(self.__IdAttribute) :
+ currentLayer = aElement.getAttribute(self.__IdAttribute)
if not self.__LayerDetails.has_key(currentLayer):
self.__LayerDetails[currentLayer] = []
@@ -324,10 +350,10 @@
if bldFileValue:
bldInfRoot = self.__ComponentRoot
- if self.__Version['MAJOR'] == 1 and self.__Version['MID'] == 4:
- # version 1.4.x schema paths can use DOS slashes
+ if self.__Version['MAJOR'] == 1:
+ # version 1.x schema paths can use DOS slashes
bldFileValue = raptor_utilities.convertToUnixSlash(bldFileValue)
- elif self.__Version['MAJOR'] == 2:
+ elif self.__Version['MAJOR'] >= 2:
# version 2.x.x schema paths are subject to a "root" attribute off-set, if it exists
rootValue = aElement.getAttribute("root")
@@ -342,8 +368,14 @@
group = generic_path.Path(bldFileValue)
- if not group.isAbsolute() and bldInfRoot:
- group = generic_path.Join(bldInfRoot, group)
+ if self.__Version['MAJOR'] < 3:
+ # absolute paths are not changed by root var in 1.x and 2.x
+ if not group.isAbsolute() and bldInfRoot:
+ group = generic_path.Join(bldInfRoot, group)
+ else:
+ # only absolute paths are changed by root var in 3.x
+ if group.isAbsolute() and bldInfRoot:
+ group = generic_path.Join(bldInfRoot, group)
bldinf = generic_path.Join(group, "bld.inf").FindCaseless()
@@ -351,7 +383,7 @@
self.__Logger.Error("No bld.inf found at %s in %s", group.GetLocalString(), self.__SystemDefinitionFile)
else:
component = self.__CreateComponent(bldinf, aElement)
- layer = component.GetContainerName("layer")
+ layer = component.GetLayerName()
if layer:
self.__LayerDetails[layer].append(component)
self.__TotalComponents += 1
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/python/sbs_dist.py
--- a/sbsv2/raptor/python/sbs_dist.py Wed Apr 14 18:01:20 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-#
-# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
-# All rights reserved.
-# This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:
-# raptor linux distribution creation module
-# This module allow to crate raptor linux distribution archive (tar.gz) e.g. sbs_linux_dist.tar.gz
-# Script extect the following command-line parameters:
-# 1. Archive name
-# 2. List of files/directories to include
-# By default windows specific and source files are excluded.
-# example including bin and python subdir:
-# sbs_dist.py sbs_linux_dist.tar.gz bin python
-#
-
-import os
-import re
-import tarfile
-import sys
-import dos2unix
-
-#------------------------------------------------------------------------------
-# Create tar.gz archive including given files (fileName list and tarinfo list)
-#------------------------------------------------------------------------------
-def createTarGZ(tarName, fileList):
- tar = tarfile.open(tarName, "w|gz")
- for name in fileList:
- tar.add(name)
- return tar
-
-#------------------------------------------------------------------------------
-# Lists files in each of given directories
-#------------------------------------------------------------------------------
-def listFilesInDirs(paths):
- fileList = []
- for path in paths:
- fileList.extend(listFiles(path))
- return fileList
-
-#------------------------------------------------------------------------------
-# Lists files in given directory
-#------------------------------------------------------------------------------
-def listFiles(path):
- fileList = []
- for root, dirs, files in os.walk(path):
- for index in range(len(files)):
- fileList.append(root + "/" + files[index])
- return fileList
-
-#------------------------------------------------------------------------------
-# Excludes files matching "pattern" from given files list
-#------------------------------------------------------------------------------
-def excludeFiles(fileList, pattern):
- filteredFileList = []
- regExp = re.compile(pattern)
- for fileName in fileList:
- if not(regExp.match(fileName)):
- filteredFileList.append(fileName)
- return filteredFileList
-
-
-#------------------------------------------------------------------------------
-# Groups given paths as files or directories
-#------------------------------------------------------------------------------
-def groupFilesAndDirs(filesAndDirs):
- files = []
- dirs = []
- for name in filesAndDirs:
- if os.path.isdir(name):
- dirs.append(name)
- else:
- if os.path.isfile(name):
- files.append(name)
- else:
- print "Warning: Neither a file nor a directory! Ignoring parameter - " + name
- return (files,dirs)
-
-#------------------------------------------------------------------------------
-# Prepares regular expression to exclude unnecessary files
-#------------------------------------------------------------------------------
-def prepareExcludedFilesRegExp():
- pathPrefixRegExp = ".*[\\\/]"
- filesRegExp = "((sbs)|(.*\.bat)|(.*\.pyc)|(.*\.cmd)|(.*\.exe)|(.*\.dll)|(sbs_dist.py)"
- filesRegExp = filesRegExp + "|(dos2unix.py)|(raptor_py2exe_setup.py)|(make)|(bash)|(bashbug))+"
- return "^" + pathPrefixRegExp + filesRegExp + "$"
-
-#------------------------------------------------------------------------------
-# Includes all files in fileList in given tar with altered executable permision (+X) for all
-#------------------------------------------------------------------------------
-def includeAsExecutable(tar, fileList):
- for f in fileList:
- tarinfo = tar.gettarinfo(f)
- # OR with 73 (001 001 001) - +X for all
- tarinfo.mode = tarinfo.mode | 73
- tar.addfile(tarinfo,file(f, "rb"))
-
-
-#------------------------------------------------------------------------------
-# Validate script parameters
-#------------------------------------------------------------------------------
-def validateParameters(tarFileName, filesToInclude):
- if not(len(tarFileName) > 0):
- print "Error: No archive name given."
- sys.exit()
- if not(len(filesToInclude) > 0):
- print "Error: No files/directories names to include in archive given."
- sys.exit()
-
-
-tarFileName = sys.argv[1]
-# files and directories
-filesAndDirsToInclude = sys.argv[2:]
-
-validateParameters(tarFileName, filesAndDirsToInclude)
-
-(filesToInclude,dirsToInclude) = groupFilesAndDirs(filesAndDirsToInclude)
-
-fileList = listFilesInDirs(dirsToInclude)
-fileList.extend(filesToInclude)
-
-filteredFileList = excludeFiles(fileList, prepareExcludedFilesRegExp())
-
-dos2unix.dos2unix("bin/sbs")
-
-tar = createTarGZ(tarFileName, filteredFileList)
-fileToBeExecutableList = ["bin/sbs", "linux-i386/bin/make", "linux-i386/bin/bash", "linux-i386/bin/bashbug",
- "bin/sbs_descramble"]
-includeAsExecutable(tar, fileToBeExecutableList)
-tar.close()
-
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/common/raptor_tests.py
--- a/sbsv2/raptor/test/common/raptor_tests.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/common/raptor_tests.py Fri Apr 16 19:32:39 2010 +0100
@@ -417,22 +417,26 @@
p = subprocess.Popen(args=[BASH, '-c', command],
stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT,
+ stderr=subprocess.PIPE,
env=shellenv,
shell=False,
universal_newlines=True)
- self.output = p.communicate()[0]
+ (std_out, std_err) = p.communicate()
+
+ self.output = std_out + std_err
else:
p = subprocess.Popen(command,
stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT,
+ stderr=subprocess.PIPE,
env=shellenv,
shell=True,
universal_newlines=True)
- self.output = p.communicate()[0]
-
+ (std_out, std_err) = p.communicate()
+
+ self.output = std_out + std_err
+
if debug_mode_active:
print self.output
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/config/arm.xml
--- a/sbsv2/raptor/test/config/arm.xml Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/config/arm.xml Fri Apr 16 19:32:39 2010 +0100
@@ -9,7 +9,6 @@
-
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/config/os_properties.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/config/os_properties.xml Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/run.bat
--- a/sbsv2/raptor/test/run.bat Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/run.bat Fri Apr 16 19:32:39 2010 +0100
@@ -1,5 +1,5 @@
@rem
-@rem Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
@rem All rights reserved.
@rem This component and the accompanying materials are made available
@rem under the terms of the License "Eclipse Public License v1.0"
@@ -14,29 +14,16 @@
@rem Description:
@rem
-@echo off
-
-set HOSTPLATFORM=win 32
-set HOSTPLATFORM_DIR=win32
-
-setlocal
-set __PYTHON__=%SBS_PYTHON%
-if "%__PYTHON__%"=="" set __PYTHON__=%SBS_HOME%\win32\python264\python.exe
+@SETLOCAL
+@CALL %SBS_HOME%\bin\sbs_env.bat
-set __TEST_SUITE__=%SBS_HOME%\test\common\run_tests.pyc
-set __TEST_SUITE_PY__=%SBS_HOME%\test\common\run_tests.py
-
-@REM Mount '/' in cygwin, in case it is not done automatically
-set __CYGWIN__=%SBS_CYGWIN%
-if "%__CYGWIN__%"=="" set __CYGWIN__=%SBS_HOME%\win32\cygwin
-%__CYGWIN__%\bin\umount -u "/" >NUL 2>NUL
-%__CYGWIN__%\bin\mount -u "%__CYGWIN__%" "/"
+@SET __TEST_SUITE__=%~dp0common\run_tests.pyc
+@SET __TEST_SUITE_PY__=%~dp0common\run_tests.py
@REM If the Python source exists, use it. Else use the byte-compiled Python code
-if exist %__TEST_SUITE_PY__% SET __TEST_SUITE__=%__TEST_SUITE_PY__%
+@IF EXIST %__TEST_SUITE_PY__% SET __TEST_SUITE__=%__TEST_SUITE_PY__%
@REM Then run the test suite with all the arguments
-%__PYTHON__% -tt %__TEST_SUITE__% %*
+@%__PYTHON__% -tt %__TEST_SUITE__% %*
-endlocal
-@echo on
+@ENDLOCAL
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/annofile2log.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/annofile2log.py Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,39 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+from raptor_tests import SmokeTest
+
+def run():
+ t = SmokeTest()
+ t.id = "43563"
+ t.name = "annofile2log_canned"
+ t.description = "test workaround for log corruption from a make engine whose name begins with 'e'"
+
+ t.usebash = True
+ t.errors = 0
+ t.returncode = 0
+ t.exceptions = 0
+ t.command = "cd smoke_suite/test_resources/annofile2log && ( diff -wB <(python testanno2log.py <(bzip2 -dc scrubbed_ncp_dfs_resource.anno.bz2)) <(bzip2 -dc scrubbed_ncp_dfs_resource.stdout.bz2))"
+
+ t.mustmatch_multiline = [
+ "^ *.?"
+ ]
+
+
+ t.run()
+
+ t.print_result()
+ return t
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/cli_makevar_override.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/cli_makevar_override.py Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,38 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+# Checks that functionality for overriding makefile varaibles at the command no longer works
+# The mechanism for dealing with this was removed as the fix for SF bug 2134
+# On the CLI, "something=something" is now treated as a target rather than a variable assignment
+
+from raptor_tests import SmokeTest
+
+def run():
+ t = SmokeTest()
+ t.name = "cli_makevar_overide"
+ t.id = "0117"
+ t.description = "Attempt to override a makefile var at the command line."
+ t.usebash = True
+
+ t.command = "sbs -b smoke_suite/test_resources/basics/helloworld/Bld.inf REALLYCLEAN -m ${SBSMAKEFILE} -f ${SBSLOGFILE} HOSTPLATFORM_DIR=unlikelydir"
+
+ t.mustmatch = ["sbs: warning: CLEAN, CLEANEXPORT and a REALLYCLEAN should not be combined with other targets as the result is unpredictable"]
+
+ t.warnings = 1
+ t.run()
+
+ return t
+
\ No newline at end of file
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/export.py
--- a/sbsv2/raptor/test/smoke_suite/export.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/export.py Fri Apr 16 19:32:39 2010 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "Eclipse Public License v1.0"
@@ -18,39 +18,49 @@
import os
def run():
- result = SmokeTest.PASS
# This .inf file is created for clean_simple_export and
# reallyclean_simple_export tests to use so that we can put the
# username into the output filenames - which helps a lot when
# several people run tests on the same computer (e.g. linux machines)
bld = open('smoke_suite/test_resources/simple_export/expbld.inf', 'w')
- bld.write("PRJ_PLATFORMS\n"
- "ARMV5 WINSCW\n\n"
+ user = os.environ['USER']
+ bld.write("""
+
+PRJ_PLATFORMS
+ARMV5 WINSCW
- "PRJ_MMPFILES\n"
- "simple.mmp\n\n"
+PRJ_MMPFILES
+simple.mmp
- "PRJ_EXPORTS\n"
- "simple_exp1.h exported_1.h\n"
- "simple_exp2.h exported_2.h\n"
- "simple_exp3.h exported_3.h\n"
- "executable_file executable_file\n"
- '"file with a space.doc" "exportedfilewithspacesremoved.doc"\n'
- '"file with a space.doc" "exported file with a space.doc"\n\n'
+PRJ_EXPORTS
+#if !defined( WINSCW )
+// Exports conditional on build configuration macros aren't actually supported,
+// but we confirm that we preprocess in the context of an armv5 build when both
+// winscw and armv5 configurations are (implicitly, as there's no "-c" argument)
+// used. This is in order to work around assumptions currently made in the
+// source base.
+simple_exp1.h exported_1.h
+#endif
+simple_exp2.h exported_2.h
+simple_exp3.h exported_3.h
+executable_file executable_file
+"file with a space.doc" "exportedfilewithspacesremoved.doc"
+"file with a space.doc" "exported file with a space.doc"
- "simple_exp1.h /tmp/"+os.environ['USER']+"/ //\n"
- "simple_exp2.h \\tmp\\"+os.environ['USER']+"/ //\n"
- "simple_exp3.h /tmp/"+os.environ['USER']+"/simple_exp3.h \n"
- "simple_exp4.h //")
+simple_exp1.h /tmp/%s/ //
+simple_exp2.h \\tmp\\%s/ //
+simple_exp3.h /tmp/%s/simple_exp3.h
+simple_exp4.h //
+
+""" % (user, user, user))
bld.close()
t = SmokeTest()
t.id = "0023a"
t.name = "export"
- t.command = "sbs -b smoke_suite/test_resources/simple_export/expbld.inf " \
- + "-c armv5 EXPORT"
+ t.command = "sbs -b smoke_suite/test_resources/simple_export/expbld.inf export"
t.targets = [
"$(EPOCROOT)/epoc32/include/exported_1.h",
"$(EPOCROOT)/epoc32/include/exported_2.h",
@@ -64,29 +74,23 @@
"$(EPOCROOT)/epoc32/include/simple_exp4.h"
]
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
-
+
t = SmokeTest()
t.id = "0023a1"
t.name = "export"
t.usebash = True
t.command = "ls -l ${EPOCROOT}/epoc32/include/executable_file"
- t.mustmatch = [ "^.rwxrwxr.x .*executable_file.*$" ]
+ t.mustmatch = [ "^.rwxrwxr.x[\.\+]? .*executable_file.*$" ]
t.targets = []
t.run("linux")
t.usebash = False
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
-
# Testing if clean deletes any exports which it is not supposed to
t.id = "0023b"
t.name = "export_clean"
- t.command = "sbs -b smoke_suite/test_resources/simple_export/expbld.inf " \
- + "-c armv5 clean"
+ t.command = "sbs -b smoke_suite/test_resources/simple_export/expbld.inf clean"
t.mustmatch = []
t.targets = [
"$(EPOCROOT)/epoc32/include/exported_1.h",
@@ -100,15 +104,12 @@
"/tmp/$(USER)/simple_exp3.h"
]
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
t = AntiTargetSmokeTest()
t.id = "0023c"
t.name = "export_reallyclean"
- t.command = "sbs -b smoke_suite/test_resources/simple_export/expbld.inf " \
- + "-c armv5 reallyclean"
+ t.command = "sbs -b smoke_suite/test_resources/simple_export/expbld.inf reallyclean"
t.antitargets = [
'$(EPOCROOT)/epoc32/include/exported_1.h',
'$(EPOCROOT)/epoc32/include/exported_2.h',
@@ -122,15 +123,12 @@
'$(EPOCROOT)/epoc32/include/simple_exp4.h'
]
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
# Check that the --noexport feature really does prevent exports from happening
t = AntiTargetSmokeTest()
t.id = "0023d"
t.name = "export_noexport"
- t.command = "sbs -b smoke_suite/test_resources/simple_export/expbld.inf " \
- + "-c armv5 --noexport -n"
+ t.command = "sbs -b smoke_suite/test_resources/simple_export/expbld.inf --noexport -n"
t.antitargets = [
'$(EPOCROOT)/epoc32/include/exported_1.h',
'$(EPOCROOT)/epoc32/include/exported_2.h',
@@ -144,11 +142,8 @@
'$(EPOCROOT)/epoc32/include/simple_exp4.h'
]
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
t.id = "23"
t.name = "export"
- t.result = result
t.print_result()
return t
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/featurevariants.py
--- a/sbsv2/raptor/test/smoke_suite/featurevariants.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/featurevariants.py Fri Apr 16 19:32:39 2010 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "Eclipse Public License v1.0"
@@ -14,89 +14,134 @@
# Description:
#
-from raptor_tests import SmokeTest
+from raptor_tests import AntiTargetSmokeTest, ReplaceEnvs
import os
def run():
- t = SmokeTest()
-
- # tests for building feature variants
- t.id = "56"
- t.name = "featurevariants"
+ t = AntiTargetSmokeTest()
t.usebash = True
- t.command = "sbs -b smoke_suite/test_resources/bv/bld.inf -c armv5 " + \
- "-c armv5.test_bv_1 -c armv5.test_bv_2 -c armv5.test_bv_3 " + \
- "--configpath=test/smoke_suite/test_resources/bv -f-"
- t.targets = [
- # prebuilt files
+
+ preBuiltTargets = [
"$(EPOCROOT)/epoc32/release/armv5/udeb/dummy.lib",
"$(EPOCROOT)/epoc32/release/armv5/urel/dummy.lib",
"$(EPOCROOT)/epoc32/release/armv5/udeb/debfake.lib",
- "$(EPOCROOT)/epoc32/release/armv5/urel/relfake.lib",
-
- # built files
+ "$(EPOCROOT)/epoc32/release/armv5/urel/relfake.lib"
+ ]
+
+ invariantTargets = [
"$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_invariant.dll",
"$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_invariant.dll.map",
"$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_invariant.dll.sym",
"$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_invariant.dll",
"$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_invariant.dll.map",
"$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_invariant.dll.sym",
+ "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_invariant.dso",
+ "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_invariant{000a0000}.dso"
+ ]
+
+ variantTargetsDefaultTree = [
+ "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant1.dll",
+ "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant1.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant1.dll.sym",
+ "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant2.dll",
+ "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant2.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5/udeb/createstaticdll_variant2.dll.sym",
+ "$(EPOCROOT)/epoc32/release/armv5/udeb/createexe_variant3.exe",
+ "$(EPOCROOT)/epoc32/release/armv5/udeb/createexe_variant3.exe.map",
+ "$(EPOCROOT)/epoc32/release/armv5/udeb/createexe_variant3.exe.sym",
+ "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant1.dll",
+ "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant1.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant1.dll.sym",
+ "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant2.dll",
+ "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant2.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5/urel/createstaticdll_variant2.dll.sym",
+ "$(EPOCROOT)/epoc32/release/armv5/urel/createexe_variant3.exe",
+ "$(EPOCROOT)/epoc32/release/armv5/urel/createexe_variant3.exe.map",
+ "$(EPOCROOT)/epoc32/release/armv5/urel/createexe_variant3.exe.sym"
+ ]
+
+ variantTargetsProductTrees = [
"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant1.dll",
"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant1.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant1.dll.sym",
"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant1.dll.vmap",
"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant2.dll",
"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant2.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant1.dll.sym",
"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createstaticdll_variant2.dll.vmap",
+ "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createexe_variant3.exe",
+ "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createexe_variant3.exe.map",
+ "$(EPOCROOT)/epoc32/release/armv5.one/udeb/createexe_variant3.exe.sym",
"$(EPOCROOT)/epoc32/release/armv5.one/udeb/createexe_variant3.exe.vmap",
"$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant1.dll",
"$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant1.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant1.dll.sym",
"$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant1.dll.vmap",
"$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant2.dll",
"$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant2.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant2.dll.sym",
"$(EPOCROOT)/epoc32/release/armv5.one/urel/createstaticdll_variant2.dll.vmap",
+ "$(EPOCROOT)/epoc32/release/armv5.one/urel/createexe_variant3.exe",
+ "$(EPOCROOT)/epoc32/release/armv5.one/urel/createexe_variant3.exe.map",
+ "$(EPOCROOT)/epoc32/release/armv5.one/urel/createexe_variant3.exe.sym",
"$(EPOCROOT)/epoc32/release/armv5.one/urel/createexe_variant3.exe.vmap",
"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant1.dll",
"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant1.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant1.dll.sym",
"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant1.dll.vmap",
"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant2.dll",
"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant2.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant2.dll.sym",
"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createstaticdll_variant2.dll.vmap",
+ "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createexe_variant3.exe",
+ "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createexe_variant3.exe.map",
+ "$(EPOCROOT)/epoc32/release/armv5.two/udeb/createexe_variant3.exe.sym",
"$(EPOCROOT)/epoc32/release/armv5.two/udeb/createexe_variant3.exe.vmap",
"$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant1.dll",
"$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant1.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant1.dll.sym",
"$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant1.dll.vmap",
"$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant2.dll",
"$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant2.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant2.dll.sym",
"$(EPOCROOT)/epoc32/release/armv5.two/urel/createstaticdll_variant2.dll.vmap",
+ "$(EPOCROOT)/epoc32/release/armv5.two/urel/createexe_variant3.exe",
+ "$(EPOCROOT)/epoc32/release/armv5.two/urel/createexe_variant3.exe.map",
+ "$(EPOCROOT)/epoc32/release/armv5.two/urel/createexe_variant3.exe.sym",
"$(EPOCROOT)/epoc32/release/armv5.two/urel/createexe_variant3.exe.vmap",
"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant1.dll",
"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant1.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant1.dll.sym",
"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant1.dll.vmap",
"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant2.dll",
"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant2.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant2.dll.sym",
"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createstaticdll_variant2.dll.vmap",
+ "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createexe_variant3.exe",
+ "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createexe_variant3.exe.map",
+ "$(EPOCROOT)/epoc32/release/armv5.three/udeb/createexe_variant3.exe.sym",
"$(EPOCROOT)/epoc32/release/armv5.three/udeb/createexe_variant3.exe.vmap",
"$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant1.dll",
"$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant1.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant1.dll.sym",
"$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant1.dll.vmap",
"$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant2.dll",
"$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant2.dll.map",
+ "$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant2.dll.sym",
"$(EPOCROOT)/epoc32/release/armv5.three/urel/createstaticdll_variant2.dll.vmap",
+ "$(EPOCROOT)/epoc32/release/armv5.three/urel/createexe_variant3.exe",
+ "$(EPOCROOT)/epoc32/release/armv5.three/urel/createexe_variant3.exe.map",
+ "$(EPOCROOT)/epoc32/release/armv5.three/urel/createexe_variant3.exe.sym",
"$(EPOCROOT)/epoc32/release/armv5.three/urel/createexe_variant3.exe.vmap",
-
- "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_invariant.dso",
- "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_invariant{000a0000}.dso",
- "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant1.dso",
- "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant1{000a0000}.dso",
- "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant2.dso",
- "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant2{000a0000}.dso",
-
+ ]
+
+ variantTargetsGeneric = [
"$(EPOCROOT)/epoc32/data/z/resource/apps/dummy_var1.rsc",
"$(EPOCROOT)/epoc32/include/dummy_var1.rsg",
"$(EPOCROOT)/epoc32/data/z/resource/apps/dummy_var2.rsc",
@@ -104,9 +149,14 @@
"$(EPOCROOT)/epoc32/data/z/resource/apps/dummy_var3.rsc",
"$(EPOCROOT)/epoc32/include/dummy_var3.rsg",
"$(EPOCROOT)/epoc32/data/z/resource/apps/dummy_inv.rsc",
- "$(EPOCROOT)/epoc32/include/dummy_inv.rsg"
+ "$(EPOCROOT)/epoc32/include/dummy_inv.rsg",
+ "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant1.dso",
+ "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant1{000a0000}.dso",
+ "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant2.dso",
+ "$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll_variant2{000a0000}.dso"
]
- t.addbuildtargets('smoke_suite/test_resources/bv/bld.inf', [
+
+ invariantBuildTargets = [
"createstaticdll_invariant_dll/armv5/udeb/CreateStaticDLL_invariant.o",
"createstaticdll_invariant_dll/armv5/udeb/CreateStaticDLL_invariant.o.d",
"createstaticdll_invariant_dll/armv5/udeb/createstaticdll_invariant_udeb_objects.via",
@@ -119,15 +169,41 @@
"createstaticdll_invariant_dll/armv5/urel/createstaticdll_invariant{000a0000}.dso",
"dummy_inv_dll/dummy_inv__resource_apps_sc.rpp",
- "dummy_inv_dll/dummy_inv__resource_apps_sc.rpp.d",
- "dummy_var1_dll/dummy_var1__resource_apps_sc.rpp",
- "dummy_var1_dll/dummy_var1__resource_apps_sc.rpp.d",
- "dummy_var2_dll/dummy_var2__resource_apps_sc.rpp",
- "dummy_var2_dll/dummy_var2__resource_apps_sc.rpp.d",
- "dummy_var3_exe/dummy_var3__resource_apps_sc.rpp",
- "dummy_var3_exe/dummy_var3__resource_apps_sc.rpp.d",
+ "dummy_inv_dll/dummy_inv__resource_apps_sc.rpp.d"
+ ]
+
+ variantBuildTargetsDefaultTree = [
+ "createstaticdll_variant1_dll/armv5/udeb/CreateStaticDLL_variant1.o",
+ "createstaticdll_variant1_dll/armv5/udeb/CreateStaticDLL_variant1.o.d",
+ "createstaticdll_variant1_dll/armv5/udeb/createstaticdll_variant1_udeb_objects.via",
+ "createstaticdll_variant1_dll/armv5/udeb/createstaticdll_variant1{000a0000}.def",
+ "createstaticdll_variant1_dll/armv5/udeb/createstaticdll_variant1{000a0000}.dso",
+ "createstaticdll_variant1_dll/armv5/urel/CreateStaticDLL_variant1.o",
+ "createstaticdll_variant1_dll/armv5/urel/CreateStaticDLL_variant1.o.d",
+ "createstaticdll_variant1_dll/armv5/urel/createstaticdll_variant1_urel_objects.via",
+ "createstaticdll_variant1_dll/armv5/urel/createstaticdll_variant1{000a0000}.def",
+ "createstaticdll_variant1_dll/armv5/urel/createstaticdll_variant1{000a0000}.dso",
+ "createstaticdll_variant2_dll/armv5/udeb/CreateStaticDLL_variant2.o",
+ "createstaticdll_variant2_dll/armv5/udeb/CreateStaticDLL_variant2.o.d",
+ "createstaticdll_variant2_dll/armv5/udeb/createstaticdll_variant2_udeb_objects.via",
+ "createstaticdll_variant2_dll/armv5/udeb/createstaticdll_variant2{000a0000}.def",
+ "createstaticdll_variant2_dll/armv5/udeb/createstaticdll_variant2{000a0000}.dso",
+ "createstaticdll_variant2_dll/armv5/urel/CreateStaticDLL_variant2.o",
+ "createstaticdll_variant2_dll/armv5/urel/CreateStaticDLL_variant2.o.d",
+ "createstaticdll_variant2_dll/armv5/urel/createstaticdll_variant2_urel_objects.via",
+ "createstaticdll_variant2_dll/armv5/urel/createstaticdll_variant2{000a0000}.def",
+ "createstaticdll_variant2_dll/armv5/urel/createstaticdll_variant2{000a0000}.dso",
+ "createexe_variant3_exe/armv5/udeb/CreateEXE_variant3.o",
+ "createexe_variant3_exe/armv5/udeb/CreateEXE_variant3.o.d",
+ "createexe_variant3_exe/armv5/udeb/createexe_variant3_udeb_objects.via",
+ "createexe_variant3_exe/armv5/urel/CreateEXE_variant3.o",
+ "createexe_variant3_exe/armv5/urel/CreateEXE_variant3.o.d",
+ "createexe_variant3_exe/armv5/urel/createexe_variant3_urel_objects.via"
+ ]
+
+ variantBuildTargetsProductTrees = [
"createstaticdll_variant1_dll/armv5.one/udeb/CreateStaticDLL_variant1.o",
"createstaticdll_variant1_dll/armv5.one/udeb/CreateStaticDLL_variant1.o.d",
"createstaticdll_variant1_dll/armv5.one/udeb/createstaticdll_variant1_udeb_objects.via",
@@ -157,7 +233,6 @@
"createexe_variant3_exe/armv5.one/urel/CreateEXE_variant3.o.d",
"createexe_variant3_exe/armv5.one/urel/createexe_variant3_urel_objects.via",
-
"createstaticdll_variant1_dll/armv5.two/udeb/CreateStaticDLL_variant1.o",
"createstaticdll_variant1_dll/armv5.two/udeb/CreateStaticDLL_variant1.o.d",
"createstaticdll_variant1_dll/armv5.two/udeb/createstaticdll_variant1_udeb_objects.via",
@@ -187,7 +262,6 @@
"createexe_variant3_exe/armv5.two/urel/CreateEXE_variant3.o.d",
"createexe_variant3_exe/armv5.two/urel/createexe_variant3_urel_objects.via",
-
"createstaticdll_variant1_dll/armv5.three/udeb/CreateStaticDLL_variant1.o",
"createstaticdll_variant1_dll/armv5.three/udeb/CreateStaticDLL_variant1.o.d",
"createstaticdll_variant1_dll/armv5.three/udeb/createstaticdll_variant1_udeb_objects.via",
@@ -216,14 +290,59 @@
"createexe_variant3_exe/armv5.three/urel/CreateEXE_variant3.o",
"createexe_variant3_exe/armv5.three/urel/CreateEXE_variant3.o.d",
"createexe_variant3_exe/armv5.three/urel/createexe_variant3_urel_objects.via"
- ])
+ ]
+
+ variantBuildTargetsGeneric = [
+ "dummy_var1_dll/dummy_var1__resource_apps_sc.rpp",
+ "dummy_var1_dll/dummy_var1__resource_apps_sc.rpp.d",
+ "dummy_var2_dll/dummy_var2__resource_apps_sc.rpp",
+ "dummy_var2_dll/dummy_var2__resource_apps_sc.rpp.d",
+ "dummy_var3_exe/dummy_var3__resource_apps_sc.rpp",
+ "dummy_var3_exe/dummy_var3__resource_apps_sc.rpp.d"
+ ]
+
+ sbscommand = "sbs -b smoke_suite/test_resources/bv/bld.inf -c armv5 " + \
+ "-c armv5.test_bv_1 -c armv5.test_bv_2 -c armv5.test_bv_3 -f- " + \
+ "--configpath=test/smoke_suite/test_resources/bv/config/variants"
+
+ t.id = "56a"
+ t.description = """Build variant and invariant components.
+ In this default mode of operation, all components build for the non-product armv5 config whereas
+ only variant components build for the armv5.* bv configs."""
+ t.name = "featurevariant_build"
+ t.command = sbscommand
+ t.targets = preBuiltTargets + invariantTargets + variantTargetsGeneric + variantTargetsDefaultTree + variantTargetsProductTrees
+ t.addbuildtargets('smoke_suite/test_resources/bv/bld.inf',
+ invariantBuildTargets + variantBuildTargetsGeneric + variantBuildTargetsDefaultTree + variantBuildTargetsProductTrees
+ )
# Test that static libs are linked from the invariant place.
t.mustmatch = [
"armlink.*epoc32/release/armv5/urel/bv_static_lib.lib",
"armlink.*epoc32/release/armv5/udeb/bv_static_lib.lib"
- ]
+ ]
t.run()
+ t.id = "56b"
+ t.description = """Build variant and invariant components using an os_properties.xml that sets FEATUREVARIANTSAFE=1.
+ With FEATUREVARIANTSAFE only invariant components build for the non-product armv5 config and
+ only variant components build for the armv5.* bv configs."""
+ t.name = "featurevariant_build_featurevariantsafe"
+ t.command = sbscommand + " --configpath=test/smoke_suite/test_resources/bv/config/properties"
+ t.targets = preBuiltTargets + invariantTargets + variantTargetsGeneric + variantTargetsProductTrees
+ t.addbuildtargets('smoke_suite/test_resources/bv/bld.inf',
+ invariantBuildTargets + variantBuildTargetsGeneric + variantBuildTargetsProductTrees
+ )
+ t.antitargets = variantTargetsDefaultTree
+ t.addbuildantitargets('smoke_suite/test_resources/bv/bld.inf',
+ variantBuildTargetsDefaultTree
+ )
+ # Test that static libs are linked from the invariant place.
+ t.mustmatch = [
+ "armlink.*epoc32/release/armv5/urel/bv_static_lib.lib",
+ "armlink.*epoc32/release/armv5/udeb/bv_static_lib.lib"
+ ]
+ t.run()
+
# tests for the createvmap script
createvmap = "python $(SBS_HOME)/bin/createvmap.py"
@@ -247,7 +366,7 @@
srcWithout = " -s " + bvdata + "/without_macros.cpp"
badSrc = " -s " + bvdata + "/with_errors.cpp"
- t.id = "56a"
+ t.id = "56c"
t.name = "createvmap exits with an error"
t.usebash = True
t.command = createvmap
@@ -257,7 +376,7 @@
t.run()
- t.id = "56b"
+ t.id = "56d"
t.name = "createvmap shows cpp errors"
t.usebash = True
t.command = createvmap + vmap + bvcpp + preinc + listA + badSrc
@@ -267,7 +386,7 @@
t.run()
- t.id = "56c"
+ t.id = "56e"
t.name = "createvmap errors on missing feature list"
t.usebash = True
t.command = createvmap + vmap + bvcpp + preinc + listC + srcWith
@@ -277,7 +396,7 @@
t.run()
- t.id = "56d"
+ t.id = "56f"
t.name = "createvmap warns on featureless code"
t.usebash = True
t.command = createvmap + vmap + bvcpp + preinc + listA + srcWithout
@@ -287,7 +406,7 @@
t.run()
- t.id = "56e"
+ t.id = "56g"
t.name = "createvmap creates the right vmap file"
t.usebash = True
t.command = createvmap + vmap + bvcpp + preinc + listA + listB + srcWith + srcWithout + " && cat " + vmapfile
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/keepgoing.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/keepgoing.py Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,106 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+from raptor_tests import SmokeTest
+
+def run():
+ t = SmokeTest()
+ t.description = """Raptor should keep going and build as much as possible with the -k option specified."""
+
+ command = "sbs -b smoke_suite/test_resources/simple/bld.inf -k"
+ config = " --configpath=test/smoke_suite/test_resources/keepgoing"
+ targets = [
+ "$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe",
+ "$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe.map",
+ "$(EPOCROOT)/epoc32/release/armv5/urel/test.exe",
+ "$(EPOCROOT)/epoc32/release/armv5/urel/test.exe.map",
+ "$(EPOCROOT)/epoc32/release/armv5/udeb/test.exe.sym",
+ "$(EPOCROOT)/epoc32/release/armv5/urel/test.exe.sym"
+ ]
+ buildtargets = [
+ "test_/armv5/udeb/test.o",
+ "test_/armv5/urel/test.o",
+ "test_/armv5/udeb/test.o.d",
+ "test_/armv5/udeb/test3.o.d",
+ "test_/armv5/udeb/test4.o.d",
+ "test_/armv5/udeb/test5.o.d",
+ "test_/armv5/udeb/test1.o.d",
+ "test_/armv5/udeb/test6.o.d",
+ "test_/armv5/udeb/test2.o.d",
+ "test_/armv5/udeb/test3.o",
+ "test_/armv5/udeb/test4.o",
+ "test_/armv5/udeb/test5.o",
+ "test_/armv5/udeb/test1.o",
+ "test_/armv5/udeb/test6.o",
+ "test_/armv5/udeb/test2.o",
+ "test_/armv5/urel/test.o.d",
+ "test_/armv5/urel/test3.o.d",
+ "test_/armv5/urel/test4.o.d",
+ "test_/armv5/urel/test5.o.d",
+ "test_/armv5/urel/test1.o.d",
+ "test_/armv5/urel/test6.o.d",
+ "test_/armv5/urel/test2.o.d",
+ "test_/armv5/urel/test3.o",
+ "test_/armv5/urel/test4.o",
+ "test_/armv5/urel/test5.o",
+ "test_/armv5/urel/test1.o",
+ "test_/armv5/urel/test6.o",
+ "test_/armv5/urel/test2.o",
+ "test_/armv5/udeb/test_udeb_objects.via",
+ "test_/armv5/urel/test_urel_objects.via"
+ ]
+
+ # using a non-existent config with -c should build any independent configs
+ t.id = "115a"
+ t.name = "keepgoing_bad_config"
+ t.command = command + " -c armv5 -c armv5.bogus"
+ t.targets = targets
+ t.addbuildtargets("smoke_suite/test_resources/simple/bld.inf", buildtargets)
+ t.mustmatch = ["sbs: error: Unknown build variant 'bogus'"]
+ t.warnings = 0
+ t.errors = 1
+ t.returncode = 1
+ t.run()
+
+ # using groups with bad sub-groups should build any independent groups
+ t.id = "115b"
+ t.name = "keepgoing_bad_subgroup"
+ t.command = command + config + " -c lots_of_products"
+ t.mustmatch = ["Unknown reference 'qwertyuio'",
+ "Unknown reference 'asdfghjkl'",
+ "Unknown reference 'zxcvbnm_p'"]
+ t.warnings = 0
+ t.errors = 3
+ t.returncode = 1
+ t.run()
+
+ # using groups with bad sub-sub-groups should build any independent groups
+ t.id = "115c"
+ t.name = "keepgoing_bad_subsubgroup"
+ t.command = command + config + " -c lots_of_products_2"
+ t.mustmatch = ["Unknown reference 'qwertyuio'",
+ "Unknown reference 'asdfghjkl'",
+ "Unknown reference 'zxcvbnm_p'"]
+ t.warnings = 0
+ t.errors = 3
+ t.returncode = 1
+ t.run()
+
+ # summarise
+ t.id = "115"
+ t.name = "keepgoing"
+ t.print_result()
+ return t
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/mmp_keywords.py
--- a/sbsv2/raptor/test/smoke_suite/mmp_keywords.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/mmp_keywords.py Fri Apr 16 19:32:39 2010 +0100
@@ -288,6 +288,25 @@
t.returncode = 1
t.run()
+ # Test keyword: EPOCNESTEDEXCEPTIONS
+ t.id = "75n"
+ t.name = "epocnestedexceptions"
+ t.command = "sbs -b smoke_suite/test_resources/mmp/epocnestedexceptions/bld.inf -c armv5 -f-"
+
+ # When EPOCNESTEDEXCEPTIONS is specified in the MMP file, a different static
+ # run-time library should be used.
+ t.mustmatch_singleline = ["usrt_nx_\d_\d\.lib"]
+ t.mustnotmatch = ["usrt._.."]
+
+ t.countmatch = []
+
+ # The new static run-time libraries don't yet exist.
+ t.errors = 1
+ t.warnings = 2
+ t.targets = []
+
+ t.run()
+
t.id = "75"
t.name = "mmp_keywords"
t.print_result()
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/paging.py
--- a/sbsv2/raptor/test/smoke_suite/paging.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/paging.py Fri Apr 16 19:32:39 2010 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "Eclipse Public License v1.0"
@@ -24,61 +24,108 @@
cmd_prefix = "sbs -b smoke_suite/test_resources/simple_paging/bld.inf -c armv5_urel "
cmd_suffix = " -m ${SBSMAKEFILE} -f ${SBSLOGFILE} && cat ${SBSLOGFILE} "
- result = SmokeTest.PASS
-
t.id = "0093a"
t.name = "paging_default"
t.command = cmd_prefix + "-p default.mmp" + cmd_suffix
- t.mustmatch = [".*--codepaging=default.*", ".*--datapaging=default.*"]
- t.run("windows") # Windows-only until we've updated the Linux version of elf2e32.
- if t.result == "skip":
- return t
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
+ t.mustmatch_singleline = [
+ "--codepaging=default",
+ "--datapaging=default"
+ ]
+ t.run()
t.id = "0093b"
t.name = "paging_unpaged"
t.command = cmd_prefix + "-p unpaged.mmp" + cmd_suffix
- t.mustmatch = [".*--codepaging=unpaged.*", ".*--datapaging=unpaged.*"]
+ t.mustmatch_singleline = [
+ "--codepaging=unpaged",
+ "--datapaging=unpaged"
+ ]
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
t.id = "0093c"
t.name = "paging_paged"
t.command = cmd_prefix + "-p paged.mmp" + cmd_suffix
- t.mustmatch = [".*--codepaging=paged.*", ".*--datapaging=paged.*"]
+ # Either pagedcode or pageddata can imply bytepaircompresstarget
+ t.mustmatch_singleline = [
+ "--codepaging=paged",
+ "--datapaging=default",
+ "--compressionmethod=bytepair"
+ ]
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
t.id = "0093d"
t.name = "paging_unpagedcode_pageddata"
t.command = cmd_prefix + "-p unpagedcode_pageddata.mmp" + cmd_suffix
- t.mustmatch = [".*--codepaging=unpaged.*", ".*--datapaging=paged.*"]
+ t.mustmatch_singleline = [
+ "--codepaging=unpaged",
+ "--datapaging=paged",
+ "--compressionmethod=bytepair"
+ ]
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
t.id = "0093e"
t.name = "paging_pagedcode_unpageddata"
t.command = cmd_prefix + "-p pagedcode_unpageddata.mmp" + cmd_suffix
- t.mustmatch = [".*--codepaging=paged.*", ".*--datapaging=unpaged.*"]
+ t.mustmatch_singleline = [
+ "--codepaging=paged",
+ "--datapaging=unpaged",
+ "--compressionmethod=bytepair"
+ ]
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
t.id = "0093f"
t.name = "paging_pagedcode_defaultdata"
t.command = cmd_prefix + "-p pagedcode_defaultdata.mmp" + cmd_suffix
- t.mustmatch = [".*--codepaging=paged.*", ".*--datapaging=default.*"]
+ t.mustmatch_singleline = [
+ "--codepaging=paged",
+ "--datapaging=default",
+ "--compressionmethod=bytepair"
+ ]
+ t.run()
+
+ t.id = "0093g"
+ t.name = "paging_paged_unpaged_no_bytepair"
+ t.command = cmd_prefix + "-p paged_unpaged.mmp" + cmd_suffix
+ t.mustmatch_singleline = [
+ "--codepaging=unpaged",
+ "--datapaging=unpaged"
+ ]
+ t.mustnotmatch = [
+ "--compressionmethod=bytepair"
+ ]
+ t.warnings = 2 # 1 in the log and 1 on screen
t.run()
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
+
+ # test the pre-WDP paging options --paged and --unpaged
+ # there is an os_properties.xml file in test/config that
+ # turns POSTLINKER_SUPPORTS_WDP off
+
+ t.id = "0093g"
+ t.name = "paging_paged_no_wdp"
+ t.command = cmd_prefix + "-p paged.mmp --configpath=test/config" + cmd_suffix
+ t.mustmatch_singleline = [
+ "--paged",
+ "--compressionmethod=bytepair"
+ ]
+ t.mustnotmatch = []
+ t.warnings = 0
+ t.targets = [ "$(EPOCROOT)/epoc32/release/armv5/urel/paged.dll" ]
+ t.run()
+
+ t.id = "0093h"
+ t.name = "paging_unpaged_no_wdp"
+ t.command = cmd_prefix + "-p unpaged.mmp --configpath=test/config" + cmd_suffix
+ t.mustmatch_singleline = [
+ "--unpaged",
+ ]
+ t.mustnotmatch = [
+ "--compressionmethod=bytepair"
+ ]
+ t.targets = [ "$(EPOCROOT)/epoc32/release/armv5/urel/unpaged.dll" ]
+ t.run()
t.id = "0093"
t.name = "paging"
- t.result = result
t.print_result()
return t
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/parallel_parsing.py
--- a/sbsv2/raptor/test/smoke_suite/parallel_parsing.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/parallel_parsing.py Fri Apr 16 19:32:39 2010 +0100
@@ -54,7 +54,7 @@
warnings = 0
t.id = "104"
- t.name = "parallelparsing"
+ t.name = "parallel_parsing"
t.description = description
t.command = command
t.targets = targets
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/plugin_armv5_winscw_freeze.py
--- a/sbsv2/raptor/test/smoke_suite/plugin_armv5_winscw_freeze.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/plugin_armv5_winscw_freeze.py Fri Apr 16 19:32:39 2010 +0100
@@ -24,7 +24,8 @@
the correct FREEZE behaviour in each case. The correct behaviour for a PLUGIN/PLUGIN3 is
indicative of all TARGETTYPEs where the build system defines known exports: FREEZE should do nothing
unless an explicit DEFFILE statement is present in the .mmp file.
- Also confirms default UID2 settings for PLUGIN3 TARGETTYPEs."""
+ Also confirms default UID2 settings for PLUGIN3 TARGETTYPEs and default resource generation locations
+ for both PLUGIN and PLUGIN3."""
t.usebash = True
t.command = """
@@ -34,7 +35,13 @@
t.targets = [
"smoke_suite/test_resources/simple_plugin/bwins/plugin2u.def",
- "smoke_suite/test_resources/simple_plugin/eabi/plugin2u.def"
+ "smoke_suite/test_resources/simple_plugin/eabi/plugin2u.def",
+ "$(EPOCROOT)/epoc32/data/z/resource/plugins/plugin.rsc",
+ "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/plugins/plugin.rsc",
+ "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/plugins/plugin.rsc",
+ "$(EPOCROOT)/epoc32/data/z/resource/plugins/plugin3.rsc",
+ "$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/plugins/plugin3.rsc",
+ "$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/plugins/plugin3.rsc"
]
t.antitargets = [
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/resource.py
--- a/sbsv2/raptor/test/smoke_suite/resource.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/resource.py Fri Apr 16 19:32:39 2010 +0100
@@ -63,5 +63,7 @@
"helloworld_reg_exe/helloworld_reg__private_10003a3f_apps_sc.rpp",
"helloworld_reg_exe/helloworld_reg__private_10003a3f_apps_sc.rpp.d"])
+ t.mustnotmatch = ["HelloWorld.rss.* warning: trigraph"]
+
t.run()
return t
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/terminal_filter_tests.py
--- a/sbsv2/raptor/test/smoke_suite/terminal_filter_tests.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/terminal_filter_tests.py Fri Apr 16 19:32:39 2010 +0100
@@ -19,10 +19,10 @@
def run():
t = SmokeTest()
- t.id = "87"
- t.name = "terminal_filter_tests"
- t.description = "terminal_filter_tests: Tests the terminal filter against" \
- + " log files to ensure it 'does the right thing'"
+ t.description = "Tests against log files to ensure it 'does the right thing'"
+
+ t.id = "87a"
+ t.name = "terminal_filter_tests_log"
t.command = "$(SBS_HOME)/test/smoke_suite/test_resources/refilter/testfilterterminal"
t.countmatch = [
# One of each type of error occurs early in the 'sbs' call where there
@@ -36,4 +36,19 @@
]
t.errors = 4
t.run()
+
+ t.id = "87b"
+ t.name = "terminal_filter_tests_configs"
+ t.command = "sbs -b smoke_suite/test_resources/simple/bld.inf"
+ t.countmatch = []
+ t.errors = 0
+ t.mustmatch_singleline = ["built 'armv5_urel'",
+ "built 'armv5_udeb'",
+ "built 'winscw_urel'",
+ "built 'winscw_udeb'" ]
+ t.run()
+
+ t.id = "87"
+ t.name = "terminal_filter_tests"
+ t.print_result()
return t
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/annofile2log/scrubbed_ncp_dfs_resource.anno.bz2
Binary file sbsv2/raptor/test/smoke_suite/test_resources/annofile2log/scrubbed_ncp_dfs_resource.anno.bz2 has changed
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/annofile2log/scrubbed_ncp_dfs_resource.stdout.bz2
Binary file sbsv2/raptor/test/smoke_suite/test_resources/annofile2log/scrubbed_ncp_dfs_resource.stdout.bz2 has changed
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/annofile2log/testanno2log.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/annofile2log/testanno2log.py Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,42 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Component description file
+#
+
+
+import sys
+import os
+sys.path.append(os.path.join(os.environ['SBS_HOME'],"python"))
+
+from raptor_make import XMLEscapeLog
+from raptor_make import AnnoFileParseOutput
+
+
+retcode=0
+
+
+annofile = sys.argv[1]
+
+sys.stdout.write("\n")
+try:
+ for l in XMLEscapeLog(AnnoFileParseOutput(annofile)):
+ sys.stdout.write(l)
+
+except Exception,e:
+ sys.stderr.write("error: " + str(e) + "\n")
+ retcode = 1
+sys.stdout.write("\n")
+
+sys.exit(retcode)
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/bv/bv_test.xml
--- a/sbsv2/raptor/test/smoke_suite/test_resources/bv/bv_test.xml Wed Apr 14 18:01:20 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/bv/config/properties/os_properties.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/bv/config/properties/os_properties.xml Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/bv/config/variants/bv_test.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/bv/config/variants/bv_test.xml Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/keepgoing/groups.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/keepgoing/groups.xml Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/mmp/epocnestedexceptions/bld.inf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/mmp/epocnestedexceptions/bld.inf Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,3 @@
+PRJ_MMPFILES
+test.mmp
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/mmp/epocnestedexceptions/test.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/mmp/epocnestedexceptions/test.cpp Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,7 @@
+#include
+
+TInt E32Main()
+{
+ return 0;
+}
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/mmp/epocnestedexceptions/test.mmp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/mmp/epocnestedexceptions/test.mmp Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,11 @@
+TARGET test_mmp_epocnestedexceptions.exe
+TARGETTYPE EXE
+
+LIBRARY euser.lib
+
+SYSTEMINCLUDE /epoc32/include
+
+SOURCE test.cpp
+
+EPOCNESTEDEXCEPTIONS
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/simple_gui/HelloWorld.rss
--- a/sbsv2/raptor/test/smoke_suite/test_resources/simple_gui/HelloWorld.rss Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_gui/HelloWorld.rss Fri Apr 16 19:32:39 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Eclipse Public License v1.0"
@@ -66,6 +66,7 @@
RESOURCE TBUF r_example_text_Item0 { buf="Item 0"; }
RESOURCE TBUF r_example_text_Item1 { buf="Item 1"; }
RESOURCE TBUF r_example_text_Item2 { buf="Item 2"; }
+RESOURCE TBUF r_example_text_Item3 { buf="This string generates a trigraph warning if not suppressed: ID3?????????"; }
RESOURCE LOCALISABLE_APP_INFO r_lai
{
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/simple_paging/bld.inf
--- a/sbsv2/raptor/test/smoke_suite/test_resources/simple_paging/bld.inf Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_paging/bld.inf Fri Apr 16 19:32:39 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Eclipse Public License v1.0"
@@ -18,14 +18,17 @@
PRJ_PLATFORMS
- ARMV5
+ARMV5
PRJ_MMPFILES
- default.mmp
- unpaged.mmp
- paged.mmp
+default.mmp
+unpaged.mmp
+paged.mmp
- unpagedcode_pageddata.mmp
- pagedcode_unpageddata.mmp
- pagedcode_defaultdata.mmp
+unpagedcode_pageddata.mmp
+pagedcode_unpageddata.mmp
+pagedcode_defaultdata.mmp
+
+paged_unpaged.mmp
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/simple_paging/paged_unpaged.mmp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_paging/paged_unpaged.mmp Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* In this example "bytepaircompresstarget" should not by implied as
+* keyword "unpaged" cancels "paged".
+*/
+
+
+TARGET paged_unpaged.dll
+TARGETTYPE dll
+
+UID 0xE800004C
+CAPABILITY All -TCB
+
+VENDORID 0x70000001
+
+SOURCE a.cpp
+
+LIBRARY euser.lib
+
+PAGED
+UNPAGED
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/plugin.mmp
--- a/sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/plugin.mmp Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/plugin.mmp Fri Apr 16 19:32:39 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Eclipse Public License v1.0"
@@ -26,5 +26,9 @@
SOURCEPATH .
SOURCE plugin.cpp
SYSTEMINCLUDE /epoc32/include
-SYSTEMINCLUDE /epoc32/include/ecom
+SYSTEMINCLUDE /epoc32/include/ecom
+SYSTEMINCLUDE /epoc32/include/techview
LIBRARY euser.lib apmime.lib efsrv.lib
+
+START RESOURCE plugin.rss
+END
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/plugin.rss
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/plugin.rss Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Dummy ECOM resource file
+*
+*/
+
+NAME PLUG
+
+#include
+#include
+#include
+
+RESOURCE RSS_SIGNATURE { }
+
+RESOURCE TBUF { buf=""; }
+RESOURCE TBUF r_example_text_plug { buf="plug"; }
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/plugin3.mmp
--- a/sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/plugin3.mmp Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/plugin3.mmp Fri Apr 16 19:32:39 2010 +0100
@@ -12,7 +12,7 @@
* Contributors:
*
* Description:
-* Example ECOMP plugin3 component, with no UID listed
+* Example ECOM plugin3 component, with no UID listed
*
*/
@@ -24,6 +24,10 @@
VENDORID 0x70000001
SOURCEPATH .
SOURCE plugin.cpp
-SYSTEMINCLUDE /epoc32/include
-SYSTEMINCLUDE /epoc32/include/ecom
+SYSTEMINCLUDE /epoc32/include
+SYSTEMINCLUDE /epoc32/include/ecom
+SYSTEMINCLUDE /epoc32/include/techview
LIBRARY euser.lib apmime.lib efsrv.lib
+
+START RESOURCE plugin3.rss
+END
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/plugin3.rss
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/plugin3.rss Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Dummy ECOM resource file
+*
+*/
+
+NAME PLG3
+
+#include
+#include
+#include
+
+RESOURCE RSS_SIGNATURE { }
+
+RESOURCE TBUF { buf=""; }
+RESOURCE TBUF r_example_text_plug3 { buf="plug3"; }
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/BLD.INF
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/BLD.INF Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Cross compilation of win32 tools on Linux
+*
+*/
+
+PRJ_PLATFORMS
+TOOLS2
+
+PRJ_MMPFILES
+PDRTRAN.MMP
+platmacros.mmp
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/PDRTRAN.MMP
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/PDRTRAN.MMP Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* pdrtran.exe for windows and pdrtran for linux
+*/
+
+TARGET pdrtran
+TARGETTYPE exe
+
+SOURCEPATH ./src
+SOURCE LEXICAL.CPP PDRREADR.CPP PDRRECRD.CPP PDRTRAN.CPP
+SOURCE READER.CPP RECORD.CPP STRNG.CPP
+
+SYSTEMINCLUDE /epoc32/include
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/TEST.PD
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/TEST.PD Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,594 @@
+! PCL5.PD
+! Printer driver file for HP laser printers
+
+Resources Pcl5Resources
+ Reset "<27>E"
+ SetPageSize "<27>&l%dA"
+!<27>&l
+! 0o - Portrait
+! 0e - top margin to zero
+! 0C - VMI to zero
+!<27>9 - clear horizontal margins
+!<27>(0N - ISO 8859-1 Latin 1 character set
+ PreAmble "<27>&l0o0e0C<27>9<27>(0N"
+ PostAmble "<27>E"
+ BoldOn "<27>(s3B"
+ BoldOff "<27>(s0B"
+ ItalicOn "<27>(s1S"
+ ItalicOff "<27>(s0S"
+ UnderlineOn "<27>&d0D"
+ UnderlineOff "<27>&d@"
+ NewPage "<12>"
+ Portrait "<27>&l0o0E<27>9"
+ Landscape "<27>&l1o0E<27>9"
+ SetXPos "<27>*p%dX"
+ SetYPos "<27>*p%dY"
+ BitmapStart "<27>*t300R<27>*r%df1A" ! resolution 300 dots per inch
+ ScanLine "<27>*b%dm%dW" ! compression method coded in first %d
+ BitmapEnd "<27>*rC"
+EndResources
+
+Translates Telephone
+ 5:35 ! must ensure width of 5 = width of 35
+ 156:"<27>R<3><35><27>R<0>"
+EndTranslates
+
+FontInfo Courier10
+ MaxNormalCharWidth 25
+ Ascent 33 ! improvised values throughout
+ CodeSection 0:255
+ 0:25
+ EndCodeSection
+EndFontInfo
+
+FontInfo Courier12
+ MaxNormalCharWidth 30
+ Ascent 40
+ CodeSection 0:255
+ 0:30
+ EndCodeSection
+EndFontInfo
+
+FontInfo LinePrinter9
+ MaxNormalCharWidth 18
+ Ascent 28
+ CodeSection 0:255
+ 0:18
+ EndCodeSection
+EndFontInfo
+
+FontInfo CgTimesStd
+ MaxNormalCharWidth 188
+ Ascent 167
+ CodeSection 0:255
+ 0:207 1:207 2:207 3:207 4:207
+ 5:104 ! telephone character must be the same as # (35)
+ 6:207
+ 7:69 ! non-breaking hyphen must be the same as hyphen (45)
+ 8:207
+ 9:61 ! tab must be the same as space (32)
+ 10:207 11:150 12:150 13:104
+ 14:69 ! potential hyphen must be the same as hyphen (45)
+ 15:61 ! non-breaking space must be the same as space (32)
+ 16:150
+ 17:150 18:150 19:108 20:104 21:104 22:207 23:150 24:150
+ 25:150 26:150 27:150 28:184 29:150 30:150 31:150 32:61
+ 33:69 34:96 35:104 36:104 37:184 38:161 39:69 40:69
+ 41:69 42:104 43:184 44:69 45:69 46:69 47:69 48:104
+ 49:104 50:104 51:104 52:104 53:104 54:104 55:104 56:104
+ 57:104 58:69 59:69 60:207 61:184 62:207 63:92 64:184
+! A B C D E F G H
+ 65:150 66:131 67:142 68:154 69:131 70:123 71:150 72:154
+! I J K L M N O P
+ 73:69 74:81 75:146 76:131 77:188 78:154 79:150 80:119
+! Q R S T U V W X
+ 81:150 82:138 83:111 84:131 85:154 86:150 87:196 88:150
+! Y Z
+ 89:150 90:134 91:69 92:69 93:69 94:104 95:104 96:104
+! a b c d e f g h
+ 97:92 98:104 99:92 100:104 101:92 102:69 103:104 104:104
+! i j k l m n o p
+ 105:58 106:58 107:104 108:58 109:161 110:104 111:104 112:104
+! q r s t u v w x
+ 113:104 114:77 115:81 116:58 117:104 118:104 119:150 120:104
+! y z
+ 121:104 122:92 123:92 124:104 125:92 126:104 127:207 128:142
+ 129:104 130:92 131:92 132:92 133:92 134:92 135:92 136:92
+ 137:92 138:92 139:58 140:58 141:58 142:150 143:150 144:131
+ 145:138 146:184 147:104 148:104 149:104 150:104 151:104 152:104
+ 153:150 154:154 155:104 156:104 157:154 158:182 159:104 160:92
+ 161:58 162:104 163:104 164:104 165:154 166:104 167:104 168:92
+ 169:104 170:184 171:184 172:184 173:69 174:85 175:85 176:207
+ 177:207 178:207 179:207 180:207 181:150 182:150 183:150 184:105
+ 185:207 186:207 187:207 188:207 189:105 190:104 191:207 192:207
+ 193:207 194:207 195:207 196:207 197:207 198:92 199:150 200:207
+ 201:207 202:207 203:207 204:207 205:207 206:207 207:104 208:104
+ 209:154 210:129 211:129 212:129 213:58 214:70 215:70 216:70
+ 217:207 218:207 219:207 220:207 221:104 222:70 223:207 224:152
+ 225:104 226:152 227:152 228:104 229:152 230:115 231:106 232:122
+ 233:154 234:154 235:154 236:104 237:150 238:105 239:104 240:72
+ 241:184 242:104 243:183 244:104 245:104 246:184 247:104 248:104
+ 249:104 250:1 251:73 252:73 253:73 254:104 255:104
+ EndCodeSection
+EndFontInfo
+
+FontInfo CgTimesItalic
+ MaxNormalCharWidth 170
+ Ascent 167
+ CodeSection 0:255
+ 0:207
+ 1:207 2:207 3:207 4:207
+ 5:104 ! telephone character must be the same as # (35)
+ 6:207
+ 7:69 ! non-breaking hyphen must be the same as hyphen (45)
+ 8:207
+ 9:61 ! tab must be the same as space (32)
+ 10:207 11:150 12:150 13:104
+ 14:69 ! potential hyphen must be the same as hyphen (45)
+ 15:61 ! non-breaking space must be the same as space (32)
+ 16:150
+ 17:150 18:150 19:103 20:104 21:104 22:207 23:150 24:150
+ 25:150 26:150 27:150 28:184 29:150 30:150 31:150 32:61
+ 33:69 34:100 35:104 36:104 37:184 38:161 39:69 40:69
+ 41:69 42:104 43:184 44:69 45:69 46:69 47:69 48:104
+ 49:104 50:104 51:104 52:104 53:104 54:104 55:104 56:104
+ 57:104 58:69 59:69 60:207 61:184 62:207 63:104 64:184
+ 65:127 66:127 67:138 68:150 69:127 70:119 71:150 72:150
+ 73:69 74:92 75:138 76:115 77:170 78:138 79:150 80:127
+ 81:150 82:127 83:104 84:115 85:150 86:127 87:170 88:127
+ 89:115 90:115 91:69 92:69 93:69 94:104 95:104 96:104
+ 97:104 98:104 99:92 100:104 101:92 102:58 103:104 104:104
+ 105:58 106:58 107:92 108:58 109:150 110:104 111:104 112:104
+ 113:104 114:81 115:81 116:58 117:104 118:92 119:138 120:92
+ 121:92 122:81 123:92 124:104 125:92 126:104 127:207 128:138
+ 129:104 130:92 131:104 132:104 133:104 134:104 135:92 136:92
+ 137:92 138:92 139:58 140:58 141:58 142:127 143:127 144:127
+ 145:138 146:184 147:104 148:104 149:104 150:104 151:104 152:92
+ 153:150 154:150 155:104 156:104 157:151 158:183 159:104 160:104
+ 161:58 162:104 163:104 164:104 165:138 166:104 167:104 168:104
+ 169:104 170:184 171:184 172:184 173:69 174:96 175:96 176:207
+ 177:207 178:207 179:207 180:207 181:127 182:127 183:127 184:105
+ 185:207 186:207 187:207 188:207 189:105 190:105 191:207 192:207
+ 193:207 194:207 195:207 196:207 197:207 198:104 199:127 200:207
+ 201:207 202:207 203:207 204:207 205:207 206:207 207:104 208:104
+ 209:148 210:127 211:127 212:127 213:58 214:70 215:70 216:70
+ 217:207 218:207 219:207 220:207 221:104 222:70 223:207 224:152
+ 225:104 226:152 227:152 228:104 229:152 230:115 231:106 232:126
+ 233:150 234:150 235:150 236:92 237:115 238:105 239:104 240:72
+ 241:184 242:104 243:182 244:104 245:104 246:184 247:104 248:104
+ 249:104 250:2 251:73 252:73 253:73 254:104 255:104
+ EndCodeSection
+EndFontInfo
+
+FontInfo CgTimesBold
+ MaxNormalCharWidth 196
+ Ascent 167
+ CodeSection 0:255
+ 0:207
+ 1:207 2:207 3:207 4:207
+ 5:104 ! telephone character must be the same as # (35)
+ 6:207
+ 7:69 ! non-breaking hyphen must be the same as hyphen (45)
+ 8:207
+ 9:61 ! tab must be the same as space (32)
+ 10:207 11:150 12:150 13:104
+ 14:69 ! potential hyphen must be the same as hyphen (45)
+ 15:61 ! non-breaking space must be the same as space (32)
+ 16:150
+ 17:150 18:150 19:119 20:104 21:104 22:207 23:150 24:150
+ 25:150 26:150 27:150 28:184 29:150 30:150 31:150 32:61
+ 33:69 34:96 35:104 36:104 37:184 38:169 39:69 40:69
+ 41:69 42:104 43:184 44:69 45:69 46:69 47:69 48:104
+ 49:104 50:104 51:104 52:104 53:104 54:104 55:104 56:104
+ 57:104 58:69 59:69 60:207 61:184 62:207 63:104 64:184
+ 65:150 66:138 67:150 68:150 69:138 70:127 71:161 72:161
+ 73:81 74:100 75:161 76:138 77:196 78:150 79:161 80:127
+ 81:161 82:150 83:115 84:138 85:150 86:150 87:207 88:150
+ 89:150 90:138 91:69 92:69 93:69 94:104 95:104 96:104
+ 97:104 98:115 99:92 100:115 101:92 102:73 103:104 104:115
+ 105:58 106:69 107:115 108:58 109:171 110:115 111:104 112:115
+ 113:115 114:92 115:81 116:69 117:115 118:104 119:150 120:104
+ 121:104 122:92 123:104 124:104 125:104 126:104 127:207 128:150
+ 129:115 130:92 131:104 132:104 133:104 134:104 135:92 136:92
+ 137:92 138:92 139:58 140:58 141:58 142:150 143:150 144:138
+ 145:150 146:215 147:104 148:104 149:104 150:115 151:115 152:104
+ 153:161 154:150 155:104 156:104 157:163 158:182 159:104 160:104
+ 161:58 162:104 163:115 164:115 165:150 166:104 167:104 168:104
+ 169:104 170:184 171:184 172:184 173:69 174:88 175:88 176:207
+ 177:207 178:207 179:207 180:207 181:150 182:150 183:150 184:105
+ 185:207 186:207 187:207 188:207 189:105 190:104 191:207 192:207
+ 193:207 194:207 195:207 196:207 197:207 198:104 199:150 200:207
+ 201:207 202:207 203:207 204:207 205:207 206:207 207:104 208:104
+ 209:148 210:137 211:137 212:137 213:58 214:80 215:80 216:80
+ 217:207 218:207 219:207 220:207 221:104 222:80 223:207 224:162
+ 225:115 226:162 227:162 228:104 229:162 230:115 231:116 232:126
+ 233:150 234:150 235:150 236:104 237:150 238:105 239:104 240:72
+ 241:184 242:104 243:183 244:104 245:104 246:184 247:104 248:104
+ 249:104 250:23 251:73 252:73 253:73 254:104 255:104
+ EndCodeSection
+EndFontInfo
+
+FontInfo CgTimesBoldItalic
+ MaxNormalCharWidth 184
+ Ascent 167
+ CodeSection 0:255
+ 0:207
+ 1:207 2:207 3:207 4:207
+ 5:104 ! telephone character must be the same as # (35)
+ 6:207
+ 7:69 ! non-breaking hyphen must be the same as hyphen (45)
+ 8:207
+ 9:61 ! tab must be the same as space (32)
+ 10:207 11:150 12:150 13:104
+ 14:69 ! potential hyphen must be the same as hyphen (45)
+ 15:61 ! non-breaking space must be the same as space (32)
+ 16:150
+ 17:150 18:150 19:131 20:104 21:104 22:207 23:150 24:150
+ 25:150 26:150 27:150 28:184 29:150 30:150 31:150 32:61
+ 33:81 34:108 35:104 36:104 37:184 38:161 39:69 40:69
+ 41:69 42:104 43:184 44:69 45:69 46:69 47:69 48:104
+ 49:104 50:104 51:104 52:104 53:104 54:104 55:104 56:104
+ 57:104 58:69 59:69 60:207 61:184 62:207 63:104 64:184
+ 65:138 66:138 67:138 68:150 69:138 70:127 71:150 72:161
+ 73:81 74:104 75:138 76:127 77:184 78:150 79:150 80:127
+ 81:146 82:138 83:115 84:127 85:150 86:138 87:184 88:138
+ 89:127 90:127 91:69 92:69 93:69 94:104 95:104 96:104
+ 97:104 98:104 99:92 100:104 101:92 102:73 103:104 104:115
+ 105:58 106:58 107:104 108:58 109:161 110:115 111:104 112:104
+ 113:104 114:81 115:81 116:58 117:115 118:92 119:138 120:104
+ 121:92 122:81 123:104 124:104 125:104 126:104 127:207 128:138
+ 129:115 130:92 131:104 132:104 133:104 134:104 135:92 136:92
+ 137:92 138:92 139:58 140:58 141:58 142:138 143:138 144:138
+ 145:146 146:192 147:104 148:104 149:104 150:115 151:115 152:92
+ 153:150 154:150 155:104 156:104 157:151 158:184 159:104 160:104
+ 161:58 162:104 163:115 164:115 165:150 166:104 167:104 168:104
+ 169:104 170:184 171:184 172:184 173:81 174:92 175:92 176:207
+ 177:207 178:207 179:207 180:207 181:138 182:138 183:138 184:105
+ 185:207 186:207 187:207 188:207 189:105 190:105 191:207 192:207
+ 193:207 194:207 195:207 196:207 197:207 198:104 199:138 200:207
+ 201:207 202:207 203:207 204:207 205:207 206:207 207:104 208:104
+ 209:148 210:137 211:137 212:137 213:58 214:80 215:80 216:80
+ 217:207 218:207 219:207 220:207 221:104 222:80 223:207 224:152
+ 225:104 226:152 227:152 228:104 229:152 230:115 231:106 232:126
+ 233:150 234:150 235:150 236:90 237:127 238:105 239:104 240:72
+ 241:184 242:104 243:183 244:104 245:104 246:184 247:104 248:104
+ 249:104 250:18 251:69 252:69 253:69 254:104 255:104
+ EndCodeSection
+EndFontInfo
+
+FontInfo UniversStd
+ MaxNormalCharWidth 188
+ Ascent 167
+ CodeSection 0:255
+ 0:207 1:207 2:207 3:207 4:207
+ 5:131 ! telephone character must be the same as # (35)
+ 6:207
+ 7:69 ! non-breaking hyphen must be the same as hyphen (45)
+ 8:207
+ 9:69 ! tab must be the same as space (32)
+ 10:207 11:150 12:150 13:104
+ 14:69 ! potential hyphen must be the same as hyphen (45)
+ 15:69 ! non-breaking space must be the same as space (32)
+ 16:150
+ 17:150 18:150 19:110 20:131 21:131 22:207 23:150 24:150
+ 25:150 26:150 27:150 28:207 29:150 30:150 31:150 32:69
+ 33:69 34:104 35:131 36:131 37:207 38:158 39:69 40:69
+ 41:69 42:131 43:207 44:69 45:69 46:69 47:69 48:131
+ 49:131 50:131 51:131 52:131 53:131 54:131 55:131 56:131
+ 57:131 58:69 59:69 60:207 61:207 62:207 63:108 64:207
+ 65:154 66:131 67:146 68:150 69:119 70:115 71:154 72:150
+ 73:58 74:115 75:138 76:111 77:188 78:150 79:158 80:123
+ 81:161 82:134 83:134 84:131 85:150 86:150 87:207 88:150
+ 89:142 90:127 91:69 92:69 93:69 94:131 95:104 96:131
+ 97:111 98:119 99:111 100:119 101:111 102:77 103:119 104:119
+ 105:50 106:50 107:111 108:50 109:181 110:119 111:119 112:119
+ 113:119 114:73 115:104 116:77 117:119 118:115 119:181 120:115
+ 121:115 122:100 123:92 124:104 125:92 126:131 127:207 128:146
+ 129:119 130:111 131:111 132:111 133:111 134:111 135:111 136:111
+ 137:111 138:111 139:50 140:50 141:50 142:154 143:154 144:119
+ 145:177 146:204 147:119 148:119 149:119 150:119 151:119 152:115
+ 153:158 154:150 155:122 156:131 157:160 158:207 159:131 160:111
+ 161:50 162:119 163:119 164:119 165:150 166:85 167:85 168:108
+ 169:104 170:207 171:207 172:207 173:69 174:115 175:115 176:207
+ 177:207 178:207 179:207 180:207 181:154 182:154 183:154 184:105
+ 185:207 186:207 187:207 188:207 189:129 190:129 191:207 192:207
+ 193:207 194:207 195:207 196:207 197:207 198:114 199:154 200:207
+ 201:207 202:207 203:207 204:207 205:207 206:207 207:128 208:121
+ 209:150 210:119 211:119 212:119 213:51 214:58 215:58 216:58
+ 217:207 218:207 219:207 220:207 221:105 222:58 223:207 224:158
+ 225:127 226:158 227:158 228:119 229:158 230:115 231:119 232:126
+ 233:150 234:150 235:150 236:118 237:141 238:129 239:129 240:72
+ 241:207 242:106 243:207 244:130 245:130 246:207 247:129 248:131
+ 249:129 250:25 251:81 252:81 253:81 254:104 255:104
+ EndCodeSection
+EndFontInfo
+
+FontInfo UniversItalic
+ MaxNormalCharWidth 188
+ Ascent 167
+ CodeSection 0:255
+ 0:207
+ 1:207 2:207 3:207 4:207
+ 5:131 ! telephone character must be the same as # (35)
+ 6:207
+ 7:69 ! non-breaking hyphen must be the same as hyphen (45)
+ 8:207
+ 9:69 ! tab must be the same as space (32)
+ 10:207 11:150 12:150 13:104
+ 14:69 ! potential hyphen must be the same as hyphen (45)
+ 15:69 ! non-breaking space must be the same as space (32)
+ 16:150
+ 17:150 18:150 19:114 20:131 21:131 22:207 23:150 24:150
+ 25:150 26:150 27:150 28:207 29:150 30:150 31:150 32:69
+ 33:69 34:104 35:131 36:131 37:207 38:158 39:69 40:69
+ 41:69 42:131 43:207 44:69 45:69 46:69 47:69 48:131
+ 49:131 50:131 51:131 52:131 53:131 54:131 55:131 56:131
+ 57:131 58:69 59:69 60:207 61:207 62:207 63:108 64:207
+ 65:154 66:131 67:146 68:150 69:119 70:115 71:154 72:150
+ 73:58 74:115 75:138 76:111 77:188 78:150 79:158 80:123
+ 81:161 82:134 83:134 84:131 85:150 86:150 87:207 88:150
+ 89:142 90:127 91:69 92:69 93:69 94:131 95:104 96:131
+ 97:111 98:119 99:111 100:119 101:111 102:77 103:119 104:119
+ 105:50 106:50 107:111 108:50 109:181 110:119 111:119 112:119
+ 113:119 114:73 115:104 116:77 117:119 118:115 119:181 120:115
+ 121:115 122:100 123:92 124:104 125:92 126:131 127:207 128:146
+ 129:119 130:111 131:111 132:111 133:111 134:111 135:111 136:111
+ 137:111 138:111 139:50 140:50 141:50 142:154 143:154 144:119
+ 145:177 146:204 147:119 148:119 149:119 150:119 151:119 152:115
+ 153:158 154:150 155:122 156:131 157:160 158:207 159:131 160:111
+ 161:50 162:119 163:119 164:119 165:150 166:85 167:85 168:108
+ 169:104 170:207 171:207 172:207 173:69 174:115 175:115 176:207
+ 177:207 178:207 179:207 180:207 181:154 182:154 183:154 184:105
+ 185:207 186:207 187:207 188:207 189:129 190:129 191:207 192:207
+ 193:207 194:207 195:207 196:207 197:207 198:111 199:154 200:207
+ 201:207 202:207 203:207 204:207 205:207 206:207 207:128 208:121
+ 209:150 210:119 211:119 212:119 213:51 214:58 215:58 216:58
+ 217:207 218:207 219:207 220:207 221:105 222:58 223:207 224:158
+ 225:127 226:158 227:158 228:119 229:158 230:115 231:119 232:126
+ 233:150 234:150 235:150 236:115 237:142 238:129 239:129 240:72
+ 241:207 242:106 243:207 244:130 245:130 246:207 247:129 248:131
+ 249:129 250:16 251:81 252:81 253:81 254:104 255:104
+ EndCodeSection
+EndFontInfo
+
+FontInfo UniversBold
+ MaxNormalCharWidth 188
+ Ascent 167
+ CodeSection 0:255
+ 0:207
+ 1:207 2:207 3:207 4:207
+ 5:131 ! telephone character must be the same as # (35)
+ 6:207
+ 7:69 ! non-breaking hyphen must be the same as hyphen (45)
+ 8:207
+ 9:69 ! tab must be the same as space (32)
+ 10:207 11:150 12:150 13:104
+ 14:69 ! potential hyphen must be the same as hyphen (45)
+ 15:69 ! non-breaking space must be the same as space (32)
+ 16:150
+ 17:150 18:150 19:115 20:131 21:131 22:207 23:150 24:150
+ 25:150 26:150 27:150 28:207 29:150 30:150 31:150 32:69
+ 33:69 34:108 35:131 36:131 37:207 38:158 39:69 40:69
+ 41:69 42:131 43:207 44:69 45:69 46:69 47:69 48:131
+ 49:131 50:131 51:131 52:131 53:131 54:131 55:131 56:131
+ 57:131 58:69 59:69 60:207 61:207 62:207 63:108 64:207
+ 65:154 66:131 67:146 68:150 69:119 70:115 71:154 72:150
+ 73:58 74:115 75:138 76:111 77:188 78:150 79:158 80:123
+ 81:161 82:134 83:134 84:131 85:150 86:150 87:207 88:150
+ 89:142 90:127 91:69 92:69 93:69 94:131 95:104 96:131
+ 97:111 98:119 99:111 100:119 101:111 102:77 103:119 104:119
+ 105:50 106:50 107:111 108:50 109:181 110:119 111:119 112:119
+ 113:119 114:73 115:104 116:77 117:119 118:115 119:181 120:115
+ 121:115 122:100 123:104 124:104 125:104 126:131 127:207 128:146
+ 129:119 130:111 131:111 132:111 133:111 134:111 135:111 136:111
+ 137:111 138:111 139:50 140:50 141:50 142:154 143:154 144:119
+ 145:177 146:204 147:119 148:119 149:119 150:119 151:119 152:115
+ 153:158 154:150 155:122 156:131 157:160 158:207 159:131 160:111
+ 161:50 162:119 163:119 164:119 165:150 166:85 167:85 168:108
+ 169:104 170:207 171:207 172:207 173:69 174:115 175:115 176:207
+ 177:207 178:207 179:207 180:207 181:154 182:154 183:154 184:105
+ 185:207 186:207 187:207 188:207 189:129 190:129 191:207 192:207
+ 193:207 194:207 195:207 196:207 197:207 198:111 199:154 200:207
+ 201:207 202:207 203:207 204:207 205:207 206:207 207:128 208:121
+ 209:150 210:119 211:119 212:119 213:51 214:58 215:58 216:58
+ 217:207 218:207 219:207 220:207 221:105 222:58 223:207 224:158
+ 225:127 226:158 227:158 228:119 229:158 230:123 231:119 232:126
+ 233:150 234:150 235:150 236:115 237:142 238:129 239:129 240:72
+ 241:207 242:106 243:207 244:130 245:130 246:207 247:129 248:131
+ 249:129 250:33 251:81 252:81 253:81 254:104 255:104
+ EndCodeSection
+EndFontInfo
+
+FontInfo UniversBoldItalic
+ MaxNormalCharWidth 188
+ Ascent 167
+ CodeSection 0:255
+ 0:207
+ 1:207 2:207 3:207 4:207
+ 5:131 ! telephone character must be the same as # (35)
+ 6:207
+ 7:69 ! non-breaking hyphen must be the same as hyphen (45)
+ 8:207
+ 9:69 ! tab must be the same as space (32)
+ 10:207 11:150 12:150 13:104
+ 14:69 ! potential hyphen must be the same as hyphen (45)
+ 15:69 ! non-breaking space must be the same as space (32)
+ 16:150
+ 17:150 18:150 19:125 20:131 21:131 22:207 23:150 24:150
+ 25:150 26:150 27:150 28:207 29:150 30:150 31:150 32:69
+ 33:69 34:111 35:131 36:131 37:207 38:158 39:69 40:69
+ 41:69 42:131 43:207 44:69 45:69 46:69 47:69 48:131
+ 49:131 50:131 51:131 52:131 53:131 54:131 55:131 56:131
+ 57:131 58:69 59:69 60:207 61:207 62:207 63:108 64:207
+ 65:154 66:131 67:146 68:150 69:119 70:115 71:154 72:150
+ 73:58 74:115 75:138 76:111 77:188 78:150 79:158 80:123
+ 81:161 82:134 83:134 84:131 85:150 86:150 87:207 88:150
+ 89:142 90:127 91:69 92:69 93:69 94:131 95:104 96:131
+ 97:111 98:119 99:111 100:119 101:111 102:77 103:119 104:119
+ 105:50 106:50 107:111 108:50 109:181 110:119 111:119 112:119
+ 113:119 114:73 115:104 116:77 117:119 118:115 119:181 120:115
+ 121:115 122:100 123:104 124:104 125:104 126:131 127:207 128:146
+ 129:119 130:111 131:111 132:111 133:111 134:111 135:111 136:111
+ 137:111 138:111 139:50 140:50 141:50 142:154 143:154 144:119
+ 145:177 146:204 147:119 148:119 149:119 150:119 151:119 152:115
+ 153:158 154:150 155:122 156:131 157:160 158:207 159:131 160:111
+ 161:50 162:119 163:119 164:119 165:150 166:85 167:85 168:108
+ 169:104 170:207 171:207 172:207 173:69 174:115 175:115 176:207
+ 177:207 178:207 179:207 180:207 181:154 182:154 183:154 184:105
+ 185:207 186:207 187:207 188:207 189:129 190:129 191:207 192:207
+ 193:207 194:207 195:207 196:207 197:207 198:111 199:154 200:207
+ 201:207 202:207 203:207 204:207 205:207 206:207 207:128 208:121
+ 209:150 210:119 211:119 212:119 213:51 214:58 215:58 216:58
+ 217:207 218:207 219:207 220:207 221:105 222:58 223:207 224:158
+ 225:127 226:158 227:158 228:119 229:158 230:123 231:119 232:126
+ 233:150 234:150 235:150 236:115 237:142 238:129 239:129 240:72
+ 241:207 242:106 243:207 244:130 245:130 246:207 247:129 248:131
+ 249:129 250:37 251:81 252:81 253:81 254:104 255:104
+ EndCodeSection
+EndFontInfo
+
+TypefaceFonts Courier
+ Name "Courier" Serif
+ Translates Telephone
+ FontHeight
+ Height 200
+ Normal Courier10
+ Bold Courier10
+ Italic Courier10
+ BoldItalic Courier10
+ Command "" !<27>(s0p12h10v3T"
+ EndFontHeight
+ FontHeight
+ Height 240
+ Normal Courier12
+ Bold Courier12
+ Italic Courier12
+ BoldItalic Courier12
+ Command "" !<27>(s0p10h12v3T"
+ EndFontHeight
+EndTypefaceFonts
+
+TypefaceFonts LinePrinter
+ Name "Lineprinter"
+ Translates Telephone
+ FontHeight
+ Height 170
+ Normal LinePrinter9
+ Bold LinePrinter9
+ Italic LinePrinter9
+ BoldItalic LinePrinter9
+ Command "<27>(s0p16.67h8.5v0T"
+ EndFontHeight
+EndTypefaceFonts
+
+TypefaceFonts CgTimes
+ Name "CG Times" Proportional Serif
+ Translates Telephone
+ ScalableFontHeight
+ HeightMin 80 ! min font height 80 twips = 4 point
+ HeightMax 1200 ! max font height 1200 twips ( = 60 point)
+ HeightDelta 20 ! delta font height 20 twips = 1 point
+ Normal CgTimesStd
+ Bold CgTimesBold
+ Italic CgTimesItalic
+ BoldItalic CgTimesBoldItalic
+ Command "<27>(s1p%dv4101T"
+ EndScalableFontHeight
+EndTypefaceFonts
+
+TypefaceFonts Univers
+ Name "Univers" Proportional
+ Translates Telephone
+ ScalableFontHeight
+ HeightMin 80 ! min font height 80 twips = 4 point
+ HeightMax 1200 ! max font height 1200 twips ( = 60 point)
+ HeightDelta 20 ! delta font height 20 twips = 1 point
+ Normal UniversStd
+ Bold UniversBold
+ Italic UniversItalic
+ BoldItalic UniversBoldItalic
+ Command "<27>(s1p%dv4148T"
+ EndScalableFontHeight
+EndTypefaceFonts
+
+!ExtraInfo ExtraInfo
+! "abcdefghijklmnopqrstuvwxyz"
+! "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+!EndExtraInfo
+
+Model HPLJ3
+ Name "HP LaserJet III" RequiresPrinterPort
+ Uid 1000
+ Flags 0
+ Resources Pcl5Resources
+ KPixelWidth 4800 ! Twips = 300 dots per inch
+ KPixelHeight 4800
+ PortraitOffset 75 0 ! Pixels
+ LandscapeOffset 60 0
+ MinMarginLeft 50 ! Pixels
+ MinMarginRight 50
+ MinMarginTop 50
+ MinMarginBottom 50
+ DisplayMode Gray2
+ TypefaceFontss
+ Courier
+ LinePrinter NotInLandscape
+ CgTimes NotInPortrait
+ Univers
+ EndTypefaceFontss
+EndModel
+
+Model HPDJ340
+ Name "HP DeskJet 340" RequiresPrinterPort
+ Uid 1100
+ Flags 3 ! 1 = MoveDownOnly, 2 = LanscapeBandOrientationVertical
+ Resources Pcl5Resources
+ KPixelWidth 4800 ! Twips = 300 dots per inch
+ KPixelHeight 4800
+ PortraitOffset 75 0 ! Pixels
+ LandscapeOffset 60 0
+ MinMarginLeft 50 ! Pixels
+ MinMarginRight 50
+ MinMarginTop 75
+ MinMarginBottom 200
+ DisplayMode Gray2
+ TypefaceFontss
+ Courier
+ LinePrinter
+ CgTimes
+ Univers
+ EndTypefaceFontss
+EndModel
+
+Model HPDJ660C
+ Name "HP DeskJet 660C" RequiresPrinterPort
+ Uid 1200
+ Flags 3 ! 1 = MoveDownOnly, 2 = LanscapeBandOrientationVertical
+ Resources Pcl5Resources
+ KPixelWidth 4800 ! Twips = 300 dots per inch
+ KPixelHeight 4800
+ PortraitOffset 75 0 ! Pixels
+ LandscapeOffset 60 0
+ MinMarginLeft 50 ! Pixels
+ MinMarginRight 50
+ MinMarginTop 75
+ MinMarginBottom 175
+ DisplayMode Gray2
+ TypefaceFontss
+ Courier
+ LinePrinter
+ CgTimes
+ Univers
+ EndTypefaceFontss
+! SpareRecord ExtraInfo
+EndModel
+
+PdrStoreFile
+ PDLName "test"
+ PDLUid 1
+ Models
+ HPLJ3
+ HPDJ340
+ HPDJ660C
+ EndModels
+EndPdrStoreFile
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/platmacros.mmp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/platmacros.mmp Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+TARGET test_platmacros
+TARGETTYPE EXE
+SOURCEPATH ./src
+SOURCE platmacros.cpp
+
+// TOOLS2_WINDOWS activated for cross compilation on Linux
+#ifdef TOOLS2_LINUX
+#warning TOOLS2_LINUX
+#endif
+
+#ifdef TOOLS2_WINDOWS
+#warning TOOLS2_WINDOWS
+#endif
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/LEXICAL.CPP
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/LEXICAL.CPP Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,311 @@
+/*
+* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Header LEXICAL.CPP
+*
+*/
+
+
+#include "LEXICAL.H"
+
+Lexical::Lexical()
+ : iType(ELexNL), iNumber(0)
+ {
+ iText[0] = '\0';
+ }
+
+Lexical::Lexical(const Lexical& aLex)
+ {
+ iType = aLex.iType;
+ iNumber = aLex.iNumber;
+ strcpy(iText, aLex.iText);
+ }
+
+Lexical& Lexical::operator = (const Lexical& aLex)
+ {
+ iType = aLex.iType;
+ iNumber = aLex.iNumber;
+ strcpy(iText, aLex.iText);
+ return *this;
+ }
+
+int Lexical::CovertStringToHex()
+ {
+ char* curPtr = iText; // Position of current lexical in line
+ int hexDigit;
+ int number = 0;
+
+ while (HexDigit(*curPtr, hexDigit))
+ {
+ number = (16 * number) + hexDigit;
+ curPtr++;
+ }
+ return number;
+ }
+
+int Lexical::HexDigit(char aDigit, int& decimalEquivalent)
+ {
+ boolean validDigit = efalse;
+ if ((aDigit >= '0') && (aDigit <= '9'))
+ {
+ decimalEquivalent = (aDigit - '0');
+ validDigit = etrue;
+ }
+ else if ((aDigit >= 'a') && (aDigit <= 'f'))
+ {
+ decimalEquivalent = 10 + (aDigit - 'a');
+ validDigit = etrue;
+ }
+ else if ((aDigit >= 'A') && (aDigit <= 'F'))
+ {
+ decimalEquivalent = 10 + (aDigit - 'A');
+ validDigit = etrue;
+ }
+ return validDigit;
+ }
+
+ostream& operator << (ostream& out, const Lexical& aLex)
+ {
+ switch (aLex.iType)
+ {
+ case ELexEOF:
+ {
+ out << "EOF";
+ break;
+ }
+ case ELexNL:
+ {
+ out << "NL";
+ break;
+ }
+ case ELexNumber:
+ {
+ out << aLex.iNumber;
+ break;
+ }
+ case ELexOperator:
+ {
+ out << aLex.iText[0];
+ break;
+ }
+ default:
+ {
+ out << aLex.iText;
+ }
+ }
+ return out;
+ }
+
+LexAnal::LexAnal(const char* aFilename)
+ : iFilename(aFilename)
+ {
+ iFin.open(aFilename);
+ iLex.iType = ELexNL;
+ iLineNo = 0;
+ }
+
+Lexical LexAnal::Read() // read next lexical into iLex
+ {
+ if (iLex.iType == ELexNL)
+ {
+ do
+ {
+ GetNextLex();
+ }
+ while (iLex.iType == ELexNL);
+ }
+ else
+ GetNextLex();
+ return iLex;
+ }
+
+Lexical LexAnal::ReadNextLine() // read first lex on next line
+ {
+ GetNextLine();
+ return iLex;
+ }
+
+void LexAnal::Report()
+ {
+ cerr << iFilename.Text() << '(' << iLineNo << "): \n";
+ cerr << iLine << '\n';
+ for (char* p = iLine; p < iLexPtr; p++)
+ cerr << ' ';
+ cerr << "^\n";
+ }
+
+LexAnal::~LexAnal()
+ {
+ iFin.close();
+ }
+
+void LexAnal::GetNextLex()
+ {
+ char ch;
+ if (iLex.iType == ELexNL)
+ {
+ iFin.getline(iLine, MaxLineLen);
+ // Remove any CR character that appear at the end when
+ // reading a dos file on unix.
+ PurgeLastCR(iLine);
+ iCurPtr = iLine;
+ iLineNo++;
+ }
+
+ while ((*iCurPtr == ' ') || (*iCurPtr == '\t'))
+ iCurPtr++;
+ ch = *iCurPtr;
+ iLexPtr = iCurPtr;
+
+ if ((ch == '\0') && (iFin.eof())) // finds lexical type
+ iLex = ReadEOF();
+ else if ((ch == '\0') || (ch == '!')) // ! is a comment
+ iLex = ReadNewLine();
+ else if ((ch == '-') || ((ch >= '0') && (ch <= '9')))
+ iLex = ReadNumber();
+ else if (((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) || (ch == '_'))
+ iLex = ReadIdent();
+ else if (ch == '"')
+ iLex = ReadString();
+ else
+ iLex = ReadOperator();
+ }
+
+void LexAnal::GetNextLine()
+ {
+ iFin.getline(iLine, MaxLineLen);
+ // Remove any CR character that appear at the end when
+ // reading a dos file on unix.
+ PurgeLastCR(iLine);
+ iCurPtr = iLine;
+ iLineNo++;
+
+ char ch;
+ while ((*iCurPtr == ' ') || (*iCurPtr == '\t'))
+ iCurPtr++;
+ ch = *iCurPtr;
+ iLexPtr = iCurPtr;
+
+ if ((ch == '\0') && (iFin.eof())) // finds lexical type
+ iLex = ReadEOF();
+ else if ((ch == '\0') || (ch == '!'))
+ iLex = ReadNewLine();
+ else if ((ch == '-') || ((ch >= '0') && (ch <= '9')))
+ iLex=ReadNumber();
+ else if (((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) || (ch == '_'))
+ iLex = ReadIdent();
+ else if (ch == '"')
+ iLex = ReadString();
+ else
+ iLex = ReadOperator();
+ }
+
+void LexAnal::PurgeLastCR(char *aLine)
+ {
+ int len = strlen(aLine) - 1;
+ if (len >= 0 && aLine[len] == '\r')
+ {
+ aLine[len] = '\0';
+ }
+ }
+
+Lexical LexAnal::ReadEOF()
+ {
+ Lexical lex;
+ lex.iType = ELexEOF;
+ return lex;
+ }
+
+Lexical LexAnal::ReadNewLine()
+ {
+ Lexical lex;
+ lex.iType = ELexNL;
+ while (*iCurPtr != '\0')
+ iCurPtr++;
+ return lex;
+ }
+
+Lexical LexAnal::ReadNumber()
+ {
+ Lexical lex;
+ char ch;
+ boolean negative = efalse;
+ lex.iType = ELexNumber;
+ if (*iCurPtr == '-')
+ {
+ negative = etrue;
+ iCurPtr++;
+ }
+ ch = *iCurPtr;
+ while ((ch >= '0') && (ch <= '9'))
+ {
+ if (negative)
+ lex.iNumber = (10 * lex.iNumber) - (*iCurPtr - '0');
+ else
+ lex.iNumber=(10 * lex.iNumber) + (*iCurPtr - '0');
+ iCurPtr++;
+ ch = *iCurPtr;
+ }
+ return lex;
+ }
+
+
+Lexical LexAnal::ReadIdent()
+ {
+ Lexical lex;
+ char ch;
+ lex.iType = ELexIdent;
+ do
+ {
+ iCurPtr++;
+ ch = *iCurPtr;
+ }
+ while (((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) || (ch == '_') || ((ch >= '0') && (ch <= '9')));
+ strncpy(lex.iText, iLexPtr, iCurPtr - iLexPtr);
+ lex.iText[iCurPtr - iLexPtr] = '\0';
+ return lex;
+ }
+
+Lexical LexAnal::ReadString()
+ {
+ Lexical lex;
+ char ch;
+ lex.iType = ELexString;
+ iCurPtr++;
+ ch = *iCurPtr;
+ while ((ch != '"') && (*iCurPtr != '\0'))
+ {
+ iCurPtr++;
+ ch = *iCurPtr;
+ }
+ strncpy(lex.iText, iLexPtr + 1, iCurPtr - (iLexPtr + 1));
+ lex.iText[iCurPtr - (iLexPtr + 1)] = '\0';
+ if (ch == '"')
+ iCurPtr++; // finds position after last double quotes
+ else
+ {
+ cerr << "Warning: missing quotes\n";
+ Report();
+ }
+ return lex;
+ }
+
+Lexical LexAnal::ReadOperator()
+ {
+ Lexical lex;
+ lex.iType = ELexOperator;
+ lex.iText[0] = *iCurPtr;
+ iCurPtr++;
+ return lex;
+ }
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/PDRREADR.CPP
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/PDRREADR.CPP Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,1009 @@
+/*
+* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Header PDRREADR.CPP
+*
+*/
+
+
+#include "PDRREADR.H"
+
+const int NumResources=34;
+
+String IdentResource[NumResources] =
+ {
+ "Reset",
+ "SetPageSize",
+ "PreAmble",
+ "PostAmble",
+ "SetTextColor", // !!
+ "BoldOn",
+ "BoldOff",
+ "ItalicOn",
+ "ItalicOff",
+ "UnderlineOn",
+ "UnderlineOff",
+ "StrikethroughOn",
+ "StrikethroughOff",
+ "NewPage",
+ "Portrait",
+ "Landscape",
+ "SetXPos",
+ "SetYPos",
+ "IncrementXPos",
+ "IncrementYPos",
+ "CarriageReturn",
+ "SetGraphicsColor", // !!
+ "BitmapStart",
+ "BitmapEnd",
+ "ScanLine",
+ "EndScanLine", // !!
+ "Resource1",
+ "Resource2",
+ "Resource3",
+ "Resource4",
+ "Resource5",
+ "Resource6",
+ "Resource7",
+ "Resource8"
+ };
+
+const int NumDisplayModeValues = 11;
+
+String IdentDisplayModeValue[NumDisplayModeValues] =
+ {
+ "None",
+ "Gray2",
+ "Gray4",
+ "Gray16",
+ "Gray256",
+ "Color16",
+ "Color256",
+ "Color64K",
+ "Color16M",
+ "Rgb",
+ "Color4K"
+ };
+
+EXPORT_C PdrReader::PdrReader()
+ : Reader(),
+ iPdrModelStore(),
+ iPdrStoreFile(NULL),
+ iResources(NULL),
+ iTranslates(NULL),
+ iCodeSection(NULL),
+ iFontInfo(NULL),
+ iIndex(Normal),
+ iFontHeight(NULL),
+ iTypefaceFonts(NULL),
+ iModel(NULL)
+ {
+ }
+
+EXPORT_C boolean PdrReader::Read(const String& aFilename)
+ {
+ boolean state = Open(aFilename);
+
+ while (!_EOF() && state)
+ {
+ if (IdentComp(IdentResources))
+ state = ReadResources();
+ else if (IdentComp(IdentTranslates))
+ state = ReadTranslates();
+ else if (IdentComp(IdentFontInfo))
+ state = ReadFontInfo();
+ else if (IdentComp(IdentTypefaceFonts))
+ state = ReadTypefaceFonts();
+// else if (IdentComp(IdentExtraInfo))
+// state = ReadExtraInfo();
+ else if (IdentComp(IdentModel))
+ state = ReadModel();
+ else if (IdentComp(IdentPdrStoreFile))
+ state = ReadPdrStoreFile();
+ else
+ {
+ Error("Resource identifier expected");
+ state = efalse;
+ }
+ if (state)
+ state = NewLine();
+ }
+ return state;
+ }
+
+EXPORT_C PdrReader::~PdrReader()
+ {
+ }
+
+boolean PdrReader::ReadResources()
+ {
+ boolean state = etrue;
+ iResources = PdrResources::New();
+ state = IdentCopy(iResources->iLabel);
+ if (state)
+ state = NewLine();
+ while (!IdentComp(IdentEndResources) && !_EOF() && state)
+ {
+ int i; // DEF102183: Graphics tools fail to build using MS VC8.
+ for (i = 0; (i < NumResources) && !IdentComp(IdentResource[i]); i++)
+ { // Tries to match resources identifier
+ }
+ if (i < NumResources)
+ {
+ PdrResource *resource = PdrResource::New();
+ state = Command(resource->iString);
+ resource->iId = i;
+ if (state)
+ {
+ iResources->AddResource(resource);
+ state = NewLine();
+ }
+ else
+ resource->Delete();
+ }
+ else
+ {
+ state = efalse;
+ Error("Resources identifier expected");
+ }
+ }
+ if (state)
+ {
+ iPdrModelStore.AddResources(iResources);
+ cout << "Resources read\n";
+ }
+ else
+ iResources->Delete();
+ return state;
+ }
+
+boolean PdrReader::ReadTranslates()
+ {
+ int num;
+ boolean state = etrue;
+ iTranslates = PdrTranslates::New();
+ state = IdentCopy(iTranslates->iLabel);
+ if (state)
+ state = NewLine();
+ while (!IdentComp(IdentEndTranslates) && !_EOF() && state)
+ {
+ if (iLex->iType == ELexNumber)
+ {
+ PdrTranslation *translation = PdrTranslation::New();
+ Number(num);
+ translation->iFrom = uint16(num);
+ char ch;
+ state = Operator(ch);
+ if (state)
+ {
+ state = (ch == ':');
+ if (state)
+ {
+ if (iLex->iType == ELexNumber)
+ {
+ state = Number(num);
+ translation->iTo += char(num);
+ }
+ else
+ {
+ state = Command(translation->iTo);
+ }
+ if (state)
+ state = NewLine();
+ }
+ else
+ {
+ Error("Operator ':' expected");
+ }
+ }
+ if (state)
+ iTranslates->AddTranslation(translation);
+ else
+ translation->Delete();
+ }
+ }
+ if (state)
+ {
+ iPdrModelStore.AddTranslates(iTranslates);
+ cout << "Translates read\n";
+ }
+ else
+ iTranslates->Delete();
+ return state;
+ }
+
+boolean PdrReader::ReadCodeSection(int aCode)
+ {
+ boolean state = etrue;
+ int code;
+ int num;
+ iCodeSection = WidthsCodeSection::New();
+ char ch = 0;
+ state = Number(num);
+ if ((numiStart = uint16(num);
+ state = Operator(ch);
+ if (state)
+ state = (ch == ':');
+ if (state)
+ {
+ state = Number(num);
+ iCodeSection->iEnd = uint16(num);
+ state = NewLine();
+ }
+ else
+ {
+ state = efalse;
+ Error("Operator ':' expected");
+ }
+ }
+ else
+ state = efalse;
+ while (!IdentComp(IdentEndCodeSection) && !_EOF() && state)
+ {
+ if (iLex->iType != ELexNL)
+ {
+ state = Number(code);
+ if ((code != iCodeSection->iStart + iCodeSection->NumWidths()) && state)
+ {
+ state = efalse;
+ Error("Width out of sequence");
+ }
+ if (state)
+ state = Operator(ch);
+ if (state)
+ state = (ch == ':');
+ if (state)
+ {
+ Width *width = Width::New();
+ if (Number(num))
+ {
+ width->iWidthInPixels = (uint16) num;
+ iCodeSection->AddWidth(width);
+ }
+ else
+ {
+ state = efalse;
+ width->Delete();
+ }
+ }
+ }
+ else
+ state = NewLine();
+ }
+ if (state)
+ {
+ num = ((iCodeSection->iEnd + 1) - iCodeSection->iStart);
+ if ((num != iCodeSection->NumWidths()) && (iCodeSection->NumWidths() != 1))
+ {
+ Error("Wrong number of widths in codesection");
+ state = efalse;
+ }
+ }
+ if (state)
+ {
+ iFontInfo->AddCodeSection(iCodeSection);
+// cout << "Codesection read\n";
+ }
+ else
+ iCodeSection->Delete();
+ return state;
+ }
+
+boolean PdrReader::ReadFontInfo()
+ {
+ boolean state = etrue;
+ iFontInfo = FontInfo::New();
+ int num;
+ state = IdentCopy(iFontInfo->iLabel);
+ if (state)
+ state = NewLine();
+ while (!IdentComp(IdentEndFontInfo) && !_EOF() && state)
+ {
+ if (iLex->iType == ELexIdent)
+ {
+ if (IdentComp(IdentCodeSection))
+ {
+ int code = 0,size = iFontInfo->NumCodeSections();
+ if (size)
+ code = iFontInfo->CodeSectionList(size - 1)->iEnd + 1;
+ state = ReadCodeSection(code);
+ }
+ else if (IdentComp(IdentAscent))
+ {
+ if (Number(num))
+ iFontInfo->iAscentInPixels = uint16(num);
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentMaxNormalCharWidth))
+ {
+ state = Number(num);
+ if (state)
+ iFontInfo->iMaxNormalCharWidthInPixels = uint16(num);
+ }
+ else
+ {
+ Error("Unrecognised fontinfo identifier");
+ state = efalse;
+ }
+ }
+ else
+ {
+ Error("Fontinfo identifier expected");
+ state = efalse;
+ }
+ if (state)
+ state = NewLine();
+ }
+ if (state)
+ {
+ iFontInfo->iMaxCharWidthInPixels = 0;
+ for (int i = 0; i < iFontInfo->NumCodeSections(); i++)
+ {
+ WidthsCodeSection* codesection = iFontInfo->CodeSectionList(i);
+ for (int j = 0; j < codesection->NumWidths(); j++)
+ {
+ int width = codesection->WidthList(j)->iWidthInPixels;
+ if (width > iFontInfo->iMaxCharWidthInPixels)
+ iFontInfo->iMaxCharWidthInPixels = (uint16) width;
+ }
+ }
+ }
+ if (state)
+ {
+ iPdrModelStore.AddFontInfo(iFontInfo);
+ cout << "Fontinfo read\n";
+ }
+ else
+ iFontInfo->Delete();
+ return state;
+ }
+
+boolean PdrReader::ReadStyle()
+ {
+ boolean state = etrue;
+ Record *fontinfo;
+ PdrStyle *style;
+ String label;
+ if (!iTypefaceFonts->iIsScalable)
+ style = &iFontHeight->iStyle[iIndex];
+ else
+ style = &iTypefaceFonts->iScalableFontHeight.iStyle[iIndex];
+ style->iIsAvailable = etrue;
+ state = IdentCopy(label);
+ if (state)
+ {
+ fontinfo = iPdrModelStore.FindFontInfo(label);
+ if (fontinfo)
+ style->iFontInfo = fontinfo;
+ else
+ {
+ Error("Fontinfo not found");
+ state = efalse;
+ }
+ }
+ return state;
+ }
+
+boolean PdrReader::ReadFontHeight()
+ {
+ boolean state = etrue;
+ int num;
+ if (iTypefaceFonts->iIsScalable == etrue)
+ {
+ state = efalse;
+ Error("Scalablefontheight already defined");
+ }
+ else
+ iFontHeight = PdrFontHeight::New();
+ if (state)
+ state = NewLine();
+
+ while (!IdentComp(IdentEndFontHeight) && !_EOF() && state)
+ {
+ if (iLex->iType == ELexIdent)
+ {
+ if (IdentComp(IdentHeight))
+ {
+ if (Number(num))
+ iFontHeight->iHeightInTwips = num;
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentWidthScale))
+ {
+ if (Number(num))
+ iFontHeight->iWidthScale = num;
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentNormal))
+ {
+ iIndex = Normal;
+ state = ReadStyle();
+ }
+ else if (IdentComp(IdentBold))
+ {
+ iIndex = Bold;
+ state = ReadStyle();
+ }
+ else if (IdentComp(IdentItalic))
+ {
+ iIndex = Italic;
+ state = ReadStyle();
+ }
+ else if (IdentComp(IdentBoldItalic))
+ {
+ iIndex = BoldItalic;
+ state = ReadStyle();
+ }
+ else if (IdentComp(IdentCommand))
+ {
+ state = Command(iFontHeight->iCommandString);
+ }
+ else
+ {
+ Error("Unrecognised fontheight identifier");
+ state = efalse;
+ }
+ }
+ else
+ {
+ Error("Fontheight identifier expected");
+ state = efalse;
+ }
+ if (state)
+ state = NewLine();
+ }
+ if (state)
+ {
+ iTypefaceFonts->AddFontHeight(iFontHeight);
+ cout << "Fontheight read\n";
+ }
+ else
+ iFontHeight->Delete();
+ return state;
+ }
+
+boolean PdrReader::ReadScalableFontHeight()
+ {
+ boolean state = etrue;
+ int num;
+ if (iTypefaceFonts->NumFontHeights())
+ {
+ state = efalse;
+ Error("Non-scalable fontheights already defined");
+ }
+ else if (iTypefaceFonts->iIsScalable == etrue)
+ {
+ state = efalse;
+ Error("Scalablefontheight already defined");
+ }
+ iTypefaceFonts->iIsScalable=etrue;
+ if (state)
+ state = NewLine();
+
+ while (!IdentComp(IdentEndScalableFontHeight) && !_EOF() && state)
+ {
+ if (iLex->iType == ELexIdent)
+ {
+ if (IdentComp(IdentHeightMin))
+ {
+ if (Number(num))
+ iTypefaceFonts->iScalableFontHeight.iHeightMinInTwips = num;
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentHeightMax))
+ {
+ if (Number(num))
+ iTypefaceFonts->iScalableFontHeight.iHeightMaxInTwips = num;
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentHeightDelta))
+ {
+ if (Number(num))
+ iTypefaceFonts->iScalableFontHeight.iHeightDeltaInTwips = num;
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentNormal))
+ {
+ iIndex = Normal;
+ state = ReadStyle();
+ }
+ else if (IdentComp(IdentBold))
+ {
+ iIndex = Bold;
+ state = ReadStyle();
+ }
+ else if (IdentComp(IdentItalic))
+ {
+ iIndex = Italic;
+ state = ReadStyle();
+ }
+ else if (IdentComp(IdentBoldItalic))
+ {
+ iIndex = BoldItalic;
+ state = ReadStyle();
+ }
+ else if (IdentComp(IdentCommand))
+ {
+ state = Command(iTypefaceFonts->iScalableFontHeight.iCommandString);
+ }
+ else
+ {
+ Error("Unrecognised scalablefontheight identifier");
+ state = efalse;
+ }
+ }
+ else
+ {
+ Error("Scalablefontheight identifier expected");
+ state = efalse;
+ }
+ if (state)
+ state = NewLine();
+ }
+ if (state)
+ {
+ cout << "Scalablefontheight read\n";
+ }
+ else
+ {
+ if (!iTypefaceFonts->iIsScalable)
+ iFontHeight->Delete();
+ }
+ return state;
+ }
+
+boolean PdrReader::ReadTypefaceFonts()
+ {
+ boolean state = etrue;
+ Record* translates;
+ String label;
+ iTypefaceFonts = TypefaceFonts::New();
+ state = IdentCopy(iTypefaceFonts->iLabel);
+ if (state)
+ state = NewLine();
+ while (!IdentComp(IdentEndTypefaceFonts) && !_EOF() && state)
+ {
+ if (iLex->iType == ELexIdent)
+ {
+ if (IdentComp(IdentTypefaceName))
+ {
+ if (StringCopy(iTypefaceFonts->iTypeface.iName))
+ while (iLex->iType != ELexNL)
+ { if (IdentComp(IdentProportional))
+ iTypefaceFonts->iTypeface.iFlags = boolean(iTypefaceFonts->iTypeface.iFlags | Proportional);
+ else if (IdentComp(IdentSerif))
+ iTypefaceFonts->iTypeface.iFlags = boolean(iTypefaceFonts->iTypeface.iFlags | Serif);
+ else if (IdentComp(IdentSymbol))
+ iTypefaceFonts->iTypeface.iFlags = boolean(iTypefaceFonts->iTypeface.iFlags | Symbol);
+ else
+ {
+ Error("Typefacefonts identifier or newline expected");
+ state = efalse;
+ }
+ }
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentTypefaceTranslates))
+ {
+ state = IdentCopy(label);
+ if (state)
+ {
+ translates = iPdrModelStore.FindTranslates(label);
+ if (translates)
+ iTypefaceFonts->iTranslates = translates;
+ else
+ {
+ Error("Translates not found");
+ state = efalse;
+ }
+ }
+ }
+ else if (IdentComp(IdentFontHeight))
+ {
+ state = ReadFontHeight();
+ }
+ else if (IdentComp(IdentScalableFontHeight))
+ {
+ state = ReadScalableFontHeight();
+ }
+ else
+ {
+ Error("Unrecognised typefacefonts identifier");
+ state = efalse;
+ }
+ }
+ else
+ {
+ Error("Typefacefonts identifier expected");
+ state = efalse;
+ }
+ if (state)
+ state = NewLine();
+ }
+ if (state)
+ {
+ iPdrModelStore.AddTypefaceFonts(iTypefaceFonts);
+ cout << "Typefacefonts read\n";
+ }
+ else
+ iTypefaceFonts->Delete();
+ return state;
+ }
+
+boolean PdrReader::ReadModel()
+ {
+ boolean state = etrue;
+ int num;
+ iModel = PrinterModelHeader::New();
+ Record* resources;
+// Record* extrainfo;
+ String label;
+ state = IdentCopy(iModel->iLabel);
+ if (state)
+ state = NewLine();
+ while (!IdentComp(IdentEndModel) && !_EOF() && state)
+ {
+ if (iLex->iType == ELexIdent)
+ {
+ if (IdentComp(IdentModelName))
+ {
+ if (StringCopy(iModel->iEntry.iName))
+ while (iLex->iType != ELexNL)
+ {
+ if (IdentComp(IdentRequiresPrinterPort))
+ iModel->iEntry.iRequiresPrinterPort = etrue;
+ else
+ {
+ Error("Model identifier or newline expected");
+ state = efalse;
+ }
+ }
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentModelUid))
+ state = Number(iModel->iEntry.iUid);
+ else if (IdentComp(IdentModelFlags))
+ {
+ state = Number(num);
+ iModel->iInfo.iFlags = num;
+ }
+ else if (IdentComp(IdentModelResources))
+ {
+ state = IdentCopy(label);
+ if (state)
+ {
+ resources = iPdrModelStore.FindResources(label);
+ if (resources)
+ iModel->iInfo.iResources = resources;
+ else
+ {
+ Error("Resources not found");
+ state = efalse;
+ }
+ }
+ }
+/* else if (IdentComp(IdentSpareRecord))
+ {
+ state = IdentCopy(label);
+ if (state)
+ {
+ extrainfo = iPdrModelStore.FindExtraInfo(label);
+ if (extrainfo)
+ iModel->iInfo.iSpareRecord = extrainfo;
+ else
+ {
+ Error("Spare record not found");
+ state = efalse;
+ }
+ }
+ }
+*/
+ else if (IdentComp(IdentKPixelWidth))
+ {
+ if (Number(num))
+ iModel->iInfo.iKPixelWidthInTwips = num;
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentKPixelHeight))
+ {
+ if (Number(num))
+ iModel->iInfo.iKPixelHeightInTwips = num;
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentPortraitOffset))
+ {
+ if (Number(num))
+ {
+ iModel->iInfo.iPortraitOffsetInPixels.iX = num;
+ if (Number(num))
+ iModel->iInfo.iPortraitOffsetInPixels.iY = num;
+ else
+ state = efalse;
+ }
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentLandscapeOffset))
+ {
+ if (Number(num))
+ {
+ iModel->iInfo.iLandscapeOffsetInPixels.iX = num;
+ if (Number(num))
+ iModel->iInfo.iLandscapeOffsetInPixels.iY = num;
+ else
+ state = efalse;
+ }
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentMinMarginLeft))
+ {
+ if (Number(num))
+ iModel->iInfo.iMinMarginsInPixels.iLeft = num;
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentMinMarginRight))
+ {
+ if (Number(num))
+ iModel->iInfo.iMinMarginsInPixels.iRight = num;
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentMinMarginTop))
+ {
+ if (Number(num))
+ iModel->iInfo.iMinMarginsInPixels.iTop = num;
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentMinMarginBottom))
+ {
+ if (Number(num))
+ iModel->iInfo.iMinMarginsInPixels.iBottom = num;
+ else
+ state = efalse;
+ }
+ else if (IdentComp(IdentDisplayMode))
+ {
+ int i; // DEF102183: Graphics tools fail to build using MS VC8.
+ for (i = 0; (i < NumDisplayModeValues) && !IdentComp(IdentDisplayModeValue[i]); i++)
+ { // Tries to match display mode identifier
+ }
+ if (i < NumDisplayModeValues)
+ {
+ iModel->iInfo.iDisplayMode = i;
+ }
+ else
+ {
+ state = efalse;
+ Error("Display mode identifier expected");
+ }
+ }
+ else if (IdentComp(IdentTypefaceFontss))
+ {
+ state = NewLine();
+ while (!IdentComp(IdentEndTypefaceFontss) && !_EOF() && state)
+ {
+ TypefaceFontsEntry* typefacefontsentry = NULL;
+ if (iLex->iType == ELexIdent)
+ {
+ state = IdentCopy(label);
+ Record* typefacefonts = iPdrModelStore.FindTypefaceFonts(label);
+ if (typefacefonts)
+ {
+ typefacefontsentry = TypefaceFontsEntry::New(typefacefonts);
+ state = etrue;
+ }
+ else
+ {
+ Error("Typefacefonts not found");
+ state = efalse;
+ }
+ }
+ if (state)
+ {
+ while ((iLex->iType != ELexNL) && !_EOF() && state)
+ {
+ if (IdentComp(IdentNotInPortrait))
+ {
+ typefacefontsentry->iNotInPortrait = etrue;
+ }
+ else if (IdentComp(IdentNotInLandscape))
+ {
+ typefacefontsentry->iNotInLandscape = etrue;
+ }
+ else
+ {
+ Error("Typefacefontsentry identifier or newline expected");
+ state = efalse;
+ }
+ }
+ if (state)
+ iModel->iInfo.AddTypefaceFontsEntry(typefacefontsentry);
+ else
+ typefacefontsentry->Delete();
+ }
+ if (state)
+ state = NewLine();
+ }
+ }
+ else
+ {
+ Error("unrecognised model identifier");
+ state = efalse;
+ }
+ }
+ else
+ {
+ Error("Model identifier expected");
+ state = efalse;
+ }
+ if (state)
+ state = NewLine();
+ }
+ if (state)
+ {
+ iPdrModelStore.AddModel(iModel);
+ cout << "Model read\n";
+ }
+ else
+ iModel->Delete();
+ return state;
+ }
+
+boolean PdrReader::ReadPdrStoreFile()
+ {
+ boolean state = etrue;
+ if (iPdrStoreFile)
+ {
+ state = efalse;
+ Error("Pdrstorefile already read");
+ }
+ else
+ {
+ iPdrStoreFile = PdrStoreFile::New();
+ String label;
+ Record* model;
+ state = NewLine();
+ while (!IdentComp(IdentEndPdrStoreFile) && !_EOF() && state)
+ {
+ if (IdentComp(IdentPDLName))
+ {
+ state = StringCopy(iPdrStoreFile->iPDLName);
+ }
+ else if (IdentComp(IdentPDLUid))
+ {
+ state = Number(iPdrStoreFile->iPDLUid);
+ }
+ else if (IdentComp(IdentModels))
+ {
+ state = NewLine();
+ while (!IdentComp(IdentEndModels) && !_EOF() && state)
+ {
+ state = IdentCopy(label);
+ if (state)
+ {
+ model = iPdrModelStore.FindModel(label);
+ if (model)
+ {
+ iPdrStoreFile->AddModel((PrinterModelHeader*)model);
+ }
+ else
+ {
+ Error("model not found");
+ state = efalse;
+ }
+ }
+ if (state)
+ state = NewLine();
+ }
+ }
+ else
+ {
+ Error("Pdrstorefile identifier expected");
+ state = efalse;
+ }
+ if (state)
+ state = NewLine();
+ }
+ if (state)
+ {
+ iPdrModelStore.AddPdrStoreFile(iPdrStoreFile);
+ cout << "Pdrstorefile read\n";
+ }
+ else
+ iPdrStoreFile->Delete();
+ }
+ return state;
+ }
+
+EXPORT_C boolean PdrReader::Store(const String& aFilename)
+ {
+ boolean state = etrue;
+ if (!iPdrStoreFile)
+ {
+ state = efalse;
+ Error("No pdrstore file record");
+ }
+ else
+ state = iPdrModelStore.Store(aFilename);
+ return state;
+ }
+
+boolean PdrReader::Command(String& aCommand)
+ {
+ boolean state = etrue;
+ String string;
+ state = StringCopy(string);
+ int length = string.Length();
+ for (int i = 0; i < length; i++)
+ {
+ char ch = string[i];
+ if (ch == '<') // Read control character
+ {
+ ch = 0;
+ for (i = i + 1; (i < length) && (string[i] != '>'); i++)
+ ch = char((ch * 10) + (string[i] - '0'));
+ }
+ aCommand += ch;
+ }
+ return state;
+ }
+/*
+boolean PdrReader::ReadExtraInfo()
+ {
+ boolean state = etrue;
+ String label;
+ PdrExtraInfo* extrainfo = new PdrExtraInfo();
+ state = IdentCopy(extrainfo->iLabel);
+ if (state)
+ state = NewLine();
+ while (!IdentComp(IdentEndExtraInfo) && !_EOF() && state)
+ {
+ String* string = new String;
+ state = Command(*string);
+ if (state)
+ extrainfo->iInfo.Add(string);
+ else
+ delete string;
+ state = NewLine();
+ }
+ if (state)
+ {
+ iPdrModelStore.AddExtraInfo(extrainfo);
+ cout << "Extra info read\n";
+ }
+ else
+ delete extrainfo;
+ return state;
+ }
+*/
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/PDRRECRD.CPP
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/PDRRECRD.CPP Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,785 @@
+/*
+* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Header PDRRECRD.CPP
+*
+*/
+
+
+#include "PDRRECRD.H"
+
+EXPORT_C PdrResource* PdrResource::New()
+/** Creates a new instance of this class.
+
+@return Reference to a new object. */
+ {
+ return new PdrResource();
+ }
+
+EXPORT_C void PdrResource::Delete()
+/** Deletes the current object. */
+ {
+ delete this;
+ }
+
+void PdrResource::Externalize(ostream& out)
+ {
+ uint8 id = (uint8) iId;
+ out.write((char*) &id, sizeof(id));
+ iString.Externalize(out);
+ }
+
+EXPORT_C PdrResources* PdrResources::New()
+/** Creates a new instance of this class.
+
+@return Reference to a new object. */
+ {
+ return new PdrResources();
+ }
+
+EXPORT_C void PdrResources::Delete()
+/** Deletes the current object. */
+ {
+ delete this;
+ }
+
+void PdrResources::Externalize(ostream& out)
+ {
+ iStreamId = out.tellp();
+ iPdrResourceList.Externalize(out);
+ }
+
+EXPORT_C void PdrResources::AddResource(PdrResource* aResource)
+/** Adds a printer resource to the object.
+
+@param aResource Printer resource. */
+ {
+ iPdrResourceList.Add(aResource);
+ }
+
+PdrResources::~PdrResources()
+/** Default destructor. */
+ {
+ iPdrResourceList.Destroy();
+ }
+
+EXPORT_C PdrTranslation* PdrTranslation::New()
+/** Creates a new instance of this class.
+
+@return Reference to a new object. */
+ {
+ return new PdrTranslation();
+ }
+
+EXPORT_C void PdrTranslation::Delete()
+/** Deletes the current object. */
+ {
+ delete this;
+ }
+
+void PdrTranslation::Externalize(ostream& out)
+ {
+ out.write((char*) &iFrom, sizeof(iFrom));
+ iTo.Externalize(out);
+ }
+
+EXPORT_C PdrTranslates* PdrTranslates::New()
+/** Creates a new instance of this class.
+
+@return Reference to a new object. */
+ {
+ return new PdrTranslates();
+ }
+
+EXPORT_C void PdrTranslates::Delete()
+/** Deletes the current object. */
+ {
+ delete this;
+ }
+
+void PdrTranslates::Externalize(ostream& out)
+ {
+ iStreamId = out.tellp();
+ iPdrTranslationList.Externalize(out);
+ }
+
+EXPORT_C void PdrTranslates::AddTranslation(PdrTranslation* aTranslation)
+/** Adds a printer translation to the list.
+
+@param aTranslation Reference to a translation. */
+ {
+ iPdrTranslationList.Add(aTranslation);
+ }
+
+PdrTranslates::~PdrTranslates()
+/** This function is internal, and is not intended for use. */
+ {
+ iPdrTranslationList.Destroy();
+ }
+
+EXPORT_C Width* Width::New()
+/** Creates a new instance of this object.
+
+@return Reference to a new object. */
+ {
+ return new Width();
+ }
+
+EXPORT_C void Width::Delete()
+/** Deletes the current object. */
+ {
+ delete this;
+ }
+
+void Width::Externalize(ostream& out)
+ {
+ out.write ((char*) &iWidthInPixels, sizeof(iWidthInPixels));
+ }
+
+WidthsCodeSection::WidthsCodeSection()
+ : iWidthList()
+/** This function is internal only, and is not intended for use. */
+ {
+ }
+
+EXPORT_C WidthsCodeSection* WidthsCodeSection::New()
+/** Creates a new instance of this class.
+
+@return Reference to a new object. */
+ {
+ return new WidthsCodeSection();
+ }
+
+EXPORT_C void WidthsCodeSection::Delete()
+/** Deletes the current object. */
+ {
+ delete this;
+ }
+
+void WidthsCodeSection::Externalize(ostream& out)
+ {
+ out.write((char*) &iStart, sizeof(iStart));
+ out.write((char*) &iEnd, sizeof(iEnd));
+ iWidthList.Externalize(out);
+ }
+
+EXPORT_C void WidthsCodeSection::AddWidth(Width* aWidth)
+/** Adds a new font width to the list.
+
+@param aWidth Font width. */
+ {
+ iWidthList.Add(aWidth);
+ }
+
+EXPORT_C Width* WidthsCodeSection::WidthList(int i)
+/** Returns a font width from the list at the position specified.
+
+@param i Position of font width in list.
+@return Reference to a font width. */
+ {
+ return iWidthList[i];
+ }
+
+EXPORT_C int WidthsCodeSection::NumWidths()
+/** Returns the number of font widths in the list.
+
+@return Number of widths. */
+ {
+ return iWidthList.Size();
+ }
+
+WidthsCodeSection::~WidthsCodeSection()
+/** Default destructor. */
+ {
+ iWidthList.Destroy();
+ }
+
+EXPORT_C FontInfo* FontInfo::New()
+/** Creates a new instance of this class.
+
+@return Reference to a new instance of this class. */
+ {
+ return new FontInfo();
+ }
+
+EXPORT_C void FontInfo::Delete()
+/** Deletes the current FontInfo object. */
+ {
+ delete this;
+ }
+
+void FontInfo::Externalize(ostream& out)
+ {
+ iStreamId = out.tellp();
+ out.write((char*) &iAscentInPixels, sizeof(iAscentInPixels));
+ out.write((char*) &iMaxCharWidthInPixels, sizeof(iMaxCharWidthInPixels));
+ out.write((char*) &iMaxNormalCharWidthInPixels, sizeof(iMaxNormalCharWidthInPixels));
+ iCodeSectionList.Externalize(out);
+ }
+
+EXPORT_C void FontInfo::AddCodeSection(WidthsCodeSection* aCodeSection)
+/** Adds a section of information about the font to an internally-stored array.
+
+@param aCodeSection Font information. */
+ {
+ iCodeSectionList.Add(aCodeSection);
+ }
+
+EXPORT_C WidthsCodeSection* FontInfo::CodeSectionList(int i)
+/** Returns a section of font information from a specified position in the internally-stored
+array.
+
+@param i Postion of information in the array.
+@return Reference to section of font information. */
+ {
+ return iCodeSectionList[i];
+ }
+
+EXPORT_C int FontInfo::NumCodeSections()
+/** Returns the number of sections of font information in the internally-stored
+array.
+
+@return Current number of font information sections. */
+ {
+ return iCodeSectionList.Size();
+ }
+
+FontInfo::~FontInfo()
+/** This function is internal, and not intended for use. */
+ {
+ iCodeSectionList.Destroy();
+ }
+
+EXPORT_C PdrStyle* PdrStyle::New()
+/** Creates a new instance of this class
+
+@return Reference to a new object. */
+ {
+ return new PdrStyle();
+ }
+
+EXPORT_C void PdrStyle::Delete()
+/** Deletes the current object. */
+ {
+ delete this;
+ }
+
+void PdrStyle::Externalize(ostream& out)
+ {
+ out.write((char*) &iIsAvailable, sizeof(iIsAvailable));
+ streamoff streamid = 0;
+ if (iIsAvailable)
+ streamid = iFontInfo->iStreamId;
+ ::ExternalizeStreamOff(out, streamid);
+ }
+
+PdrStyle::PdrStyle()
+ : iIsAvailable(efalse)
+/** Default constructor. */
+ {
+ }
+
+EXPORT_C PdrFontHeight* PdrFontHeight::New()
+/** Returns a new instance of this class.
+
+@return Reference to new object. */
+ {
+ return new PdrFontHeight();
+ }
+
+EXPORT_C void PdrFontHeight::Delete()
+/** Deletes the current object. */
+ {
+ delete this;
+ }
+
+void PdrFontHeight::Externalize(ostream& out)
+ {
+ iCommandString.Externalize(out);
+ out.write((char*) &iHeightInTwips, sizeof(iHeightInTwips));
+ out.write((char*) &iWidthScale, sizeof(iWidthScale));
+ for (int style = Normal;style <= BoldItalic; style++)
+ iStyle[style].Externalize(out);
+ }
+
+PdrFontHeight::PdrFontHeight():
+ iWidthScale(1)
+/** Default constructor. */
+ {
+ }
+
+PdrScalableFontHeight::PdrScalableFontHeight()
+/** Default constructor. */
+ {
+ }
+
+void PdrScalableFontHeight::Externalize(ostream& out)
+ {
+ iCommandString.Externalize(out);
+ out.write((char*) &iHeightMinInTwips, sizeof(iHeightMinInTwips));
+ out.write((char*) &iHeightMaxInTwips, sizeof(iHeightMaxInTwips));
+ out.write((char*) &iHeightDeltaInTwips, sizeof(iHeightDeltaInTwips));
+ for (int style = Normal; style <= BoldItalic; style++)
+ iStyle[style].Externalize(out);
+ }
+
+EXPORT_C TypefaceFonts* TypefaceFonts::New()
+/** Creates a new instance of this class.
+
+@return Reference to a new object. */
+ {
+ return new TypefaceFonts();
+ }
+
+EXPORT_C void TypefaceFonts::Delete()
+/** Deletes the current object. */
+ {
+ delete this;
+ }
+
+void TypefaceFonts::Externalize(ostream& out)
+ {
+ iStreamId = out.tellp();
+ iTypeface.Externalize(out);
+ out.write((char*) &iIsScalable, sizeof(iIsScalable));
+ if (iIsScalable)
+ iScalableFontHeight.Externalize(out);
+ else
+ iFontHeightList.Externalize(out);
+ ::ExternalizeStreamOff(out, iTranslates->iStreamId);
+ }
+
+EXPORT_C void TypefaceFonts::AddFontHeight(PdrFontHeight* aFontHeight)
+ {
+ iFontHeightList.Add(aFontHeight);
+ }
+
+EXPORT_C int TypefaceFonts::NumFontHeights()
+/** Returns the number of font height descriptions currently held in the list.
+
+@return Number of descriptions. */
+ {
+ return iFontHeightList.Size();
+ }
+
+PdrFontHeight* TypefaceFonts::FontHeightList(int i)
+/** Returns the font height description from the position specified in the list.
+
+@param i Position of description.
+@return Font height description. */
+ {
+ return iFontHeightList[i];
+ }
+
+TypefaceFonts::TypefaceFonts():
+ iIsScalable(efalse)
+/** This function is internal only, and is not intended for use. */
+ {
+ }
+
+TypefaceFonts::~TypefaceFonts()
+/** This function is internal only, and is not intended for use. */
+ {
+ iFontHeightList.Destroy();
+ }
+
+EXPORT_C TypefaceFontsEntry* TypefaceFontsEntry::New(Record* aTypefaceFonts)
+ {
+ return new TypefaceFontsEntry(aTypefaceFonts);
+ }
+
+EXPORT_C void TypefaceFontsEntry::Delete()
+/** Deletes the current object. */
+ {
+ delete this;
+ }
+
+void TypefaceFontsEntry::Externalize(ostream& out)
+ {
+ ::ExternalizeStreamOff(out, iTypefaceFonts->iStreamId);
+ out.write((char*) &iNotInPortrait, sizeof(iNotInPortrait));
+ out.write((char*) &iNotInLandscape, sizeof(iNotInLandscape));
+ }
+
+TypefaceFontsEntry::TypefaceFontsEntry(Record* aTypefaceFonts)
+ : iTypefaceFonts(aTypefaceFonts), iNotInPortrait(efalse), iNotInLandscape(efalse)
+ {
+ }
+
+TypefaceFontsEntry::~TypefaceFontsEntry()
+/** Default destructor. */
+ {
+ }
+
+void Margins::Externalize(ostream& out)
+ {
+ out.write((char*) &iLeft, sizeof(iLeft));
+ out.write((char*) &iRight, sizeof(iRight));
+ out.write((char*) &iTop, sizeof(iTop));
+ out.write((char*) &iBottom, sizeof(iBottom));
+ }
+
+/*
+PdrExtraInfo::~PdrExtraInfo()
+ {
+ iInfo.Destroy();
+ }
+
+void PdrExtraInfo::Externalize(ostream& out)
+ {
+ iInfo.Externalize(out);
+ }
+*/
+
+void PdrModelInfo::Externalize(ostream& out)
+ {
+ iStreamId=out.tellp();
+ out.write((char*) &KPdrtranVersion, sizeof(KPdrtranVersion));
+ out.write((char*) &iFlags, sizeof(iFlags));
+ out.write((char*) &iKPixelWidthInTwips, sizeof(iKPixelWidthInTwips));
+ out.write((char*) &iKPixelHeightInTwips, sizeof(iKPixelHeightInTwips));
+ iPortraitOffsetInPixels.Externalize(out);
+ iLandscapeOffsetInPixels.Externalize(out);
+ iMinMarginsInPixels.Externalize(out);
+ out.write((char*) &iDisplayMode, sizeof(iDisplayMode));
+ iTypefaceFontsEntryList.Externalize(out);
+ ::ExternalizeStreamOff(out, iResources->iStreamId);
+ streamoff streamid = 0;
+ if (iSpareRecord)
+ streamid = iSpareRecord->iStreamId;
+ ::ExternalizeStreamOff(out, streamid);
+ }
+
+EXPORT_C void PdrModelInfo::AddTypefaceFontsEntry(TypefaceFontsEntry* aTypefaceFontsEntry)
+/** Adds an entry containing information about typeface fonts to an internally-stored
+array.
+
+@param aTypefaceFontsEntry Typeface font information. */
+ {
+ iTypefaceFontsEntryList.Add(aTypefaceFontsEntry);
+ }
+
+int PdrModelInfo::NumTypefaceFontsEntries()
+/** Returns the number of entries containing information about typeface fonts in
+the internally-stored array.
+
+@return Number of entries. */
+ {
+ return iTypefaceFontsEntryList.Size();
+ }
+
+TypefaceFontsEntry* PdrModelInfo::TypefaceFontsEntryList(int i)
+/** Returns the typeface font entry stored the internal array from the position
+specified.
+
+@param i Position in array.
+@return Typeface font entry. */
+ {
+ return iTypefaceFontsEntryList[i];
+ }
+
+PdrModelInfo::PdrModelInfo()
+ : iStreamId(0),
+ iFlags(0),
+ iKPixelWidthInTwips(0),
+ iKPixelHeightInTwips(0),
+ iPortraitOffsetInPixels(),
+ iLandscapeOffsetInPixels(),
+ iMinMarginsInPixels(),
+ iDisplayMode(0),
+ iTypefaceFontsEntryList(),
+ iResources(NULL),
+ iSpareRecord(NULL) // !! Not used yet
+/** Default constructor. */
+ {
+ }
+
+PdrModelInfo::~PdrModelInfo()
+/** Default destructor. */
+ {
+ iTypefaceFontsEntryList.Destroy();
+ }
+
+PrinterModelEntry::PrinterModelEntry()
+ : iName(), iRequiresPrinterPort(efalse), iUid(KNullUid)
+/** Default constructor. */
+ {
+ }
+
+void PrinterModelEntry::Externalize(ostream& out)
+ {
+ iName.Externalize(out);
+ out.write((char*) &iRequiresPrinterPort, sizeof(iRequiresPrinterPort));
+ out.write((char*) &iUid, sizeof(iUid));
+ }
+
+EXPORT_C PrinterModelHeader* PrinterModelHeader::New()
+/** Creates a new instance of this class.
+
+@return Reference to a new object. */
+ {
+ return new PrinterModelHeader();
+ }
+
+EXPORT_C void PrinterModelHeader::Delete()
+/** Deletes the current object. */
+ {
+ delete this;
+ }
+
+void PrinterModelHeader::Externalize(ostream& out)
+ {
+ iEntry.Externalize(out);
+ ::ExternalizeStreamOff(out, iInfo.iStreamId);
+ }
+
+void PrinterModelHeader::ExternalizeData(ostream& out)
+ {
+ iInfo.Externalize(out);
+ }
+
+boolean PrinterModelHeader::IsPdrModel()
+/** Determines whether printer information is available for this printer model.
+
+@return ETrue: printer description is available. */
+ {
+ return iInfo.NumTypefaceFontsEntries() || iInfo.iResources;
+ }
+
+EXPORT_C PdrStoreFile* PdrStoreFile::New()
+/** Creates a new instance of this class.
+
+@return Reference to a new object. */
+ {
+ return new PdrStoreFile();
+ }
+
+EXPORT_C void PdrStoreFile::Delete()
+/** Deletes the current object. */
+ {
+ delete this;
+ }
+
+EXPORT_C void PdrStoreFile::AddModel(PrinterModelHeader* aModel)
+/** Adds a printer model.
+
+@param aModel Printer model. */
+ {
+ iModelList.Add(aModel);
+ if (aModel->IsPdrModel())
+ {
+ for (int i = 0; i < aModel->iInfo.NumTypefaceFontsEntries(); i++)
+ AddTypefaceFonts((TypefaceFonts*) aModel->iInfo.TypefaceFontsEntryList(i)->iTypefaceFonts);
+ iResourcesList.Add(aModel->iInfo.iResources);
+// if (aModel->iInfo.iSpareRecord)
+// iExtraInfoList.Add(aModel->iInfo.iSpareRecord);
+ }
+ }
+
+void PdrStoreFile::Externalize(ostream& out)
+ {
+ ExternalizeHeader(out);
+ ExternalizeComponents(out);
+ }
+
+void PdrStoreFile::ExternalizeHeader(ostream& out)
+ {
+ out.write((char*) &KStoreWriteOnceLayoutUid, sizeof(KStoreWriteOnceLayoutUid));
+ out.write((char*) &KPdrStoreFileUid, sizeof(KPdrStoreFileUid));
+ out.write((char*) &KNullUid, sizeof(KNullUid));
+ out.write((char*) &KPdrStoreFileChecksum, sizeof(KPdrStoreFileChecksum));
+ ::ExternalizeStreamOff(out, iStreamId);
+ iStreamId = out.tellp();
+ iPDLName.Externalize(out);
+ out.write((char*) &iPDLUid, sizeof(iPDLUid));
+ iModelList.Externalize(out);
+ }
+
+void PdrStoreFile::AddTypefaceFonts(TypefaceFonts* aTypefaceFonts)
+ {
+ iTypefaceFontsList.Add(aTypefaceFonts);
+ iTranslatesList.Add(aTypefaceFonts->iTranslates);
+ if (aTypefaceFonts->iIsScalable)
+ {
+ for (int style = Normal; style <= BoldItalic; style++)
+ {
+ if (aTypefaceFonts->iScalableFontHeight.iStyle[style].iIsAvailable)
+ iFontInfoList.Add(aTypefaceFonts->iScalableFontHeight.iStyle[style].iFontInfo);
+ }
+ }
+ else
+ {
+ for (int j = 0; j < aTypefaceFonts->NumFontHeights(); j++)
+ {
+ PdrFontHeight* fontheight = aTypefaceFonts->FontHeightList(j);
+ for (int style = Normal; style <= BoldItalic; style++)
+ {
+ if (fontheight->iStyle[style].iIsAvailable)
+ iFontInfoList.Add(fontheight->iStyle[style].iFontInfo);
+ }
+ }
+ }
+ }
+
+void PdrStoreFile::ExternalizeComponents(ostream& out)
+ {
+ for (int i = 0; i < iModelList.Size(); i++)
+ {
+ PrinterModelHeader* model = (PrinterModelHeader*) iModelList[i];
+ if (model->IsPdrModel())
+ model->ExternalizeData(out);
+ }
+ iTypefaceFontsList.Externalize(out);
+ iFontInfoList.Externalize(out);
+ iResourcesList.Externalize(out);
+ iTranslatesList.Externalize(out);
+// iExtraInfoList.Externalize(out);
+ }
+
+PdrStoreFile::PdrStoreFile()
+ : Record(),
+ iPDLName(),
+ iPDLUid(KNullUid),
+ iModelList(),
+ iTypefaceFontsList(),
+ iFontInfoList(),
+ iResourcesList(),
+ iTranslatesList()
+/** This function is internal only, and is not intended for use. */
+ {
+ }
+
+EXPORT_C boolean PdrModelStore::Store(const String& aFilename)
+/** Externalizes printer information from the store to the specfied external file.
+
+@param aFilename Filename.
+@return ETrue: store successful. */
+ {
+ boolean state = efalse;
+ ofstream fout;
+ String string = aFilename;
+ fout.open(string.Text(), ios::binary);
+ if (!fout.fail())
+ {
+ iPdrStoreFile->Externalize(fout);
+ fout.close();
+ fout.open(string.Text(), ios::binary | ios::trunc);
+ iPdrStoreFile->Externalize(fout);
+ fout.close();
+ state = etrue;
+ }
+ return state;
+ }
+
+EXPORT_C void PdrModelStore::AddPdrStoreFile(PdrStoreFile* aPdrStoreFile)
+ {
+ iPdrStoreFile = aPdrStoreFile;
+ }
+
+EXPORT_C void PdrModelStore::AddModel(PrinterModelHeader *aModel)
+/** Adds a printer model to the store.
+
+@param aModel Printer model. */
+ {
+ iModelList.Add(aModel);
+ }
+
+EXPORT_C Record *PdrModelStore::FindModel(String& aLabel)
+ {
+ return iModelList.LabelToRecord(aLabel);
+ }
+
+EXPORT_C void PdrModelStore::AddTypefaceFonts(TypefaceFonts *aTypefaceFonts)
+/** Adds typeface information to the store.
+
+@param aTypefaceFonts Typeface fonts. */
+ {
+ iTypefaceFontsList.Add(aTypefaceFonts);
+ }
+
+EXPORT_C Record *PdrModelStore::FindTypefaceFonts(String& aLabel)
+ {
+ return iTypefaceFontsList.LabelToRecord(aLabel);
+ }
+
+EXPORT_C void PdrModelStore::AddFontInfo(FontInfo *aFontInfo)
+/** Adds font information to the store.
+
+@param aFontInfo Font information. */
+ {
+ iFontInfoList.Add(aFontInfo);
+ }
+
+EXPORT_C Record *PdrModelStore::FindFontInfo(String& aLabel)
+ {
+ return iFontInfoList.LabelToRecord(aLabel);
+ }
+
+EXPORT_C void PdrModelStore::AddResources(PdrResources *aResources)
+ {
+ iResourcesList.Add(aResources);
+ }
+
+EXPORT_C Record *PdrModelStore::FindResources(String& aLabel)
+ {
+ return iResourcesList.LabelToRecord(aLabel);
+ }
+
+EXPORT_C void PdrModelStore::AddTranslates(PdrTranslates *aTranslates)
+/** Adds printer translations to the store.
+
+@param aTranslates Translation list. */
+ {
+ iTranslatesList.Add(aTranslates);
+ }
+
+EXPORT_C Record *PdrModelStore::FindTranslates(String& aLabel)
+ {
+ return iTranslatesList.LabelToRecord(aLabel);
+ }
+
+ /*
+void PdrModelStore::AddExtraInfo(PdrExtraInfo *aInfo)
+ {
+ iExtraInfoList.Add(aInfo);
+ }
+
+Record* PdrModelStore::FindExtraInfo(String& aLabel)
+ {
+ return iExtraInfoList.LabelToRecord(aLabel);
+ }
+*/
+
+PdrModelStore::PdrModelStore()
+ : iPdrStoreFile(NULL),
+ iModelList(),
+ iTypefaceFontsList(),
+ iFontInfoList(),
+ iResourcesList()//,
+// iExtraInfoList()
+/** Default constructor. */
+ {
+ }
+
+PdrModelStore::~PdrModelStore()
+/** Default destructor. */
+ {
+ delete iPdrStoreFile;
+ iModelList.Destroy();
+ iTypefaceFontsList.Destroy();
+ iFontInfoList.Destroy();
+ iResourcesList.Destroy();
+ iTranslatesList.Destroy();
+// iExtraInfoList.Destroy();
+ }
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/PDRTRAN.CPP
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/PDRTRAN.CPP Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Header PDRTRAN.CPP
+*
+*/
+
+
+#include "PDRREADR.H"
+
+bool OutputUnicode = false;
+
+// Input and output filenames entered in command line
+int main(int argc, char *argv[])
+ {
+ cout << "\nPDRTRAN V";
+ cout << KPdrtranVersion << "\n";
+ cout << "Copyright (c) 1998-2004 Symbian Software Ltd.\n";
+
+ if(argc!=3)
+ {
+ cout << "Usage: PDRTRAN srcfile [srcfile2 ..] destfile\n";
+ cout << "where srcfile is the file containing printer models,\n";
+ cout << "typeface information and character width tables, and\n";
+ cout << "destfile is the pdr store file.\n";
+ return -1;
+ }
+
+ PdrReader reader;
+
+ for (int i = 1; i < argc - 1; i++)
+ {
+ if (!reader.Read(argv[i]))
+ {
+ cerr << "Problem encountered in file " << argv[i] << "\n";
+ return -1;
+ }
+ }
+ if (!reader.Store(argv[argc - 1]))
+ {
+ cerr << "Problem writing pdr file " << argv[argc - 1] << "\n";
+ return -1;
+ }
+ cout << argv[argc-1] << " created\n";
+ return 0;
+ }
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/READER.CPP
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/READER.CPP Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,168 @@
+/*
+* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Header READER.CPP
+*
+*/
+
+
+#include "READER.H"
+
+Reader::Reader()
+ {
+ iLexAnal = NULL;
+ }
+
+boolean Reader::Open(const String& aFilename)
+ {
+ boolean state;
+ String string = aFilename;
+ if (iLexAnal != NULL)
+ delete iLexAnal;
+ iLexAnal = new LexAnal(string.Text());
+
+ if (iLexAnal)
+ {
+ state = etrue;
+ iLex =& (iLexAnal->iLex);
+ iLexAnal->Read(); // reads first lexical
+ }
+ else
+ state = efalse;
+
+ return state;
+ }
+
+Reader::~Reader()
+ {
+ if (iLexAnal != NULL)
+ delete iLexAnal;
+ }
+
+boolean Reader::_EOF()
+ {
+ return ((iLex->iType) == ELexEOF);
+ }
+
+boolean Reader::NewLine()
+ {
+ boolean state;
+ if (iLex->iType == ELexNL)
+ {
+ iLexAnal->Read();
+ state = etrue;
+ }
+ else
+ {
+ Error(String("Newline expected"));
+ state = efalse;
+ }
+ return state;
+ }
+
+boolean Reader::Number(int& aNumber)
+ {
+ boolean state;
+ if (iLex->iType == ELexNumber)
+ {
+ aNumber = iLex->iNumber;
+ iLexAnal->Read();
+ state = etrue;
+ }
+ else
+ {
+ Error(String("Number expected"));
+ state = efalse;
+ }
+ return state;
+ }
+
+boolean Reader::IdentComp(const String& aIdent)
+ {
+ boolean state;
+ if (iLex->iType == ELexIdent)
+ {
+ if (aIdent == iLex->iText)
+ {
+ iLexAnal->Read();
+ state = etrue;
+ }
+ else
+ state = efalse;
+ }
+ else
+ {
+ state = efalse;
+ }
+ return state;
+ }
+
+boolean Reader::IdentCopy(String& aIdent)
+ {
+ boolean state;
+ if (iLex->iType == ELexIdent)
+ {
+ aIdent = iLex->iText;
+ iLexAnal->Read();
+ state = etrue;
+ }
+ else
+ {
+ Error(String("Identifier expected"));
+ state = efalse;
+ }
+ return state;
+ }
+
+boolean Reader::StringCopy(String& aString)
+ {
+ boolean state;
+ if (iLex->iType == ELexString)
+ {
+ aString = iLex->iText;
+ iLexAnal->Read();
+ state = etrue;
+ }
+ else
+ {
+ Error(String("String expected"));
+ state = efalse;
+ }
+ return state;
+ }
+
+boolean Reader::Operator(char& aCh)
+ {
+ boolean state;
+ if (iLex->iType == ELexOperator)
+ {
+ aCh = iLex->iText[0];
+ iLexAnal->Read();
+ state = etrue;
+ }
+ else
+ {
+ Error(String("Operator expected"));
+ state = efalse;
+ }
+ return state;
+ }
+
+EXPORT_C void Reader::Error(const String& aString)
+ {
+ cerr << "Error: " << aString;
+ iLexAnal->Report();
+ while ((iLex->iType != ELexNL) && (iLex->iType != ELexEOF))
+ iLexAnal->Read();
+ }
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/RECORD.CPP
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/RECORD.CPP Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,94 @@
+/*
+* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Header RECORD.CPP
+*
+*/
+
+
+#include "RECORD.H"
+
+EXPORT_C Record::Record()
+ : iLabel(), iStreamId(0)
+ {
+ }
+
+void RecordList::ExternalizeIds(ostream& out)
+ {
+ int32 i;
+ int32 size = Size();
+ out.write((char*) &size, sizeof(size));
+ for (i = 0; i < size; i++)
+ {
+ ::ExternalizeStreamOff(out, (*this)[i]->iStreamId);
+ }
+ }
+
+void RecordList::Externalize(ostream& out)
+ {
+ int32 size = Size();
+ out.write ((char*) &size, sizeof(size));
+ for (int i = 0; i < size; i++)
+ (*this)[i]->Externalize(out);
+ }
+
+void RecordList::ExternalizeComponents(ostream& out)
+ {
+ int32 size = Size();
+ for (int i = 0; i < size; i++)
+ (*this)[i]->ExternalizeComponents(out);
+ }
+
+EXPORT_C void RecordList::Add(Record* aRecord)
+ {
+ if (!LabelToRecord(aRecord->iLabel))
+ List::Add(aRecord);
+ }
+
+EXPORT_C Record *RecordList::LabelToRecord(const String& aLabel)
+ {
+ int32 size = Size();
+ Record *record=NULL;
+ if (aLabel.Length())
+ for (int i = 0; i < size; i++)
+ if ((*this)[i]->iLabel == aLabel)
+ record = (*this)[i];
+ return record;
+ }
+
+EXPORT_C void RecordList::Destroy()
+ {
+ List::Destroy();
+ }
+
+EXPORT_C RecordList::~RecordList()
+ {
+ }
+
+EXPORT_C Typeface::Typeface()
+ : iName(), iFlags(0)
+ {
+ }
+
+void Typeface::Externalize(ostream& out)
+ {
+ iName.Externalize(out);
+ out.put((char) iFlags);
+ }
+
+void Point::Externalize(ostream& out)
+ {
+ out.write((char*) &iX, sizeof(iX));
+ out.write((char*) &iY, sizeof(iY));
+ }
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/STRNG.CPP
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/STRNG.CPP Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,151 @@
+/*
+* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Header STRNG.CPP
+*
+*/
+
+
+#include "STRNG.H"
+
+extern bool OutputUnicode;
+
+ostream& operator << (ostream& out, const String& aString)
+ {
+ for (int i = 0; i < aString.iLength; i++)
+ out << aString.iText[i];
+ out << '\n';
+ return out;
+ }
+
+EXPORT_C void String::Externalize(ostream& out)
+ {
+ if (OutputUnicode)
+ {
+ // Convert the string to Unicode, allowing #NNNN (each N is a hex digit)
+ // to represent an arbitrary Unicode character. Other values are just
+ // extended, so don't use codepage 1252 values in the range 128..159.
+ unsigned short* buffer = new unsigned short[iLength];
+ int i = 0;
+ int j = 0;
+ while (i < iLength)
+ {
+ if (iText[i] == '#')
+ {
+ i++;
+ char hex[5];
+ hex[0] = iText[i++];
+ hex[1] = iText[i++];
+ hex[2] = iText[i++];
+ hex[3] = iText[i++];
+ hex[4] = 0;
+ buffer[j++] = (unsigned short)strtoul(hex, NULL, 16);
+ }
+ else
+ {
+ buffer[j] = iText[i];
+ buffer[j] &= 0xFF;
+ i++;
+ j++;
+ }
+ }
+ int unicode_characters = j;
+ int32 length = (unicode_characters << 1); // 16-bit data
+ if (length < 0x80)
+ {
+ unsigned char len = (unsigned char)(length << 1);
+ out.write((char*)&len, sizeof(len));
+ }
+ else if (length < 0x4000)
+ {
+ uint16 len = (uint16)((length << 2) + 1);
+ out.write((char*)&len, sizeof(len));
+ }
+ else
+ {
+ // assert len<0x20000000 ?
+ uint32 len = (uint32)((length << 3) + 3);
+ out.write((char*)&len, sizeof(len));
+ }
+ // Output Unicode characters using the Standard Compression Scheme for Unicode.
+ // To save the bother of doing this properly, use a degenerate form whereby each
+ // Unicode character is output as itself. 0x0F selects Unicode mode and 0xF0 quotes
+ // characters that would conflict with other tags.
+ out << (unsigned char)0x0F;
+
+ for (i = 0; i < unicode_characters; i++)
+ {
+ unsigned char hi = (unsigned char)(buffer[i] >> 8);
+ unsigned char lo = (unsigned char)buffer[i];
+ if ((hi >= 0xe0) && (hi <= 0xf2))
+ out << 0xf0;
+ out << hi;
+ out << lo;
+ }
+
+ delete [] buffer;
+ }
+ else
+ {
+ int32 length = (iLength << 1) + 1; // 8-bit data
+ if (length < 0x80)
+ {
+ unsigned char len = (unsigned char)(length << 1);
+ out.write((char*)&len, sizeof(len));
+ }
+ else if (length < 0x4000)
+ {
+ uint16 len = (uint16)((length << 2) + 1);
+ out.write((char*)&len, sizeof(len));
+ }
+ else
+ {
+ // assert len<0x20000000 ?
+ uint32 len = (uint32)((length << 3) + 3);
+ out.write((char*)&len, sizeof(len));
+ }
+ out.write(iText, iLength);
+ }
+ }
+
+EXPORT_C int String::CreateText(const int aLength)
+ {
+ if (aLength != iLength)
+ {
+ char* text = new char[aLength + 1];
+ if (text)
+ {
+ iLength = aLength;
+ iText = text;
+ }
+ else
+ {
+ iLength = 0;
+ delete [] iText;
+ iText = NULL;
+ }
+ }
+ return iLength;
+ }
+
+EXPORT_C void String::DeleteText(char* aText) const
+ {
+ if (aText != iText)
+ delete [] aText;
+ }
+
+EXPORT_C String::~String()
+ {
+ delete [] iText;
+ }
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/platmacros.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tools2/cross/src/platmacros.cpp Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,22 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+int main()
+{
+ return 0;
+}
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/timeout.py
--- a/sbsv2/raptor/test/smoke_suite/timeout.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/timeout.py Fri Apr 16 19:32:39 2010 +0100
@@ -26,10 +26,10 @@
t.id = "60a"
t.name = "timeout"
t.usebash = True
- t.command = "sbs -b smoke_suite/test_resources/timeout/bld.inf -f-"
+ t.command = "sbs -b smoke_suite/test_resources/timeout/bld.inf -f -"
- t.mustmatch = [
- "status exit='failed' code='" + exitCode + "' attempt='1' *reason='timeout'",
+ t.mustmatch_singleline = [
+ "status exit='failed' code='" + exitCode + "' attempt='1' reason='timeout'",
]
t.errors = -1
t.returncode = 1
@@ -38,12 +38,12 @@
t.id = "60b"
t.name = "timeout with retries"
t.usebash = True
- t.command = "sbs -b smoke_suite/test_resources/timeout/bld.inf -t 3 -f-"
+ t.command = "sbs -b smoke_suite/test_resources/timeout/bld.inf -t 3 -f -"
- t.mustmatch = [
- "status exit='retry' code='" + exitCode + "' attempt='1' *reason='timeout'",
- "status exit='retry' code='" + exitCode + "' attempt='2' *reason='timeout'",
- "status exit='failed' code='" + exitCode + "' attempt='3' *reason='timeout'",
+ t.mustmatch_singleline = [
+ "status exit='retry' code='" + exitCode + "' attempt='1' reason='timeout'",
+ "status exit='retry' code='" + exitCode + "' attempt='2' reason='timeout'",
+ "status exit='failed' code='" + exitCode + "' attempt='3' reason='timeout'",
]
t.errors = -1
t.returncode = 1
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/tools.py
--- a/sbsv2/raptor/test/smoke_suite/tools.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/tools.py Fri Apr 16 19:32:39 2010 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "Eclipse Public License v1.0"
@@ -20,19 +20,15 @@
t = SmokeTest()
t.id = "52"
t.name = "tools"
- # Do not run with j > 1 because of known issues
- t.command = "sbs -b smoke_suite/test_resources/tools/bld.inf -c tools -j1"
+ t.command = "sbs -b smoke_suite/test_resources/tools/bld.inf -c tools"
t.targets = [
"$(EPOCROOT)/epoc32/release/tools/deb/tool_exe.bsc",
"$(EPOCROOT)/epoc32/release/tools/deb/tool_exe.exe",
"$(EPOCROOT)/epoc32/release/tools/deb/tool_exe.ilk",
- "$(EPOCROOT)/epoc32/release/tools/deb/tool_exe.pdb",
"$(EPOCROOT)/epoc32/release/tools/deb/tool_lib1.bsc",
"$(EPOCROOT)/epoc32/release/tools/deb/tool_lib1.lib",
- "$(EPOCROOT)/epoc32/release/tools/deb/tool_lib1.pdb",
"$(EPOCROOT)/epoc32/release/tools/deb/tool_lib2.bsc",
"$(EPOCROOT)/epoc32/release/tools/deb/tool_lib2.lib",
- "$(EPOCROOT)/epoc32/release/tools/deb/tool_lib2.pdb",
"$(EPOCROOT)/epoc32/release/tools/rel/tool_exe.exe",
"$(EPOCROOT)/epoc32/release/tools/rel/tool_lib1.lib",
"$(EPOCROOT)/epoc32/release/tools/rel/tool_lib2.lib",
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/tools2_cross_compilation.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/tools2_cross_compilation.py Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,175 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+from raptor_tests import SmokeTest
+
+def run():
+ t = SmokeTest()
+ t.description = "Tests Raptor can build win32 tools on linux"
+
+ t.id = "111a"
+ t.name = "tools2_cross_compilation_pdrtran"
+ t.command = "sbs -b smoke_suite/test_resources/tools2/cross/BLD.INF -p PDRTRAN.MMP -c tools2 -c tools2.win32"
+
+ t.targets = [
+ "$(EPOCROOT)/epoc32/release/tools2/deb/pdrtran.exe",
+ "$(EPOCROOT)/epoc32/release/tools2/rel/pdrtran.exe",
+ "$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM_DIR)/deb/pdrtran",
+ "$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM_DIR)/rel/pdrtran",
+ "$(EPOCROOT)/epoc32/tools/pdrtran.exe",
+ "$(EPOCROOT)/epoc32/tools/pdrtran"
+ ]
+ t.addbuildtargets("smoke_suite/test_resources/tools2/cross/BLD.INF", [
+ "pdrtran_/pdrtran_exe/tools2/deb/PDRTRAN.o",
+ "pdrtran_/pdrtran_exe/tools2/deb/LEXICAL.o",
+ "pdrtran_/pdrtran_exe/tools2/deb/PDRREADR.o",
+ "pdrtran_/pdrtran_exe/tools2/deb/PDRRECRD.o",
+ "pdrtran_/pdrtran_exe/tools2/deb/READER.o",
+ "pdrtran_/pdrtran_exe/tools2/deb/RECORD.o",
+ "pdrtran_/pdrtran_exe/tools2/deb/STRNG.o",
+ "pdrtran_/pdrtran_exe/tools2/rel/PDRTRAN.o",
+ "pdrtran_/pdrtran_exe/tools2/rel/LEXICAL.o",
+ "pdrtran_/pdrtran_exe/tools2/rel/PDRREADR.o",
+ "pdrtran_/pdrtran_exe/tools2/rel/PDRRECRD.o",
+ "pdrtran_/pdrtran_exe/tools2/rel/READER.o",
+ "pdrtran_/pdrtran_exe/tools2/rel/RECORD.o",
+ "pdrtran_/pdrtran_exe/tools2/rel/STRNG.o",
+ "pdrtran_/pdrtran_exe/tools2/deb/$(HOSTPLATFORM_DIR)/PDRTRAN.o",
+ "pdrtran_/pdrtran_exe/tools2/deb/$(HOSTPLATFORM_DIR)/LEXICAL.o",
+ "pdrtran_/pdrtran_exe/tools2/deb/$(HOSTPLATFORM_DIR)/PDRREADR.o",
+ "pdrtran_/pdrtran_exe/tools2/deb/$(HOSTPLATFORM_DIR)/PDRRECRD.o",
+ "pdrtran_/pdrtran_exe/tools2/deb/$(HOSTPLATFORM_DIR)/READER.o",
+ "pdrtran_/pdrtran_exe/tools2/deb/$(HOSTPLATFORM_DIR)/RECORD.o",
+ "pdrtran_/pdrtran_exe/tools2/deb/$(HOSTPLATFORM_DIR)/STRNG.o",
+ "pdrtran_/pdrtran_exe/tools2/rel/$(HOSTPLATFORM_DIR)/PDRTRAN.o",
+ "pdrtran_/pdrtran_exe/tools2/rel/$(HOSTPLATFORM_DIR)/LEXICAL.o",
+ "pdrtran_/pdrtran_exe/tools2/rel/$(HOSTPLATFORM_DIR)/PDRREADR.o",
+ "pdrtran_/pdrtran_exe/tools2/rel/$(HOSTPLATFORM_DIR)/PDRRECRD.o",
+ "pdrtran_/pdrtran_exe/tools2/rel/$(HOSTPLATFORM_DIR)/READER.o",
+ "pdrtran_/pdrtran_exe/tools2/rel/$(HOSTPLATFORM_DIR)/RECORD.o",
+ "pdrtran_/pdrtran_exe/tools2/rel/$(HOSTPLATFORM_DIR)/STRNG.o"
+ ])
+ t.run("linux")
+
+
+ t.id = "111b"
+ t.name = "tools2_cross_compilation_libs"
+ t.command = "sbs -b smoke_suite/test_resources/tools2/bld.inf -c tools2.win32 -c tools2"
+
+ t.targets = [
+ "$(EPOCROOT)/epoc32/release/tools2/deb/tool_exe.exe",
+ "$(EPOCROOT)/epoc32/release/tools2/deb/libtool_lib1.a",
+ "$(EPOCROOT)/epoc32/release/tools2/deb/libtool_lib2.a",
+ "$(EPOCROOT)/epoc32/release/tools2/rel/tool_exe.exe",
+ "$(EPOCROOT)/epoc32/release/tools2/rel/libtool_lib1.a",
+ "$(EPOCROOT)/epoc32/release/tools2/rel/libtool_lib2.a",
+ "$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM_DIR)/deb/tool_exe",
+ "$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM_DIR)/deb/libtool_lib1.a",
+ "$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM_DIR)/deb/libtool_lib2.a",
+ "$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM_DIR)/rel/tool_exe",
+ "$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM_DIR)/rel/libtool_lib1.a",
+ "$(EPOCROOT)/epoc32/release/tools2/$(HOSTPLATFORM_DIR)/rel/libtool_lib2.a",
+ "$(EPOCROOT)/epoc32/tools/tool_exe.exe",
+ "$(EPOCROOT)/epoc32/tools/tool_exe"
+ ]
+ t.addbuildtargets("smoke_suite/test_resources/tools2/bld.inf", [
+ "libtool_lib1_a/libtool_lib1_lib/tools2/rel/tool_lib1_b.o",
+ "libtool_lib1_a/libtool_lib1_lib/tools2/rel/tool_lib1_a.o",
+ "libtool_lib2_a/libtool_lib2_lib/tools2/rel/tool_lib2_b.o",
+ "libtool_lib2_a/libtool_lib2_lib/tools2/rel/tool_lib2_a.o",
+ "libtool_lib1_a/libtool_lib1_lib/tools2/deb/tool_lib1_b.o",
+ "libtool_lib1_a/libtool_lib1_lib/tools2/deb/tool_lib1_a.o",
+ "libtool_lib2_a/libtool_lib2_lib/tools2/deb/tool_lib2_a.o",
+ "libtool_lib2_a/libtool_lib2_lib/tools2/deb/tool_lib2_b.o",
+ "tool_exe_exe/tool_exe_exe/tools2/rel/tool_exe_a.o",
+ "tool_exe_exe/tool_exe_exe/tools2/rel/tool_exe_b.o",
+ "tool_exe_exe/tool_exe_exe/tools2/deb/tool_exe_b.o",
+ "tool_exe_exe/tool_exe_exe/tools2/deb/tool_exe_a.o",
+ "libtool_lib1_a/libtool_lib1_lib/tools2/rel/$(HOSTPLATFORM_DIR)/tool_lib1_b.o",
+ "libtool_lib1_a/libtool_lib1_lib/tools2/rel/$(HOSTPLATFORM_DIR)/tool_lib1_a.o",
+ "libtool_lib2_a/libtool_lib2_lib/tools2/rel/$(HOSTPLATFORM_DIR)/tool_lib2_b.o",
+ "libtool_lib2_a/libtool_lib2_lib/tools2/rel/$(HOSTPLATFORM_DIR)/tool_lib2_a.o",
+ "libtool_lib1_a/libtool_lib1_lib/tools2/deb/$(HOSTPLATFORM_DIR)/tool_lib1_b.o",
+ "libtool_lib1_a/libtool_lib1_lib/tools2/deb/$(HOSTPLATFORM_DIR)/tool_lib1_a.o",
+ "libtool_lib2_a/libtool_lib2_lib/tools2/deb/$(HOSTPLATFORM_DIR)/tool_lib2_a.o",
+ "libtool_lib2_a/libtool_lib2_lib/tools2/deb/$(HOSTPLATFORM_DIR)/tool_lib2_b.o",
+ "tool_exe_exe/tool_exe_exe/tools2/rel/$(HOSTPLATFORM_DIR)/tool_exe_a.o",
+ "tool_exe_exe/tool_exe_exe/tools2/rel/$(HOSTPLATFORM_DIR)/tool_exe_b.o",
+ "tool_exe_exe/tool_exe_exe/tools2/deb/$(HOSTPLATFORM_DIR)/tool_exe_b.o",
+ "tool_exe_exe/tool_exe_exe/tools2/deb/$(HOSTPLATFORM_DIR)/tool_exe_a.o"
+ ])
+ t.run("linux")
+
+
+ t.usebash = True
+ t.id = "111c"
+ t.name = "tools2_cross_compilation_toolcheck_linux"
+ t.command = "$(EPOCROOT)/epoc32/tools/pdrtran smoke_suite/test_resources/tools2/cross/TEST.PD $(EPOCROOT)/epoc32/build/TEST_PDRTRAN.PDR"
+ t.targets = [
+ "$(EPOCROOT)/epoc32/build/TEST_PDRTRAN.PDR"
+ ]
+ t.mustmatch = [
+ "PDRTRAN V41"
+ ]
+ t.run("linux")
+
+
+ t.id = "111d"
+ t.name = "tools2_cross_compilation_toolcheck_windows"
+ t.command = "file $(EPOCROOT)/epoc32/tools/pdrtran.exe"
+ t.targets = []
+ t.mustmatch = [
+ "MS Windows"
+ ]
+ t.run("linux")
+
+
+ t.id = "111e"
+ t.name = "tools2_cross_compilation_platmacro_linux"
+ t.command = "sbs -b smoke_suite/test_resources/tools2/cross/BLD.INF -p platmacros.mmp -c tools2"
+ t.targets = [
+ "$(EPOCROOT)/epoc32/tools/test_platmacros"
+ ]
+ t.mustmatch = [
+ "TOOLS2_LINUX"
+ ]
+ t.mustnotmatch = [
+ "TOOLS2_WINDOWS"
+ ]
+ t.warnings = 1
+ t.run("linux")
+
+
+ t.id = "111f"
+ t.name = "tools2_cross_compilation_platmacro_windows"
+ t.command = "sbs -b smoke_suite/test_resources/tools2/cross/BLD.INF -p platmacros.mmp -c tools2.win32"
+ t.targets = [
+ "$(EPOCROOT)/epoc32/tools/test_platmacros.exe"
+ ]
+ t.mustmatch = [
+ "TOOLS2_WINDOWS"
+ ]
+ t.mustnotmatch = [
+ "TOOLS2_LINUX"
+ ]
+ t.warnings = 1
+ t.run("linux")
+
+
+ t.id = "111"
+ t.name = "tools2_cross_compilation"
+ t.print_result()
+ return t
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/tracecompiler_general.py
--- a/sbsv2/raptor/test/smoke_suite/tracecompiler_general.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/tracecompiler_general.py Fri Apr 16 19:32:39 2010 +0100
@@ -18,9 +18,6 @@
from raptor_tests import AntiTargetSmokeTest
def run():
- result = SmokeTest.PASS
- failed = []
-
t = SmokeTest()
t.description = "Testcases (ID 0101a - 0101d) test trace compiler"
# General test for trace compiler, which generates
@@ -64,13 +61,8 @@
"testtc_dll/armv5/urel/testTC{000a0000}.def",
"testtc_dll/tracecompile_testTC_1000008d.done"
])
- # Trace compiler doesn't work on Linux for time being. Once it's fixed, will apply all
- # trace compiler tests to linux as well.
- t.run("windows")
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
- failed.append(t.name)
-
+ t.run()
+
# General CLEAN test for trace compiler outputs
t = AntiTargetSmokeTest()
t.id = "101b"
@@ -84,11 +76,8 @@
t.addbuildantitargets('smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf', [
"testtc_dll/tracecompile_testTC_1000008d.done"
])
- t.run("windows")
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
- failed.append(t.name)
-
+ t.run()
+
t = SmokeTest()
t.id = "101c"
t.name = "TC_bv_path"
@@ -112,11 +101,8 @@
"helloworld_exe/armv5/urel/HelloWorld_urel_objects.via",
"helloworld_exe/tracecompile_HelloWorld_e78a5aa3.done"
])
- t.run("windows")
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
- failed.append(t.name)
-
+ t.run()
+
# 101d-101f test trace compiler auto mechanism, which is used to avoid wasting time on source
# containing no osttraces.
# Trace compiler only runs when there are osttraces code in source. Raptor decides this by
@@ -136,10 +122,7 @@
"test_/armv5/urel/test.o",
"test_/tracecompile_autorun1_00000001.done"
])
- t.run("windows")
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
- failed.append(t.name)
+ t.run()
t = AntiTargetSmokeTest()
t.id = "101e"
@@ -160,10 +143,7 @@
t.addbuildantitargets('smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf', [
"test_/tracecompile_autorun2_00000001.done"
])
- t.run("windows")
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
- failed.append(t.name)
+ t.run()
t = AntiTargetSmokeTest()
t.id = "101f"
@@ -184,10 +164,7 @@
t.addbuildantitargets('smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf', [
"test_/tracecompile_autorun3_00000001.done"
])
- t.run("windows")
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
- failed.append(t.name)
+ t.run()
# Test trace compiler doesn't run when it is switched off
# Trace compiler switch is off by default. To turn it on use variant ".tracecompiler".
@@ -208,21 +185,11 @@
t.addbuildantitargets('smoke_suite/test_resources/tracecompiler/TC_autorun/bld.inf', [
"test_/tracecompile_autorun1_00000001.done"
])
- t.run("windows")
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
- failed.append(t.name)
-
+ t.run()
+
+ t.id = "101"
t.name = "tracecompiler_general"
- t.result = result
-
- print "\nOverall Result : " + result.upper() + "\n"
- if result == SmokeTest.FAIL:
- print len(failed), "tests failed:"
- for x in failed:
- print x
- print
-
+ t.print_result()
return t
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/tracecompiler_incremental.py
--- a/sbsv2/raptor/test/smoke_suite/tracecompiler_incremental.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/tracecompiler_incremental.py Fri Apr 16 19:32:39 2010 +0100
@@ -23,7 +23,7 @@
t.name = "tracecompiler_incremental_clean"
t.usebash = True
t.command = "sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5_urel.tracecompiler CLEAN"
- t.run("windows")
+ t.run()
t.id = "114b"
t.name = "tracecompiler_incremental_prebuild"
@@ -32,8 +32,6 @@
t.targets = [
"$(EPOCROOT)/epoc32/release/armv5/lib/testTC.dso",
"$(EPOCROOT)/epoc32/release/armv5/lib/testTC{000a0000}.dso",
- "$(EPOCROOT)/epoc32/release/armv5/lib/testTC{000a0000}.lib",
- "$(EPOCROOT)/epoc32/release/armv5/lib/testTC.lib",
"$(EPOCROOT)/epoc32/release/armv5/urel/testTC.dll",
"$(EPOCROOT)/epoc32/release/armv5/urel/testTC.dll.map",
"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/testTC/traces/wlanhwinitTraces.h",
@@ -43,14 +41,14 @@
"$(EPOCROOT)/epoc32/ost_dictionaries/testTC_0x1000008d_Dictionary.xml",
"$(EPOCROOT)/epoc32/include/internal/symbiantraces/autogen/testTC_0x1000008d_TraceDefinitions.h"
]
- t.run("windows")
+ t.run()
t.id = "114c"
t.name = "tracecompiler_incremental_rebuild"
t.command = "touch smoke_suite/test_resources/tracecompiler/testTC/src/wlanhwinit.cpp && sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf -c armv5_urel.tracecompiler -f - -m ${SBSMAKEFILE}"
t.countmatch = [ ["name='compile'",1] ]
t.targets = []
- t.run("windows")
+ t.run()
t.id = "114"
t.name = "tracecompiler_incremental"
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/tracecompiler_variants.py
--- a/sbsv2/raptor/test/smoke_suite/tracecompiler_variants.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/tracecompiler_variants.py Fri Apr 16 19:32:39 2010 +0100
@@ -1,11 +1,23 @@
+#
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
from raptor_tests import SmokeTest
from raptor_tests import AntiTargetSmokeTest
def run():
- result = SmokeTest.PASS
- failed = []
-
# 102a - 102b Test running trace compiler on one mmp with different source files controlled macros.
t = AntiTargetSmokeTest()
t.description = "Testcases (ID 102a - 102c) test trace compiler running with variants and macros"
@@ -70,10 +82,7 @@
"variant_source_/winscw/udeb/var_source3.o",
"variant_source_/winscw/urel/var_source3.o"
])
- t.run("windows")
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
- failed.append(t.name)
+ t.run()
# 2nd time build includes var_source1 and var_source3 for variant_source.mmp
t = SmokeTest()
@@ -127,11 +136,7 @@
"variant_source_/winscw/urel/var_source3.o.d",
"variant_source_/tracecompile_variant_source_10000003.done"
])
- t.run("windows")
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
- failed.append(t.name)
-
+ t.run()
# Build multiple variants together, which involves different source files in one mmp
# Raptor only call trace compiler once no matter how many variants
@@ -171,11 +176,7 @@
"tc_variants_/armv5.phone3/urel/tc_c.o",
"tc_variants_/tracecompile_tc_variants_10000004.done"
])
- t.run("windows")
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
- failed.append(t.name)
-
+ t.run()
# 102d and 102e is to test a very rare situation, where one mmpfile includes 3 children mmpfiles,
# which are guarded by macros. They share some source file, and two share the same UID3.
@@ -225,10 +226,7 @@
"child3_/tracecompile_child3_exe_11100002.done"
])
t.warnings = 3
- t.run("windows")
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
- failed.append(t.name)
+ t.run()
# Clean mmp A then build mmp B and C. As common.cpp is shared by A B and C, commonTraces.h would be
# cleaned when cleaning mmp A. But as B and C aren't cleaned, Raptor wouldn't run trace compiler on
@@ -271,22 +269,12 @@
"child3_/tracecompile_child3_exe_11100002.done"
])
t.warnings = 3
- t.run("windows")
- if t.result == SmokeTest.FAIL:
- result = SmokeTest.FAIL
- failed.append(t.name)
+ t.run()
+ t.id = "102"
t.name = "tracecompiler_variants"
- t.result = result
-
- print "\nOverall Result : " + result.upper() + "\n"
- if result == SmokeTest.FAIL:
- print len(failed), "tests failed:"
- for x in failed:
- print x
- print
-
- t.id = "102"
+ t.print_result()
+
return t
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/smoke_suite/tracecompiler_whatlog.py
--- a/sbsv2/raptor/test/smoke_suite/tracecompiler_whatlog.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/tracecompiler_whatlog.py Fri Apr 16 19:32:39 2010 +0100
@@ -24,7 +24,7 @@
t.name = "tracecompiler_whatlog_clean"
t.usebash = True
t.command = "sbs -b smoke_suite/test_resources/tracecompiler/testTC/group/bld2.inf -c armv5.tracecompiler CLEAN"
- t.run("windows")
+ t.run()
t = CheckWhatSmokeTest()
t.description = "Trace Compiler Whatlog test"
@@ -37,8 +37,6 @@
t.targets = [
"$(EPOCROOT)/epoc32/release/armv5/lib/testTC.dso",
"$(EPOCROOT)/epoc32/release/armv5/lib/testTC{000a0000}.dso",
- "$(EPOCROOT)/epoc32/release/armv5/lib/testTC{000a0000}.lib",
- "$(EPOCROOT)/epoc32/release/armv5/lib/testTC.lib",
"$(EPOCROOT)/epoc32/release/armv5/udeb/testTC.dll",
"$(EPOCROOT)/epoc32/release/armv5/udeb/testTC.dll.map",
"$(EPOCROOT)/epoc32/release/armv5/urel/testTC.dll",
@@ -55,8 +53,6 @@
"",
"$(EPOCROOT)/epoc32/release/armv5/lib/testTC.dso",
"$(EPOCROOT)/epoc32/release/armv5/lib/testTC{000a0000}.dso",
- "$(EPOCROOT)/epoc32/release/armv5/lib/testTC{000a0000}.lib",
- "$(EPOCROOT)/epoc32/release/armv5/lib/testTC.lib",
"$(EPOCROOT)/epoc32/release/armv5/udeb/testTC.dll",
"$(EPOCROOT)/epoc32/release/armv5/udeb/testTC.dll.map",
"$(EPOCROOT)/epoc32/release/armv5/urel/testTC.dll",
@@ -64,7 +60,8 @@
"$(EPOCROOT)/epoc32/ost_dictionaries/test_TC_0x1000008d_Dictionary.xml",
"$(EPOCROOT)/epoc32/include/internal/SymbianTraces/autogen/test_TC_0x1000008d_TraceDefinitions.h"
]
- t.run("windows")
+ t.run()
+
t.id = "112"
return t
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/unit_suite/generic_path_unit.py
--- a/sbsv2/raptor/test/unit_suite/generic_path_unit.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/unit_suite/generic_path_unit.py Fri Apr 16 19:32:39 2010 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "Eclipse Public License v1.0"
@@ -136,6 +136,21 @@
path6 = generic_path.Path("m:/")
self.assertEqual(str(path6), "m:")
+ # SpaceSafePath
+
+ epocroot = os.path.abspath(os.environ.get('EPOCROOT')).replace('\\','/').rstrip('/')
+ pathwithspaces = epocroot+"/epoc32/build/Program Files/Some tool installed with spaces/no_spaces/s p c/no_more_spaces"
+ path7 = generic_path.Path(pathwithspaces)
+
+ # SpaceSafe paths on Windows are 8.3 format, and these can only be deduced if they actually exist.
+ os.makedirs(pathwithspaces)
+ spacesafe = path7.GetSpaceSafePath()
+ self.assertTrue(spacesafe.endswith("PROGRA~1/SOMETO~1/NO_SPA~1/SPC~1/NO_MOR~1"))
+
+ os.removedirs(pathwithspaces)
+ spacesafe = path7.GetSpaceSafePath()
+ self.assertEqual(spacesafe, None)
+
def testClassLinux(self):
if self.isWin32():
@@ -173,6 +188,15 @@
path = generic_path.Path("some/thing/")
self.assertEqual(str(path), "some/thing")
+ # SpaceSafePath
+
+ # This doesn't mean much on non-Windows platforms, but we confirm nothing breaks if it is used
+ pathwithspaces = "/Program Files/Some tool installed with spaces/no_spaces/s p c/no_more_spaces"
+ path2 = generic_path.Path(pathwithspaces)
+
+ spacesafe = path2.GetSpaceSafePath()
+ self.assertEqual(spacesafe, None)
+
# run all the tests
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/test/unit_suite/raptor_data_unit.py
--- a/sbsv2/raptor/test/unit_suite/raptor_data_unit.py Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/test/unit_suite/raptor_data_unit.py Fri Apr 16 19:32:39 2010 +0100
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "Eclipse Public License v1.0"
@@ -21,6 +21,7 @@
import raptor
import raptor_cache
import raptor_data
+import sys
import unittest
class TestRaptorData(unittest.TestCase):
@@ -35,6 +36,8 @@
self.envStack[name] = os.environ[name]
os.environ[name] = value
+ def isWin(self):
+ return 'win' in raptor.hostplatform
def RestoreEnv(self, name):
# put environment back to its state before SetEnv
@@ -355,7 +358,9 @@
self.assertEqual(varcfg, "/C/variant/variant.cfg")
def testProblematicEnvironment(self):
- # ask for environment variable values that will break makefile parsing due to
+ aRaptor = raptor.Raptor()
+
+ # 1: ask for environment variable values that will break makefile parsing due to
# backslashes forming line continuation characters
self.SetEnv("ENVVAR_BSLASH_END1", "C:\\test1a\\;C:\\test1b\\")
self.SetEnv("ENVVAR_BSLASH_END2", "C:\\test2a\\;C:\\test2b\\\\")
@@ -365,7 +370,6 @@
var.AddOperation(raptor_data.Env("ENVVAR_BSLASH_END2"))
var.AddOperation(raptor_data.Env("ENVVAR_BSLASH_END3"))
- aRaptor = raptor.Raptor()
eval = aRaptor.GetEvaluator(None, var.GenerateBuildUnits(aRaptor.cache)[0])
self.RestoreEnv("ENVVAR_BSLASH_END1")
self.RestoreEnv("ENVVAR_BSLASH_END2")
@@ -379,6 +383,75 @@
value = eval.Get("ENVVAR_BSLASH_END3")
self.assertEqual(value, "C:\\test3a\\;C:\\test3b\\\\\\\\")
+
+ # 2: check 'tool' and 'toolchain' type environment variable values for correct behaviour when paths contain spaces
+ # this is different depending on host OS platform and whether or not the paths/tools actually exist
+ epocroot = os.path.abspath(os.environ.get('EPOCROOT')).replace('\\','/').rstrip('/')
+ pathwithspaces = epocroot+"/epoc32/build/Program Files/Some tool installed with spaces/no_spaces/s p c/no_more_spaces"
+ toolwithspaces = pathwithspaces+"/testtool.exe"
+ self.SetEnv("ENVVAR_TOOL_WITH_SPACES", toolwithspaces)
+ self.SetEnv("ENVVAR_TOOLCHAINPATH_WITH_SPACES", pathwithspaces)
+ toolVar = raptor_data.Variant("tool.var")
+ toolchainpathVar = raptor_data.Variant("toolchainpath.var")
+ toolVar.AddOperation(raptor_data.Env("ENVVAR_TOOL_WITH_SPACES", "", "tool"))
+ toolchainpathVar.AddOperation(raptor_data.Env("ENVVAR_TOOLCHAINPATH_WITH_SPACES", "", "toolchainpath"))
+ invalidValueException = "the environment variable %s is incorrect - it is a '%s' type but contains spaces that cannot be neutralised:"
+
+ # 2a: paths/tools exist - on Windows we expect 8.3 paths post-evaluation, on all other platforms error exceptions
+ os.makedirs(pathwithspaces)
+ testtool = open(toolwithspaces,'wb')
+ testtool.close()
+
+ exceptionText = ""
+ value = ""
+ try:
+ eval = aRaptor.GetEvaluator(None, toolVar.GenerateBuildUnits(aRaptor.cache)[0])
+ value = eval.Get("ENVVAR_TOOL_WITH_SPACES")
+ except Exception, e:
+ exceptionText = str(e)
+
+ if self.isWin():
+ self.assertTrue(value)
+ self.assertFalse(' ' in value)
+ else:
+ self.assertTrue(exceptionText.startswith(invalidValueException % ("ENVVAR_TOOL_WITH_SPACES", "tool")))
+
+ exceptionText = ""
+ value = ""
+ try:
+ eval = aRaptor.GetEvaluator(None, toolchainpathVar.GenerateBuildUnits(aRaptor.cache)[0])
+ value = eval.Get("ENVVAR_TOOLCHAINPATH_WITH_SPACES")
+ except Exception, e:
+ exceptionText = str(e)
+
+ if self.isWin():
+ self.assertTrue(value)
+ self.assertFalse(' ' in value)
+ else:
+ self.assertTrue(exceptionText.startswith(invalidValueException % ("ENVVAR_TOOLCHAINPATH_WITH_SPACES", "toolchainpath")))
+
+ # 2b: paths/tools don't exist - should throw error exceptions on all platforms as 8.3 paths are only available
+ # for use if a path/tool exists
+ os.remove(toolwithspaces)
+ os.removedirs(pathwithspaces)
+
+ exceptionText = ""
+ try:
+ eval = aRaptor.GetEvaluator(None, toolVar.GenerateBuildUnits(aRaptor.cache)[0])
+ except Exception, e:
+ exceptionText = str(e)
+ self.assertTrue(exceptionText.startswith(invalidValueException % ("ENVVAR_TOOL_WITH_SPACES", "tool")))
+
+ exceptionText = ""
+ try:
+ eval = aRaptor.GetEvaluator(None, toolchainpathVar.GenerateBuildUnits(aRaptor.cache)[0])
+ except Exception, e:
+ exceptionText = str(e)
+ self.assertTrue(exceptionText.startswith(invalidValueException % ("ENVVAR_TOOLCHAINPATH_WITH_SPACES", "toolchainpath")))
+
+ # clean-up
+ self.RestoreEnv("ENVVAR_TOOL_WITH_SPACES")
+ self.RestoreEnv("ENVVAR_TOOLCHAINPATH_WITH_SPACES")
def testMissingEnvironment(self):
# ask for an environment variable that is not set
@@ -430,8 +503,105 @@
self.failUnless(self.checkForParam(p, "D", None))
f = extended.GetFLMIncludePath(cache)
self.assertEqual(f.File(), "base.flm")
+
+ def testGetBuildUnits(self):
+ r = raptor.Raptor()
+
+ #
+ g1 = raptor_data.Group("g1")
+ r.cache.AddGroup(g1)
+
+ #
+ g2a = raptor_data.GroupRef()
+ g2a.SetProperty("ref", "g2")
+ g2a.SetProperty("mod", "A.B")
+ g1.AddChild(g2a)
+
+ #
+ g2b = raptor_data.GroupRef()
+ g2b.SetProperty("ref", "g2")
+ g2b.SetProperty("mod", "C.D")
+ g1.AddChild(g2b)
+
+ #
+ g2 = raptor_data.Group("g2")
+ r.cache.AddGroup(g2)
+
+ #
+ v2 = raptor_data.VariantRef()
+ v2.SetProperty("ref", "V")
+ v2.SetProperty("mod", "E.F")
+ g2.AddChild(v2)
+
+ #
+ v3 = raptor_data.VariantRef()
+ v3.SetProperty("ref", "V")
+ v3.SetProperty("mod", "G.H")
+ g2.AddChild(v3)
+
+ #
+ v4 = raptor_data.AliasRef()
+ v4.SetProperty("ref", "X")
+ v4.SetProperty("mod", "I.J")
+ g2.AddChild(v4)
+
+ #
+ v5 = raptor_data.AliasRef()
+ v5.SetProperty("ref", "X")
+ v5.SetProperty("mod", "K.L")
+ g2.AddChild(v5)
+
+ r.cache.AddVariant(raptor_data.Variant("A"))
+ r.cache.AddVariant(raptor_data.Variant("B"))
+ r.cache.AddVariant(raptor_data.Variant("C"))
+ r.cache.AddVariant(raptor_data.Variant("D"))
+ r.cache.AddVariant(raptor_data.Variant("E"))
+ r.cache.AddVariant(raptor_data.Variant("F"))
+ r.cache.AddVariant(raptor_data.Variant("G"))
+ r.cache.AddVariant(raptor_data.Variant("H"))
+ r.cache.AddVariant(raptor_data.Variant("I"))
+ r.cache.AddVariant(raptor_data.Variant("J"))
+ r.cache.AddVariant(raptor_data.Variant("K"))
+ r.cache.AddVariant(raptor_data.Variant("L"))
+
+ r.cache.AddVariant(raptor_data.Variant("V"))
+
+ #
+ # g2.A.B
+ # g2.C.D
+ #
+ #
+ # V.E.F
+ # V.G.H
+ # X.I.J
+ # X.K.L
+ #
+ # returncode != 0)
{
- char *exitstr = retries > 0 ? "retry" : "failed";
+ char *exitstr = (force_success || retries <= 0) ? "failed" : "retry";
snprintf(status, STATUS_STRMAX - 1, "\n", exitstr, p->returncode, attempt, flagsstr, reasonstr );
} else {
snprintf(status, STATUS_STRMAX - 1, "\n", attempt, flagsstr, reasonstr );
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/util/talon/tests/config.sh
--- a/sbsv2/raptor/util/talon/tests/config.sh Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/util/talon/tests/config.sh Fri Apr 16 19:32:39 2010 +0100
@@ -16,9 +16,19 @@
#
# set up the environment for some talon tests.
+eval `$SBS_HOME/bin/gethost.sh -e`
+
+if [[ "$HOSTPLATFORM" =~ "win" ]]; then
+TEST_SHELL=$(cygpath -w $SBS_HOME/win32/bin/talon.exe)
+TEST_TALON_SHELL=$(cygpath -w $SBS_CYGWIN/bin/bash.exe)
+else
+TEST_SHELL=$SBS_HOME/$HOSTPLATFORM_DIR/bin/talon
+TEST_TALON_SHELL=/bin/bash
+fi
+
cat >settings.mk <<-endofsettings
- SHELL:=$(cygpath -w $SBS_HOME/win32/bin/talon.exe)
- TALON_SHELL:=$(cygpath -w $SBS_CYGWIN/bin/bash.exe)
+ SHELL:=$TEST_SHELL
+ TALON_SHELL:=$TEST_TALON_SHELL
TALON_BUILDID:=100
TALON_DEBUG:=""
export TALON_SHELL TALON_BUILDID TALON_DEBUG
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/util/talon/tests/t4.mk
--- a/sbsv2/raptor/util/talon/tests/t4.mk Wed Apr 14 18:01:20 2010 +0100
+++ b/sbsv2/raptor/util/talon/tests/t4.mk Fri Apr 16 19:32:39 2010 +0100
@@ -23,6 +23,11 @@
$(info testing timeouts)
$(info )
-all:
+.PHONY: all passed
+
+all: passed
+ @echo "t4-PASSED"
+
+passed:
@|PLATFORM=armv5;MMP=barney.mmp;BLDINF=somebld.inf;|echo "Started a slow command under talon (attempt $$TALON_ATTEMPT):";echo "SHELL=$$SHELL";if (( $$TALON_ATTEMPT <4 )); then echo sleeping 6; sleep 6; echo "hi"; else echo "Not sleeping this time"; fi; echo "this should not appear in the recipe tags unless you try 4 times."
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/util/talon/tests/t6.mk
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/util/talon/tests/t6.mk Fri Apr 16 19:32:39 2010 +0100
@@ -0,0 +1,33 @@
+#
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+include settings.mk
+
+# Making sure that forcesuccess works.
+
+TALON_RECIPEATTRIBUTES:=flags='$$TALON_FLAGS'
+TALON_RETRIES:=1
+
+export TALON_RECIPEATTRIBUTES TALON_RETRIES
+
+.PHONY: all fred
+
+all: fred
+ @echo "t6-PASSED"
+
+fred:
+ |TALON_FLAGS=FORCESUCCESS;|echo "Forcesuccess'd command"; exit 1
+
+
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/win32/bin/talon.exe
Binary file sbsv2/raptor/win32/bin/talon.exe has changed
diff -r 6325833fc679 -r c3bf95590c94 sbsv2/raptor/win32/bin/unhide_ci_refs.exe
Binary file sbsv2/raptor/win32/bin/unhide_ci_refs.exe has changed