Support for resolving, on Windows only, <env/> 'tool' and 'toolchain' type paths with spaces.
--- a/sbsv2/raptor/lib/config/arm.xml Tue Mar 23 13:34:00 2010 +0000
+++ b/sbsv2/raptor/lib/config/arm.xml Tue Mar 23 17:11:09 2010 +0000
@@ -1,51 +1,62 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
- <!-- build configurations for ARM compilers -->
+ <!-- build variants for ARM toolchain builds -->
<var name="arm" extends="root">
<varRef ref="default.interfaces"/>
<varRef ref="default.locations"/>
- <env name="EFREEZE" default="$(PERL) $(EPOCROOT)/epoc32/tools/efreeze.pl" type="tool"/>
- <!-- picked up from the Environment -->
- <env name="ELF2E32" default="$(EPOCROOT)/epoc32/tools/elf2e32$(DOTEXE)" type="tool"/>
+
+ <!-- tools and scripts -->
<env name="BMCONV" default="$(EPOCROOT)/epoc32/tools/bmconv$(DOTEXE)" type="tool"/>
<env name="CHECKLIB" default="$(EPOCROOT)/epoc32/tools/checklib$(DOTEXE)" type="tool"/>
- <env name="TRANASM" default="$(PERL) $(EPOCROOT)/epoc32/tools/tranasm.pl" type="tool"/>
<env name="CPPFILT" default="$(GCCPREFIX)c++filt$(DOTEXE)" type="tool"/>
+ <env name="EFREEZE" default="$(PERL) $(EPOCROOT)/epoc32/tools/efreeze.pl" type="script"/>
+ <env name="ELF2E32" default="$(EPOCROOT)/epoc32/tools/elf2e32$(DOTEXE)" type="tool"/>
+ <env name="PREPDEF" default="$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl" type="script"/>
<env name="RCOMP" default="$(EPOCROOT)/epoc32/tools/rcomp$(DOTEXE)" type="tool"/>
- <env name="PREPDEF" default="$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl" type="path"/>
- <env name="STRINGTABLE" default="$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl" type="path"/>
- <!-- RANSLEEP is a program that can be used to cause a random delay in milliseconds. This is only useful in parallel builds. See the PERTURBSTARTTIME switch for more details. -->
+ <!-- RANSLEEP is a program that can be used to cause a random delay in milliseconds. This is only useful in parallel builds. See the PERTURBSTARTTIME switch for more details. -->
<env name="RANSLEEP" default="$(SBS_HOME)/bin/$(HOSTPLATFORM_DIR)/ransleep$(DOTEXE)" type="tool"/>
- <set name="BLDINF_OUTPUTPATH" value="$(SBS_BUILD_DIR)"/>
- <set name="CDEFS" value=""/>
- <!-- arm specific interfaces -->
+ <env name="SBSV1MAKE" default="$(EPOCROOT)/epoc32/tools/make$(DOTEXE)" type="tool"/>
+ <env name="STRINGTABLE" default="$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl" type="script"/>
+ <env name="TRANASM" default="$(PERL) $(EPOCROOT)/epoc32/tools/tranasm.pl" type="script"/>
+
+ <!-- interfaces -->
<set name="INTERFACE.extension" value="Symbian.extension"/>
- <!-- link to bld.inf and mmp platform names -->
- <set name="ARMMACROS" value="__MARM_ARMV5__ $(ARMMACROS.CONFIG) $(ARMMACROS.VAR)"/>
+
+ <!-- macros -->
<set name="ARMMACROS.CONFIG" value=""/>
<set name="ARMMACROS.VAR" value=""/>
+ <set name="ARMMACROS" value="__MARM_ARMV5__ $(ARMMACROS.CONFIG) $(ARMMACROS.VAR)"/>
+ <set name="PLATMACROS.WINDOWS" value="$(PLATMACROS.TOOLCHAIN) EPOC32 MARM EABI GENERIC_MARM MARM_ARMV5 $(PLATMACROS.CONFIG) $(PLATMACROS.VAR)"/>
+ <set name="PLATMACROS.LINUX" value="$(PLATMACROS.WINDOWS)"/>
+ <set name="PLATMACROS.CONFIG" value=""/>
+ <set name="PLATMACROS.VAR" value=""/>
+ <set name="PLATMACROS.TOOLCHAIN" value=""/>
+
+ <set name="BLDINF_OUTPUTPATH" value="$(SBS_BUILD_DIR)"/>
<set name="CAPABILITY" value=""/>
+ <set name="CDEFS" value="__SUPPORT_CPP_EXCEPTIONS__ _UNICODE __SYMBIAN32__ __EPOC32__ __MARM__ __EABI__ __PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)" $(MMPDEFS) $(ARMMACROS)"/>
<set name="CODE_SEGMENT_START" value=""/>
<set name="DEFAULT_STDCPP_NEWLIB" value="stdnew.dso"/>
<set name="DEFAULT_SYMBIAN_NEWLIB" value="scppnwdl.dso"/>
+ <set name="DUMPBCINFO" value=""/>
+ <set name="EPOCSTACKSIZE" value=""/>
<set name="FULLVARIANTPATH" value="$(VARIANTPLATFORM)/$(VARIANTTYPE)"/>
<set name="HEADER_FILES_CONTROL_OPTION" value=""/>
<set name="LIBRARY_DEBUG" value=""/>
<set name="MMPDEFS" value=""/>
<set name="NMAKE" value="nmake"/>
<set name="NMAKEFLAGS" value="-nologo -x - "/>
+ <set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/>
<set name="OUTPUTPATH" value="$(SBS_BUILD_DIR)"/>
<set name="PERTURBSTARTTIME" value=""/>
- <!-- add a random delay before starting armcc or armlink to ease contention for licensesthe maximum time to delay in milliseconds. RANSLEEP program must be available. -->
+ <!-- add a random delay before starting armcc or armlink to ease contention for licenses the maximum time to delay in milliseconds. RANSLEEP program must be available. -->
<set name="PERTURBMSECS" value="500"/>
<!-- the maximum time to delay in milliseconds -->
- <set name="BLDINF_OUTPUTPATH" value="$(SBS_BUILD_DIR)"/>
+ <set name="POSTLINKER_COMPRESSION_DEFAULT" value="inflate"/>
<set name="RELEASEPATH" value="$(EPOCROOT)/epoc32/release"/>
<set name="RESOLVED_DEFFILE" value=""/>
<set name="RUNTIME_LIBS_PATH" value="$(EPOCROOT)/epoc32/release/armv5/lib"/>
- <set name="SBSV1MAKE" value="$(EPOCROOT)/epoc32/tools/make$(DOTEXE)"/>
<set name="SID" value=""/>
- <set name="EPOCSTACKSIZE" value=""/>
<set name="STATIC_LIBRARY_DIR" value="$(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)"/>
<set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/$(VARIANTPLATFORM)/$(VARIANTTYPE)"/>
<set name="SYMBIAN_CC_MESSAGE_OPTION" value="$(CC_WARNINGS_CONTROL_OPTION) $(CC_ERRORS_CONTROL_OPTION)"/>
@@ -57,16 +68,9 @@
<set name="SYSTEMINCLUDE" value=""/>
<set name="TARGET" value=""/>
<set name="UNIX_SLASH_FOR_CC_ABS_PATHS" value="0"/>
- <set name="UNRESOLVED_SYMBOL_REF_OPTION" value=""/>
- <set name="DUMPBCINFO" value=""/>
- <set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/>
- <set name="PLATMACROS.WINDOWS" value="$(PLATMACROS.TOOLCHAIN) EPOC32 MARM EABI GENERIC_MARM MARM_ARMV5 $(PLATMACROS.CONFIG) $(PLATMACROS.VAR)"/>
- <set name="PLATMACROS.LINUX" value="$(PLATMACROS.WINDOWS)"/>
- <set name="PLATMACROS.CONFIG" value=""/>
- <set name="PLATMACROS.VAR" value=""/>
- <set name="PLATMACROS.TOOLCHAIN" value=""/>
- <set name="POSTLINKER_COMPRESSION_DEFAULT" value="inflate"/>
+ <set name="UNRESOLVED_SYMBOL_REF_OPTION" value=""/>
</var>
+
<var name="v5">
<set name="TRADITIONAL_PLATFORM" value="ARMV5"/>
<set name="VARIANTPLATFORM" value="armv5"/>
--- a/sbsv2/raptor/lib/config/gcc.xml Tue Mar 23 13:34:00 2010 +0000
+++ b/sbsv2/raptor/lib/config/gcc.xml Tue Mar 23 17:11:09 2010 +0000
@@ -1,33 +1,33 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
-
- <!-- build configurations for GCC compilers -->
+ <!-- build variants for GCC toolchains -->
<var name="tools2_base" extends="root">
-
<varRef ref="default.interfaces"/>
<varRef ref="default.locations"/>
- <!-- picked up from the Environment -->
+
+ <!-- toolchain tools -->
<env name='RANLIB' default='$(GCCPREFIX)ranlib$(DOTEXE)' type='tool'/>
<env name='GCC' default='$(GCCPREFIX)g++$(DOTEXE)' type='tool'/>
<env name='AR' default='$(GCCPREFIX)ar$(DOTEXE)' type='tool'/>
+
+ <set name='COMPILER' value='$(GCC) -c' type='tool' versionCommand='$(GCC) -v' versionResult='gcc version (3.[456])|(4.[0-9])'/>
+ <set name='LINKER' value='$(GCC)'/>
+
+ <!-- tools and scripts -->
+ <env name='JAVATC' default='$(JAVA_HOME)/bin/java' type='tool'/> <!-- Java used by Trace Compiler -->
<!-- interfaces -->
<set name="INTERFACE.exe" value="Tools.exe"/>
<set name="INTERFACE.lib" value="Tools.lib"/>
- <!-- Java used by Trace Compiler -->
- <env name='JAVA_HOME' default='' type='path'/>
- <env name='JAVATC' default='$(JAVA_HOME)/bin/java' type='tool'/>
-
<!-- link to bld.inf and mmp platform names -->
<set name='TRADITIONAL_PLATFORM' value='TOOLS2'/>
+
+ <!-- Java used by Trace Compiler -->
+ <set name='CFLAGS' value='-fdefer-pop -fmerge-constants -fthread-jumps -floop-optimize -fif-conversion -fif-conversion2 -fguess-branch-probability -fcprop-registers -foptimize-sibling-calls -fstrength-reduce -fcse-follow-jumps -fcse-skip-blocks -frerun-cse-after-loop -frerun-loop-opt -fgcse -fgcse-lm -fgcse-sm -fgcse-las -fdelete-null-pointer-checks -fexpensive-optimizations -fregmove -fschedule-insns -fschedule-insns2 -fsched-interblock -fsched-spec -fcaller-saves -fpeephole2 -freorder-blocks -freorder-functions -fstrict-aliasing -funit-at-a-time -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -pipe -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -m32'/>
+ <env name='JAVA_HOME' default='' type='path'/>
<set name='VARIANTPLATFORM' value='tools2'/>
- <!-- used by FLM code -->
- <set name='COMPILER' value='$(GCC) -c' type='tool' versionCommand='$(GCC) -v' versionResult='gcc version (3.[456])|(4.[0-9])'/>
-
- <set name='CFLAGS' value='-fdefer-pop -fmerge-constants -fthread-jumps -floop-optimize -fif-conversion -fif-conversion2 -fguess-branch-probability -fcprop-registers -foptimize-sibling-calls -fstrength-reduce -fcse-follow-jumps -fcse-skip-blocks -frerun-cse-after-loop -frerun-loop-opt -fgcse -fgcse-lm -fgcse-sm -fgcse-las -fdelete-null-pointer-checks -fexpensive-optimizations -fregmove -fschedule-insns -fschedule-insns2 -fsched-interblock -fsched-spec -fcaller-saves -fpeephole2 -freorder-blocks -freorder-functions -fstrict-aliasing -funit-at-a-time -falign-functions -falign-jumps -falign-loops -falign-labels -fcrossjumping -pipe -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -m32'/>
-
<!-- msys based programs sometimes don't search the path properly.
COMPILER_PATH can be set to tell gcc where to find
as.exe (sometimes it doesn't and a build step fails).
@@ -39,8 +39,6 @@
<!-- macro definitions set by mmps etc -->
<set name='CDEFS' value='$(MMPDEFS)'/>
-
-
<set name='CDEFS.DEFAULT' value='__SYMBIAN32__ __TOOLS__ __TOOLS2__ __EXE__ __SUPPORT_CPP_EXCEPTIONS__ __PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)"'/>
<set name='CDEFS.WIN32' value='$(CDEFS.DEFAULT) _WIN32 WIN32 _WINDOWS __TOOLS2_WINDOWS__'/>
<set name='CDEFS.LINUX' value='$(CDEFS.DEFAULT) __LINUX__ __TOOLS2_LINUX__'/>
@@ -58,7 +56,6 @@
<!-- always use stlport headers -->
<set name='SYSTEMINCLUDE' value='$(EPOCINCLUDE)/tools/stlport'/>
- <set name='LINKER' value='$(GCC)'/>
<set name='LFLAGS' value=''/>
<set name='STATICLIBRARY' value='stlport.5.1'/>
<set name='LIBS' value=''/>
--- a/sbsv2/raptor/lib/config/gcce.xml Tue Mar 23 13:34:00 2010 +0000
+++ b/sbsv2/raptor/lib/config/gcce.xml Tue Mar 23 17:11:09 2010 +0000
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
- <!-- GCCE build variant for ARM compilers -->
- <!-- This is called gcce_base in case someone wants to use "gcce" as a configuration name -->
+ <!-- build variant for GCCE ARM toolchains -->
<var name="gcce_base">
<set name="TOOLCHAIN" value="GCCE"/>
<set name="PLATMACROS.TOOLCHAIN" value="GCCE"/>
+ <!-- toolchain tools -->
+ <set name="GCCEAR" value="$(GCCEBIN)/arm-none-symbianelf-ar$(DOTEXE)"/>
+ <set name="GCCEASM" value="$(GCCEBIN)/arm-none-symbianelf-as$(DOTEXE)"/>
<set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)"/>
<set name="GCCELD" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)"/>
- <set name="GCCEASM" value="$(GCCEBIN)/arm-none-symbianelf-as$(DOTEXE)"/>
- <set name="GCCEAR" value="$(GCCEBIN)/arm-none-symbianelf-ar$(DOTEXE)"/>
<set name="FROMELF" value="$(GCCEBIN)/arm-none-symbianelf-readelf$(DOTEXE)"/>
<set name="CC" value="$(GCCECC)"/>
@@ -122,6 +122,6 @@
<set name="USERINCLUDE" value=""/>
<set name="VFE_OPTION" value=""/>
- <append name="CDEFS" value='__SUPPORT_CPP_EXCEPTIONS__ _UNICODE __SYMBIAN32__ __GCCE__ __EPOC32__ __MARM__ __EABI__ __PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)" $(MMPDEFS) $(ARMMACROS)'/>
+ <append name="CDEFS" value="__GCCE__"/>
</var>
</build>
--- a/sbsv2/raptor/lib/config/gccxml.xml Tue Mar 23 13:34:00 2010 +0000
+++ b/sbsv2/raptor/lib/config/gccxml.xml Tue Mar 23 17:11:09 2010 +0000
@@ -1,21 +1,20 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
- <!-- build configurations for the gccxml_cc1plus C++ language processor -->
+ <!-- build variants for the gccxml_cc1plus C++ language processor -->
<var name="gccxml_base" extends="root">
<varRef ref="default.interfaces"/>
<varRef ref="default.locations"/>
- <!-- picked up from the Environment -->
+
+ <!-- tools and scripts -->
+ <env name='BMCONV' default="$(EPOCROOT)/epoc32/tools/bmconv$(DOTEXE)" type='tool'/>
+ <set name='CC' value="$(EPOCROOT)/epoc32/tools/gccxml_cc1plus$(DOTEXE)" type='tool'/>
<env name='CPP' default='$(GNUCPP)' type='tool'/>
- <env name='BMCONV' default="$(EPOCROOT)/epoc32/tools/bmconv$(DOTEXE)" type='tool'/>
- <env name='CREATERFIFILE' default='$(PERL) $(SBS_HOME)/bin/createrfifile.pl ' type='path'/>
+ <env name='CREATERFIFILE' default='$(PERL) $(SBS_HOME)/bin/createrfifile.pl ' type='script'/>
<env name='GNUAWK' default='$(GNUPREFIX)gawk$(DOTEXE)' type='tool' versionCommand='$(GNUAWK) --version' versionResult='GNU Awk [3-9].*'/>
- <env name='MAKEDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/makedef.pl' type='path'/>
- <env name='PREPDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl' type='path'/>
+ <env name='MAKEDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/makedef.pl' type='script'/>
+ <env name='PREPDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl' type='script'/>
<env name='RCOMP' default='$(EPOCROOT)/epoc32/tools/rcomp$(DOTEXE)' type='tool'/>
- <env name='RVCT22BIN' type='path'/>
- <env name='RVCT22INC' type='path'/>
- <env name='RVCT22LIB' type='path'/>
- <env name='STRINGTABLE' default='$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl' type='path'/>
+ <env name='STRINGTABLE' default='$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl' type='script'/>
<!-- link to bld.inf and mmp platform names -->
<set name='TRADITIONAL_PLATFORM' value='GCCXML'/>
@@ -51,11 +50,13 @@
<env name='JAVATC' default='$(JAVA_HOME)/bin/java' type='tool'/>
<!-- note that gccxml_cc1plus should be version checked, but I've yet to find a reliable way of doing this -->
- <set name='CC' value="$(EPOCROOT)/epoc32/tools/gccxml_cc1plus$(DOTEXE)" type='tool'/>
<set name='CDEFS' value='_UNICODE __SYMBIAN32__ __GCC32__ __EPOC32__ __MARM__ __MINGW32__ _STLP_LITTLE_ENDIAN __GCCXML__ __MARM_ARM4__ $(MMPDEFS)'/>
<set name='CFLAGS' value='-bi -nostdinc -Wall -Wno-ctor-dtor-privacy -Wno-unknown-pragmas -UWIN32 -fshort-wchar -quiet -w '/>
<!-- in support of TEMs - processed as if in an RVCT build -->
+ <env name='RVCT22BIN' type='toolchainpath'/>
+ <env name='RVCT22INC' type='toolchainpath'/>
+ <env name='RVCT22LIB' type='toolchainpath'/>
<set name='RVCTBIN' value='$(RVCT22BIN)'/>
<set name='RVCTINC' value='$(RVCT22INC)'/>
<set name='RVCTLIB' value='$(RVCT22LIB)'/>
--- a/sbsv2/raptor/lib/config/locations.xml Tue Mar 23 13:34:00 2010 +0000
+++ b/sbsv2/raptor/lib/config/locations.xml Tue Mar 23 17:11:09 2010 +0000
@@ -108,7 +108,7 @@
<set name='BASE_USER_DEFAULT_PLATFORMS' value='ARMV5 ARMV7 WINSCW'/>
<set name='BUILD_INCLUDE' value=''/>
- <set name='CREATEVMAP' value='$(PYTHON) $(SBS_HOME)/bin/createvmap.py' type='tool'/>
+ <set name='CREATEVMAP' value='$(PYTHON) $(SBS_HOME)/bin/createvmap.py' type='script'/>
<set name='CREATEVMAPCPP' value='$(SBS_BVCPP)' type='tool'/>
<set name='FEATURELISTFILES' value=''/>
<set name='FEATUREVARIANTNAME' value=''/>
--- a/sbsv2/raptor/lib/config/msvc.xml Tue Mar 23 13:34:00 2010 +0000
+++ b/sbsv2/raptor/lib/config/msvc.xml Tue Mar 23 17:11:09 2010 +0000
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
- <!-- build configurations for MSVC compilers -->
+ <!-- build variants for MSVC toolchains -->
<var name="tools_base" extends="root">
<varRef ref="default.interfaces"/>
<varRef ref="default.locations"/>
- <!-- picked up from the Environment -->
+ <!-- toolchain tools -->
<env name='MS_CL' default='cl.exe' type='tool' versionCommand='$(MS_CL)' versionResult='Version 12\.[0-9]{2}\.[0-9]{4}'/>
<env name='MS_LINK' default='link.exe' type='tool' versionCommand='$(MS_LINK)' versionResult='Version 6\.[0-9]{2}.[0-9]{4}'/>
<env name='MS_LIB' default='lib.exe' type='tool' versionCommand='$(MS_LIB)' versionResult='Version 6\.[0-9]{2}.[0-9]{4}'/>
@@ -17,8 +17,14 @@
<!-- link to bld.inf and mmp platform names -->
<set name='TRADITIONAL_PLATFORM' value='TOOLS'/>
+
+ <!-- interfaces -->
+ <set name="INTERFACE.exe" value="msvctools.exe"/>
+ <set name="INTERFACE.lib" value="msvctools.lib"/>
+
<set name='NMAKE' value='nmake'/>
<set name='NMAKEFLAGS' value='-nologo -x - '/>
+
<!-- tools options -->
<set name='OPT.BROWSEDB' value='-o'/>
<set name='OPT.BROWSEFILE' value='-FR'/>
@@ -56,9 +62,6 @@
<set name='BROWSEFLAGS' value='$(OPT.NOLOGO)'/>
<set name='PLATMACROS.WINDOWS' value='VC32 TOOLS MSVC6 MSVC600'/>
<set name='PLATMACROS.LINUX' value='$(PLATMACROS.WINDOWS)'/>
- <!-- interfaces -->
- <set name="INTERFACE.exe" value="msvctools.exe"/>
- <set name="INTERFACE.lib" value="msvctools.lib"/>
<set name='RELEASEPATHROOT' value='$(EPOCROOT)/epoc32/release'/>
<set name='IMPORTLIBPATH' value='$(RELEASEPATHROOT)/tools/udeb'/>
--- a/sbsv2/raptor/lib/config/rvct.xml Tue Mar 23 13:34:00 2010 +0000
+++ b/sbsv2/raptor/lib/config/rvct.xml Tue Mar 23 17:11:09 2010 +0000
@@ -1,68 +1,62 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
- <!-- RVCT build variant for RVCT compilers -->
+ <!-- build variant for RVCT ARM toolchains -->
<var name="rvct">
<set name="TOOLCHAIN" value="RVCT"/>
<set name="PLATMACROS.TOOLCHAIN" value="ARMCC"/>
+
+ <!-- toolchain tools -->
+ <set name="ARMAR" value="$(RVCTBIN)/armar$(DOTEXE)"/>
+ <set name="ARMASM" value="$(RVCTBIN)/armasm$(DOTEXE)"/>
+ <set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)"/>
+ <set name="ARMLD" value="$(RVCTBIN)/armlink$(DOTEXE)"/>
+ <set name="FROMELF" value="$(RVCTBIN)/fromelf$(DOTEXE)"/>
+
<set name="CC" value="$(ARMCC)"/>
<set name="LD" value="$(ARMLD)"/>
<set name="ASM" value="$(ARMASM)"/>
<set name="AR" value="$(ARMAR)"/>
- <set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)"/>
- <set name="ARMLD" value="$(RVCTBIN)/armlink$(DOTEXE)"/>
- <set name="ARMASM" value="$(RVCTBIN)/armasm$(DOTEXE)"/>
- <set name="ARMAR" value="$(RVCTBIN)/armar$(DOTEXE)"/>
- <set name="FROMELF" value="$(RVCTBIN)/fromelf$(DOTEXE)"/>
+
<set name="AAPCS_OPTION" value="--apcs /inter"/>
<set name="ARCHIVER_CREATE_OPTION" value="--create"/>
<set name="ARM_INSTRUCTION_SET" value="--arm"/>
<set name="ASM_OUTPUT_OPTION" value="-o"/>
<set name="ASSEMBLER_LISTING_OPTION" value="-S"/>
<set name="BPABI_OPTION" value="--bpabi"/>
+ <set name="CC.DWARF2" value="--dwarf2"/>
+ <set name="CC.DWARF3" value="--dwarf3"/>
<set name="CC_ERRORS_CONTROL_OPTION" value="--diag_error 1267"/>
<set name="CC_WARNINGS_CONTROL_OPTION" value="--diag_suppress 161,611,654,997,1152,1300,1464,1488,2523,6318,6331"/>
- <set name="C_LANG_OPTION" value=""/>
+ <set name="CFLAGS" value=""/>
+ <set name="CIADEFS" value="__CIA__"/>
+ <set name="CODE_SEGMENT_START" value=""/>
<set name="COMMANDFILE_OPTION" value="--via "/>
+ <set name="COMPILER_CIA_FLAGS" value=""/>
+ <set name="COMPILER_DEFINES" value=""/>
+ <set name="COMPILER_FPU_OPTION" value="--fpu "/>
+ <set name="COMPILER_INTERWORK_DEFINES" value="__MARM_INTERWORK__"/>
+ <set name="COMPILER_SYSTEM_INCLUDE_OPTION" value="-J"/>
+ <set name="COMPILER_THUMB_DEFINES" value="__MARM_THUMB__"/>
<set name="COMPILE_ONLY_OPTION" value="-c"/>
<set name="CPP_LANG_OPTION" value="--cpp"/>
+ <set name="C_LANG_OPTION" value=""/>
+ <set name="DATA_SEGMENT_START" value="$(SPLIT_OPTION) $(RW_BASE_OPTION)"/>
<set name="DEBUG_OPTIMISATION" value="-O0"/>
<set name="DEPEND_OPTION" value="--depend_format=unix --depend"/>
<set name="ENUM_OPTION" value="--enum_is_int"/>
+ <set name="EXCEPTIONS" value="--exceptions --exceptions_unwind"/>
<set name="EXPORT_VTBL_OPTION" value="--export_all_vtbl"/>
+ <set name="EXTRA_CC_OPTION" value=""/>
<set name="EXTRA_LD_OPTION" value="--datacompressor=off"/>
<set name="FPMODE_OPTION" value="--fpmode ieee_no_fenv"/>
- <set name="LD_ERRORS_CONTROL_OPTION" value=""/>
- <set name="LD_WARNINGS_CONTROL_OPTION" value="--diag_suppress 6331"/>
- <set name='LD_WARNINGS_SUPPRESSION_ARMLIBS' value='--diag_suppress 6780' />
- <set name="LISTING_OPTION" value="-S"/>
- <set name="EXCEPTIONS" value="--exceptions --exceptions_unwind"/>
- <set name="NO_EXCEPTIONS" value="--no_exceptions --no_exceptions_unwind"/>
- <set name="PREINCLUDE_OPTION" value="--preinclude"/>
- <set name="PREPROCESSOR_OPTION" value="-E"/>
- <set name="REL_OPTIMISATION" value="-O2"/>
- <set name="STDLIB_OPTION" value="--no_scanlib"/>
- <set name="RUNTIME_SYMBOL_VISIBILITY_OPTION" value="--dllimport_runtime"/>
- <set name="RW_BASE_OPTION" value="--rw-base" />
- <set name="RW_BASE" value="$(RW_BASE_OPTION) 0x400000"/>
- <set name="CODE_SEGMENT_START" value=""/>
- <set name="PREINCLUDE" value="$(RVCT_PRE_INCLUDE)"/>
- <set name="CC.DWARF2" value="--dwarf2"/>
- <set name="CC.DWARF3" value="--dwarf3"/>
+ <set name="HEADER_FILES_CONTROL_OPTION" value=""/>
+ <set name="INSTRUCTION_SET" value=""/>
<set name="LD.ARMV5" value=""/>
<set name="LD.ARMV6" value=""/>
<set name="LD.ARMV7" value=""/>
- <set name="CFLAGS" value=""/>
- <set name="CIADEFS" value="__CIA__"/>
- <append name="CDEFS" value='__SUPPORT_CPP_EXCEPTIONS__ _UNICODE __SYMBIAN32__ __ARMCC__ __EPOC32__ __MARM__ __EABI__ __PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)" $(MMPDEFS) $(ARMMACROS)'/>
- <set name="COMPILER_CIA_FLAGS" value=""/>
- <set name="COMPILER_FPU_OPTION" value="--fpu "/>
- <set name="COMPILER_DEFINES" value=""/>
- <set name="COMPILER_INTERWORK_DEFINES" value="__MARM_INTERWORK__"/>
- <set name="COMPILER_SYSTEM_INCLUDE_OPTION" value="-J"/>
- <set name="COMPILER_THUMB_DEFINES" value="__MARM_THUMB__"/>
- <set name="DATA_SEGMENT_START" value="$(SPLIT_OPTION) $(RW_BASE_OPTION)"/>
- <set name="EXTRA_CC_OPTION" value=""/>
- <set name="HEADER_FILES_CONTROL_OPTION" value=""/>
+ <set name="LD_ERRORS_CONTROL_OPTION" value=""/>
+ <set name="LD_WARNINGS_CONTROL_OPTION" value="--diag_suppress 6331"/>
+ <set name="LD_WARNINGS_SUPPRESSION_ARMLIBS" value="--diag_suppress 6780"/>
<set name="LIBPATH" value=""/>
<set name="LIBRARY" value=""/>
<set name="LICENSERETRY_OPTION" value=""/>
@@ -71,25 +65,35 @@
<set name="LINKER_DEFAULT_LIBS" value=""/>
<set name="LINKER_DEFAULT_LIB_PATHS" value=""/>
<set name="LINKER_ENTRY_OPTION" value="--entry"/>
+ <set name="LINKER_GROUP_END_OPTION" value=""/>
<set name="LINKER_GROUP_START_OPTION" value=""/>
- <set name="LINKER_GROUP_END_OPTION" value=""/>
<set name="LINKER_MISC_FLAGS" value="$(LICENSERETRY_OPTION)"/>
<set name="LINKER_NODEBUG_OPTION" value=""/>
<set name="LINKER_SCRIPT_FILE_OPTION" value=""/>
+ <set name="LINKER_SYMBOLS_FILE_OPTION" value="--list"/>
<set name="LINKER_SYMBOLS_OPTION" value="--symbols"/>
- <set name="LINKER_SYMBOLS_FILE_OPTION" value="--list"/>
+ <set name="LISTING_OPTION" value="-S"/>
+ <set name="NO_EXCEPTIONS" value="--no_exceptions --no_exceptions_unwind"/>
+ <set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/>
+ <set name="PREINCLUDE" value="$(RVCT_PRE_INCLUDE)"/>
+ <set name="PREINCLUDE_OPTION" value="--preinclude"/>
+ <set name="PREPROCESSOR_OPTION" value="-E"/>
+ <set name="REL_OPTIMISATION" value="-O2"/>
+ <set name="RUNTIME_SYMBOL_VISIBILITY_OPTION" value="--dllimport_runtime"/>
+ <set name="RW_BASE" value="$(RW_BASE_OPTION) 0x400000"/>
+ <set name="RW_BASE_OPTION" value="--rw-base"/>
<set name="SHARED_OBJECT_OPTION" value="--dll"/>
<set name="SID" value=""/>
<set name="SO_NAME_OPTION" value="--soname"/>
<set name="STATIC_LIBS_PATH" value="$(RVCTLIB)/armlib"/>
<set name="STDCPP_INCLUDE" value="$(EPOCINCLUDE)/stdapis"/>
+ <set name="STDLIB_OPTION" value="--no_scanlib"/>
+ <set name="SUPPORTS_ABIV1_IMPLIBS" value="1"/>
<set name="SYMBIAN_LD_MESSAGE_OPTION" value="$(LD_WARNINGS_CONTROL_OPTION) $(LD_ERRORS_CONTROL_OPTION)"/>
- <set name="SUPPORTS_ABIV1_IMPLIBS" value="1"/>
- <set name="TARGET_RELOCATION_OPTION" value="" />
<set name="SYMVER_OPTION" value="--symver_soname"/>
+ <set name="TARGET_RELOCATION_OPTION" value=""/>
<set name="TEMP_FILES_OPTION" value=""/>
<set name="THUMB_INSTRUCTION_SET" value="--thumb"/>
- <set name="INSTRUCTION_SET" value=""/>
<set name="TRANASM_FLAGS" value="-n -s"/>
<set name="TRANASM_INPUT_OPTION" value=""/>
<set name="TRANASM_OUTPUT_OPTION" value="-o="/>
@@ -100,6 +104,7 @@
<set name="USERINCLUDE" value=""/>
<set name="USER_LIBS_PATH_OPTION" value="--userlibpath"/>
<set name="VFE_OPTION" value="--no_vfe"/>
- <set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/>
+
+ <append name="CDEFS" value="__ARMCC__"/>
</var>
</build>
--- a/sbsv2/raptor/lib/config/variants.xml Tue Mar 23 13:34:00 2010 +0000
+++ b/sbsv2/raptor/lib/config/variants.xml Tue Mar 23 17:11:09 2010 +0000
@@ -79,37 +79,40 @@
</var>
<var name="gcce4_3_2" extends="gcce_base">
- <env name="SBS_GCCE432BIN" type="path" />
+ <env name="SBS_GCCE432BIN" type="toolchainpath" />
<set name="GCCEBIN" value="$(SBS_GCCE432BIN)" />
+ <set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.3.2"/>
<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_3"/>
<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_3__"/>
</var>
<var name="gcce4_3_3" extends="gcce_base">
- <env name="SBS_GCCE433BIN" type="path" />
+ <env name="SBS_GCCE433BIN" type="toolchainpath" />
<set name="GCCEBIN" value="$(SBS_GCCE433BIN)" />
+ <set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.3.3"/>
<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_3"/>
<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_3__"/>
</var>
<var name="gcce4_4_1" extends="gcce_base">
- <env name="SBS_GCCE441BIN" type="path" />
+ <env name="SBS_GCCE441BIN" type="toolchainpath" />
<set name="GCCEBIN" value="$(SBS_GCCE441BIN)" />
+ <set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)" type="tool" versionCommand="$(GCCECC) -dumpversion" versionResult="4.4.1"/>
<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>
<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_4"/>
<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_4__"/>
</var>
<var name="rvct2_2" extends="rvct">
- <env name="RVCT22BIN" type="path"/>
- <env name="RVCT22INC" type="path"/>
- <env name="RVCT22LIB" type="path"/>
+ <env name="RVCT22BIN" type="toolchainpath"/>
+ <env name="RVCT22INC" type="toolchainpath"/>
+ <env name="RVCT22LIB" type="toolchainpath"/>
<set name="RVCTBIN" value="$(RVCT22BIN)"/>
<set name="RVCTINC" value="$(RVCT22INC)"/>
<set name="RVCTLIB" value="$(RVCT22LIB)"/>
- <set name="ARMCC" value=""$(RVCTBIN)/armcc$(DOTEXE)"" type="tool" versionCommand="$(ARMCC) --vsn" versionResult="Compiler, RVCT2\.2\b"/>
+ <set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --vsn" versionResult="Compiler, RVCT2\.2\b"/>
<set name="OWN_LIBRARY_OPTION" value="-Ono_known_library"/>
<set name="RELOCATABLE_IMAGE_OPTION" value="--reloc"/>
<set name="SPLIT_OPTION" value="--split"/>
@@ -130,13 +133,13 @@
</var>
<var name="rvct3_1" extends="rvct">
- <env name="RVCT31BIN" type="path"/>
- <env name="RVCT31INC" type="path"/>
- <env name="RVCT31LIB" type="path"/>
+ <env name="RVCT31BIN" type="toolchainpath"/>
+ <env name="RVCT31INC" type="toolchainpath"/>
+ <env name="RVCT31LIB" type="toolchainpath"/>
<set name="RVCTBIN" value="$(RVCT31BIN)"/>
<set name="RVCTINC" value="$(RVCT31INC)"/>
<set name="RVCTLIB" value="$(RVCT31LIB)"/>
- <set name="ARMCC" value=""$(RVCTBIN)/armcc$(DOTEXE)"" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="310[6-9]\d\d\b"/>
+ <set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="310[6-9]\d\d\b"/>
<set name="OWN_LIBRARY_OPTION" value="--library_interface=aeabi_clib"/>
<set name="RELOCATABLE_IMAGE_OPTION" value=""/>
<set name="SPLIT_OPTION" value=""/>
@@ -160,13 +163,13 @@
</var>
<var name="rvct4_0" extends="rvct">
- <env name="RVCT40BIN" type="path"/>
- <env name="RVCT40INC" type="path"/>
- <env name="RVCT40LIB" type="path"/>
+ <env name="RVCT40BIN" type="toolchainpath"/>
+ <env name="RVCT40INC" type="toolchainpath"/>
+ <env name="RVCT40LIB" type="toolchainpath"/>
<set name="RVCTBIN" value="$(RVCT40BIN)"/>
<set name="RVCTINC" value="$(RVCT40INC)"/>
<set name="RVCTLIB" value="$(RVCT40LIB)"/>
- <set name="ARMCC" value=""$(RVCTBIN)/armcc$(DOTEXE)"" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="400[4-9]\d\d\b"/>
+ <set name="ARMCC" value="$(RVCTBIN)/armcc$(DOTEXE)" type="tool" versionCommand="$(ARMCC) --version_number" versionResult="400[4-9]\d\d\b"/>
<set name="OWN_LIBRARY_OPTION" value="--library_interface=aeabi_clib"/>
<set name="RELOCATABLE_IMAGE_OPTION" value=""/>
<set name="SPLIT_OPTION" value=""/>
--- a/sbsv2/raptor/lib/config/winscw.xml Tue Mar 23 13:34:00 2010 +0000
+++ b/sbsv2/raptor/lib/config/winscw.xml Tue Mar 23 17:11:09 2010 +0000
@@ -1,24 +1,31 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<build xmlns="http://symbian.com/xml/build" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symbian.com/xml/build ../../schema/build/2_0.xsd">
- <!-- build configurations for Metrowerks Emulator compilers -->
+ <!-- build variants for CodeWarrior toolchains -->
<var name="winscw_base" extends="root">
<varRef ref="default.interfaces"/>
<varRef ref="default.locations"/>
- <!-- picked up from the Environment -->
- <env name='CHECKLIB' default='$(EPOCROOT)/epoc32/tools/checklib$(DOTEXE)' type='tool'/>
- <env name='EFREEZE' default="$(PERL) $(EPOCROOT)/epoc32/tools/efreeze.pl" type='tool'/>
- <env name='BMCONV' default="$(EPOCROOT)/epoc32/tools/bmconv$(DOTEXE)" type='tool'/>
- <env name='MAKEDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/makedef.pl' type='path'/>
- <env name='MWCC' default='mwccsym2$(DOTEXE)' type='tool' versionCommand='$(MWCC) -version' versionResult='Version 3.2.*'/>
- <env name='MWLD' default='mwldsym2$(DOTEXE)' type='tool' versionCommand='$(MWLD) -version' versionResult='Version 3.2.*'/>
- <env name='MWWINRC' default='mwwinrc$(DOTEXE)' type='tool' versionCommand='$(MWWINRC) -version' versionResult='Version 3.2.*'/>
-
- <env name='PREPDEF' default='$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl' type='path'/>
- <env name='RCOMP' default='$(EPOCROOT)/epoc32/tools/rcomp$(DOTEXE)' type='tool'/>
- <env name='STRINGTABLE' default='$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl' type='path'/>
+
+ <!-- toolchain tools -->
+ <env name="MWCC" default="mwccsym2$(DOTEXE)" type="tool" versionCommand="$(MWCC) -version" versionResult="Version 3.2.*"/>
+ <env name="MWLD" default="mwldsym2$(DOTEXE)" type="tool" versionCommand="$(MWLD) -version" versionResult="Version 3.2.*"/>
+ <env name="MWWINRC" default="mwwinrc$(DOTEXE)" type="tool" versionCommand="$(MWWINRC) -version" versionResult="Version 3.2.*"/>
+
+ <set name="CC" value="$(MWCC)"/>
+ <set name="LD" value="$(MWLD)"/>
+ <set name="RC" value="$(MWWINRC)"/>
+
+ <!-- tools and scripts -->
+ <env name="BMCONV" default="$(EPOCROOT)/epoc32/tools/bmconv$(DOTEXE)" type="tool"/>
+ <env name="CHECKLIB" default="$(EPOCROOT)/epoc32/tools/checklib$(DOTEXE)" type="tool"/>
+ <env name="EFREEZE" default="$(PERL) $(EPOCROOT)/epoc32/tools/efreeze.pl" type="script"/>
+ <env name="MAKEDEF" default="$(PERL) $(EPOCROOT)/epoc32/tools/makedef.pl" type="script"/>
+ <env name="PREPDEF" default="$(PERL) $(EPOCROOT)/epoc32/tools/prepdef.pl" type="script"/>
+ <env name="RCOMP" default="$(EPOCROOT)/epoc32/tools/rcomp$(DOTEXE)" type="tool"/>
+ <env name="SBSV1MAKE" default="$(EPOCROOT)/epoc32/tools/make$(DOTEXE)" type="tool"/>
+ <env name="STRINGTABLE" default="$(PERL) $(EPOCROOT)/epoc32/tools/stringtable.pl" type="script"/>
<!-- link to bld.inf and mmp platform names -->
- <set name='TRADITIONAL_PLATFORM' value='WINSCW'/>
+ <set name="TRADITIONAL_PLATFORM" value="WINSCW"/>
<!-- interfaces -->
<set name="INTERFACE.ani" value="Emulator.ani"/>
@@ -45,97 +52,96 @@
<set name="INTERFACE.resource" value="Emulator.resource"/>
<set name="INTERFACE.textnotifier2" value="Emulator.textnotifier2"/>
<set name="INTERFACE.var" value="Emulator.var"/>
- <set name='CC' value='$(MWCC)'/>
- <set name='CDEFS' value='__SYMBIAN32__ __CW32__ __WINS__ __WINSCW__ __SUPPORT_CPP_EXCEPTIONS__ _UNICODE $(MMPDEFS)'/>
- <set name='CFLAGS' value='-c -align 4 -warnings on -w nohidevirtual,nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -cwd source'/>
- <set name='CW_DEFAULT_LIBS' value='gdi32.lib user32.lib kernel32.lib'/>
- <set name='CW_RUNTIME_STATIC' value='msl_all_static_mse_symbian_d.lib'/>
- <set name='CW_RUNTIME_NONSTATIC' value='MSL_All_x86_Symbian_D.lib'/>
- <set name='DEFAULT_NORMAL_NEWLIB' value='scppnwdl.lib'/>
- <set name='DEFAULT_SYSTEM_NEWLIB' value='scppnwdl_kern.lib'/>
- <set name='EXPORT_TYPE' value='dllexport'/>
- <set name='LD' value='$(MWLD)'/>
- <set name='LFLAGS' value='-msgstyle gcc -stdlib -subsystem windows'/>
- <set name='LFLAGS_INFGEN' value='-S -show only,names,unmangled,verbose '/>
- <set name='LFLAGS_SYMGEN' value='-S -show only,names,verbose '/>
- <set name='LINKPATH' value='winscw/udeb'/>
- <set name='LISTING_OPTION' value='-S'/>
- <set name='MMPDEFS' value=''/>
- <set name='EPOCSTACKSIZE' value=''/>
- <set name='NMAKE' value='nmake'/>
- <set name='NMAKEFLAGS' value='-nologo -x - '/>
- <set name='OPT.ADDCOMMAND' value='-addcommand '/>
- <set name='OPT.CHECKLIB.STDCPP' value='stdc++'/>
- <set name='OPT.CHECKLIB.SYMCPP' value='symc++'/>
- <set name='OPT.CHECKLIB.WIN32' value='--coff'/>
- <set name='OPT.HEAPCOMMIT' value='-heapcommit='/>
- <set name='OPT.DEFINE' value='-d '/>
- <set name='OPT.DEFFILE' value='-f '/>
- <set name='OPT.DEPEND' value='-gccdepends -MD '/>
- <set name='OPT.EXPORT' value='-export '/>
- <set name='OPT.HEAPRESERVE' value='-heapreserve='/>
- <set name='OPT.IMAGEBASE' value='-imagebase '/>
- <set name='OPT.IMPLIB' value='-implib '/>
- <set name='OPT.IMPORTLIB' value='-importlib '/>
- <set name='OPT.LIBFILE' value='-l'/>
- <set name='OPT.LIBPATH' value='-l '/>
- <set name='OPT.LISTING' value='-S -show source,unmangled,comments '/>
- <set name='OPT.MENTRYPOINT' value='-m '/>
- <set name='OPT.MAINENTRYPOINT' value='-main '/>
- <set name='OPT.MAP' value='-map '/>
- <set name='OPT.NOCOMPACTIMPORTLIB' value='-nocompactimportlib '/>
- <set name='OPT.NOENTRY' value='-noentry '/>
- <set name='OPT.NOIMPLIB' value='-noimplib '/>
- <set name='OPT.NOSTDINC' value='-nostdinc '/>
- <set name='OPT.OUT' value='-o '/>
- <set name='OPT.PREINCLUDE' value='-include '/>
- <set name='OPT.RUNTIME' value='-runtime '/>
- <set name='OPT.SEARCH' value='-search'/>
- <set name='OPT.SHARED' value='-shared '/>
- <set name='OPT.SPLITINCLUDE' value='-i-'/>
- <set name='OPT.STATICLIBRARY' value='-library '/>
- <set name='OPT.STDINC' value='-stdinc '/>
- <set name='OPT.STDLIB' value='-stdlib '/>
- <set name='OPT.SYM' value='-sym '/>
- <set name='OPT.SYSINCLUDE' value='-i '/>
- <set name='OPT.USERINCLUDE' value='-i '/>
- <set name='OPT.WCHAR' value='-wchar_t '/>
- <set name='OPT.WARNINGS' value='-warnings '/>
- <set name='OUTPUTPATH' value='$(SBS_BUILD_DIR)'/>
- <set name='BLDINF_OUTPUTPATH' value='$(SBS_BUILD_DIR)'/>
- <set name='RC' value='$(MWWINRC)'/>
- <set name='RELEASEPATH' value='$(EPOCROOT)/epoc32/release'/>
- <set name='SBSV1MAKE' value='$(EPOCROOT)/epoc32/tools/make$(DOTEXE)'/>
- <set name='STDCPP_DEF' value='__SYMBIAN_STDCPP_SUPPORT__'/>
- <set name='STDCPP_INCLUDE' value='$(EPOCINCLUDE)/stdapis'/>
- <set name='STDCPP_WCHAR_DEF' value='__wchar_t_defined'/>
- <set name='SYMLOOKUPUTIL' value='$(PERL) $(EPOCROOT)/epoc32/tools/sym_lkup_util.pl'/>
- <set name='SYMLOOKUPARGS' value='--ignore_export_dir'/>
- <set name='SYSTEMINCLUDE' value=''/>
- <set name='TARGET' value='TARGET_WAS_NOT_SET_PROPERLY'/>
- <set name='TARGETPATH' value=''/>
- <set name='TARGETTYPE' value='TARGETTYPE_WAS_NOT_SET_PROPERLY'/>
- <set name='USERINCLUDE' value=''/>
- <set name='VARIANTPLATFORM' value='winscw'/>
- <set name='PLATMACROS.WINDOWS' value='CW32 WINS WINSCW'/>
- <set name='PLATMACROS.LINUX' value='$(PLATMACROS.WINDOWS)'/>
+
+ <set name="BLDINF_OUTPUTPATH" value="$(SBS_BUILD_DIR)"/>
+ <set name="CDEFS" value="__SYMBIAN32__ __CW32__ __WINS__ __WINSCW__ __SUPPORT_CPP_EXCEPTIONS__ _UNICODE $(MMPDEFS)"/>
+ <set name="CFLAGS" value="-c -align 4 -warnings on -w nohidevirtual,nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -cwd source"/>
+ <set name="CW_DEFAULT_LIBS" value="gdi32.lib user32.lib kernel32.lib"/>
+ <set name="CW_RUNTIME_NONSTATIC" value="MSL_All_x86_Symbian_D.lib"/>
+ <set name="CW_RUNTIME_STATIC" value="msl_all_static_mse_symbian_d.lib"/>
+ <set name="DEFAULT_NORMAL_NEWLIB" value="scppnwdl.lib"/>
+ <set name="DEFAULT_SYSTEM_NEWLIB" value="scppnwdl_kern.lib"/>
+ <set name="EPOCSTACKSIZE" value=""/>
+ <set name="EXPORT_TYPE" value="dllexport"/>
+ <set name="LFLAGS" value="-msgstyle gcc -stdlib -subsystem windows"/>
+ <set name="LFLAGS_INFGEN" value="-S -show only,names,unmangled,verbose "/>
+ <set name="LFLAGS_SYMGEN" value="-S -show only,names,verbose "/>
+ <set name="LINKPATH" value="winscw/udeb"/>
+ <set name="LISTING_OPTION" value="-S"/>
+ <set name="MMPDEFS" value=""/>
+ <set name="NMAKE" value="nmake"/>
+ <set name="NMAKEFLAGS" value="-nologo -x - "/>
+ <set name="OPT.ADDCOMMAND" value="-addcommand "/>
+ <set name="OPT.CHECKLIB.STDCPP" value="stdc++"/>
+ <set name="OPT.CHECKLIB.SYMCPP" value="symc++"/>
+ <set name="OPT.CHECKLIB.WIN32" value="--coff"/>
+ <set name="OPT.DEFFILE" value="-f "/>
+ <set name="OPT.DEFINE" value="-d "/>
+ <set name="OPT.DEPEND" value="-gccdepends -MD "/>
+ <set name="OPT.EXPORT" value="-export "/>
+ <set name="OPT.HEAPCOMMIT" value="-heapcommit="/>
+ <set name="OPT.HEAPRESERVE" value="-heapreserve="/>
+ <set name="OPT.IMAGEBASE" value="-imagebase "/>
+ <set name="OPT.IMPLIB" value="-implib "/>
+ <set name="OPT.IMPORTLIB" value="-importlib "/>
+ <set name="OPT.LIBFILE" value="-l"/>
+ <set name="OPT.LIBPATH" value="-l "/>
+ <set name="OPT.LISTING" value="-S -show source,unmangled,comments "/>
+ <set name="OPT.MAINENTRYPOINT" value="-main "/>
+ <set name="OPT.MAP" value="-map "/>
+ <set name="OPT.MENTRYPOINT" value="-m "/>
+ <set name="OPT.NOCOMPACTIMPORTLIB" value="-nocompactimportlib "/>
+ <set name="OPT.NOENTRY" value="-noentry "/>
+ <set name="OPT.NOIMPLIB" value="-noimplib "/>
+ <set name="OPT.NOSTDINC" value="-nostdinc "/>
+ <set name="OPT.OUT" value="-o "/>
+ <set name="OPT.PREINCLUDE" value="-include "/>
+ <set name="OPT.RUNTIME" value="-runtime "/>
+ <set name="OPT.SEARCH" value="-search"/>
+ <set name="OPT.SHARED" value="-shared "/>
+ <set name="OPT.SPLITINCLUDE" value="-i-"/>
+ <set name="OPT.STATICLIBRARY" value="-library "/>
+ <set name="OPT.STDINC" value="-stdinc "/>
+ <set name="OPT.STDLIB" value="-stdlib "/>
+ <set name="OPT.SYM" value="-sym "/>
+ <set name="OPT.SYSINCLUDE" value="-i "/>
+ <set name="OPT.USERINCLUDE" value="-i "/>
+ <set name="OPT.WARNINGS" value="-warnings "/>
+ <set name="OPT.WCHAR" value="-wchar_t "/>
+ <set name="OUTPUTPATH" value="$(SBS_BUILD_DIR)"/>
+ <set name="RELEASEPATH" value="$(EPOCROOT)/epoc32/release"/>
+ <set name="STDCPP_DEF" value="__SYMBIAN_STDCPP_SUPPORT__"/>
+ <set name="STDCPP_INCLUDE" value="$(EPOCINCLUDE)/stdapis"/>
+ <set name="STDCPP_WCHAR_DEF" value="__wchar_t_defined"/>
+ <set name="SYMLOOKUPARGS" value="--ignore_export_dir"/>
+ <set name="SYMLOOKUPUTIL" value="$(PERL) $(EPOCROOT)/epoc32/tools/sym_lkup_util.pl"/>
+ <set name="SYSTEMINCLUDE" value=""/>
+ <set name="TARGET" value="TARGET_WAS_NOT_SET_PROPERLY"/>
+ <set name="TARGETPATH" value=""/>
+ <set name="TARGETTYPE" value="TARGETTYPE_WAS_NOT_SET_PROPERLY"/>
+ <set name="USERINCLUDE" value=""/>
+ <set name="VARIANTPLATFORM" value="winscw"/>
+
+ <!-- macros -->
+ <set name="PLATMACROS.WINDOWS" value="CW32 WINS WINSCW"/>
+ <set name="PLATMACROS.LINUX" value="$(PLATMACROS.WINDOWS)"/>
</var>
<var name="winscw_udeb" extends="winscw_base">
- <set name='FULLVARIANTPATH' value='winscw/udeb'/>
- <set name='VARIANTTYPE' value='udeb'/>
+ <set name="FULLVARIANTPATH" value="winscw/udeb"/>
+ <set name="VARIANTTYPE" value="udeb"/>
- <append name='CDEFS' value='_DEBUG'/>
- <append name='CFLAGS' value='-g -O0 -inline off'/>
- <append name='LFLAGS' value='-g'/>
+ <append name="CDEFS" value="_DEBUG"/>
+ <append name="CFLAGS" value="-g -O0 -inline off"/>
+ <append name="LFLAGS" value="-g"/>
</var>
<var name="winscw_urel" extends="winscw_base">
- <set name='FULLVARIANTPATH' value='winscw/urel'/>
- <set name='VARIANTTYPE' value='urel'/>
+ <set name="FULLVARIANTPATH" value="winscw/urel"/>
+ <set name="VARIANTTYPE" value="urel"/>
- <append name='CDEFS' value='NDEBUG'/>
- <append name='CFLAGS' value='-O4,s'/>
+ <append name="CDEFS" value="NDEBUG"/>
+ <append name="CFLAGS" value="-O4,s"/>
</var>
<group name="winscw">
--- a/sbsv2/raptor/lib/flm/e32abiv2.flm Tue Mar 23 13:34:00 2010 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2.flm Tue Mar 23 17:11:09 2010 +0000
@@ -553,8 +553,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 +566,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 +582,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 +601,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 +621,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 +762,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,$$(<D)) \
$(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(USERINCLUDE))) \
$(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE))) \
@@ -864,7 +858,7 @@
$(OPTION_COMPILER) \
$(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,$$(<D)) \
$(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(USERINCLUDE))) \
$(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$(call dblquote,$(SYSTEMINCLUDE))) \
@@ -985,7 +979,7 @@
$(if $(PREINCLUDE),$(PREINCLUDE_OPTION) ,)$$(call concat, $(PREINCLUDE_OPTION) ,$$(call dblquote,$(PREINCLUDE))) \
$(if $(USERINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$$(call dblquote,$(USERINCLUDE))) \
$(if $(SYSTEMINCLUDE),$(COMPILER_SYSTEM_INCLUDE_OPTION),)$$(call concat, $(COMPILER_SYSTEM_INCLUDE_OPTION),$$(call dblquote,$(SYSTEMINCLUDE))) \
- $(if $(ARMINC),$(if $(RVCTINC), $(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquoteitem,$(RVCTINC)),),) )
+ $(if $(ARMINC),$(if $(RVCTINC), $(COMPILER_SYSTEM_INCLUDE_OPTION)$$(call dblquote,$(RVCTINC)),),) )
$(e32abiv2_PREFILE): $1 $(PROJECT_META) $(if $(DEPENDFILE),,RESOURCE BITMAP EXPORT)
--- a/sbsv2/raptor/python/generic_path.py Tue Mar 23 13:34:00 2010 +0000
+++ b/sbsv2/raptor/python/generic_path.py Tue Mar 23 17:11:09 2010 +0000
@@ -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):
--- a/sbsv2/raptor/python/raptor_data.py Tue Mar 23 13:34:00 2010 +0000
+++ b/sbsv2/raptor/python/raptor_data.py Tue Mar 23 17:11:09 2010 +0000
@@ -730,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:
--- a/sbsv2/raptor/test/unit_suite/generic_path_unit.py Tue Mar 23 13:34:00 2010 +0000
+++ b/sbsv2/raptor/test/unit_suite/generic_path_unit.py Tue Mar 23 17:11:09 2010 +0000
@@ -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
--- a/sbsv2/raptor/test/unit_suite/raptor_data_unit.py Tue Mar 23 13:34:00 2010 +0000
+++ b/sbsv2/raptor/test/unit_suite/raptor_data_unit.py Tue Mar 23 17:11:09 2010 +0000
@@ -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 isWin32(self):
+ return sys.platform.lower().startswith("win")
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.isWin32():
+ 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.isWin32():
+ 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