Installing several IDEs with their corresponding SDKs on the same machine is still a little bit "experimental" when working with Symbian OS development toolchain. And a complete loss of your SDK configuration is a common surprise. Here is a little fix when working on the UIQ platform with both Metrowerks Codewarrior and Borland/Microsoft IDEs.
The Problem seems to be that UIQ Technology use the same Kit ID in the InstallShield installer for different installation packages, so by default it isn’t possible to install both SDKs on the same machine. You have to decide between Metrowerks CodeWarrior and BorlandCBuilderX. Thats not a option for me!! 
Furthermore, I had problems with the Windows XP Professional SP2 "Data Execution Prevention" feature (aka DEP) - the UIQ_21 installer will loop infinitely at the and, so you have to kill them, the embedded Perl installer will hang. Also the deinstaller doesn’t work correctly, may it loops and hangs , may it runs. There was some strange installer behaviour until i switched off the XP SP2 DEP feature. Switching of DEP does solve some problems, but not all. There are also problems with the new designed RPC stuf in XP SP2, this will also cause some installer hangups. It seems to me that a Symbian developer in the near future needs some VMWare installations on his machine to run the "old" SDKs.
1. Prepare
1.1 Switch off DEP if you use XP SP2
open cmd.exe
type "C:"
type "cd \"
type "attrib boot.ini -r -h -s"
edit the boot.ini file and change /NoExecute=OptIn to /NoExecute=AllwaysOff
type "attrib boot.ini +r +h +s"
1.2 Install Perl
I use the actuall version
1.3 Install JRE 1.3.1_01
Install exact j2re-1_3_1_01-win-i.exe. This is the one that comes with your UIQ v2.1 SDK. So if you haven’t this one installed on your system, you have to install it to the path
"%ProgramFiles%\JavaSoft\JRE\1.3.1"
*Replace %ProgramFiles% with your localized name, e.g. C:\Program Files.
The reason for doing this is because I had problems to install Java from within the UIQ_21 installer. The UIQ_21 installer uses exactly JRE 1.3.1_01 (not 1.3.1_01a). You can download the international version from the webform , and select 1.3.1_01 in the pull down menu "J2RE".
1.4 Reboot
I had promlems if I didn’t reboot after installing Perl and the JRE 1.3.1_01!
2. UIQ v2.1 SDK for Metrowerks CodeWarrior
2.1 Install UIQ_21 SDK for Metrowerks Code Warrior
Upload the UIQ SDK from Symbian ftp site (). I used the "june04" version which was the latest at time of writing. They have also older UIQ_21 installers from oct03, don’t use them - use the newer one from june04, the contain the Update1 for UIQ_21 (newer docus, and other stuff). You can also download the UIQ_21 SDKs from this webform: .
Note my InstallPath is: "C:\Symbian\7.0e\UIQ_v21_CW"
Don’t select Perl and Java int the InstallShield Window. If the InstallShield pops up after 85-95% a Java Window select all CheckBoxes, but not the first one.
2.2 Change Registry Settings
After the Installation of this first SDK, you have to do two changes in the registry. So open regedit.exe and change the following two Values
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{F0CD9140-BE75-11D5-9229-00C04F179241}_0]
"KitID"="UIQ_21" -> "KitID"="UIQ_v21_CW" "DisplayName"="Symbian OS Kit Installer UIQ_21" -> "DisplayName"="Symbian OS Kit Installer UIQ_v21_CW"
2.3 Change devices.xml and installed2.xml
Change "%CommonFiles%\Symbian\devices.xml" [] from:
<?xml version="1.0" encoding="UTF-8"?> <devices version="1.0"> <device id="UIQ_21" name="com.symbian.UIQ"> <epocroot>C:\Symbian\7.0e\UIQ_v21_CW\</epocroot> </device> </devices>
to:
<?xml version="1.0" encoding="UTF-8"?> <devices version="1.0"> <device id="UIQ_v21_CW" name="com.symbian.UIQ"> <epocroot>C:\Symbian\7.0e\UIQ_v21_CW\</epocroot> </device> </devices>
Change "%CommonFiles%\Symbian\installed2.xml" from:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE installed-sdks SYSTEM "installed2.dtd"> <installed-sdks version="2.0"> <sdk id="UIQ_21"> <sdk-path>C:\Symbian\7.0e\UIQ_v21_CW</sdk-path> </sdk> </installed-sdks>
to:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE installed-sdks SYSTEM "installed2.dtd"> <installed-sdks version="2.0"> <sdk id="UIQ_v21_CW"> <sdk-path>C:\Symbian\7.0e\UIQ_v21_CW</sdk-path> </sdk> </installed-sdks>
2.4. Fix ide_cw.pm (This is a Bug!)
In the file \epoc32\tools\ide_cw.pm file change this line (in the addSystemSearchPaths function, not the addUserSearchPaths one)
code>&textSetting($accesspath, "Recursive", "true");
to
&textSetting($accesspath, "Recursive", "false");
3. UIQ v2.1 SDK for Borland C++BuilderX
3.1 Install UIQ_21 SDKForBorlandCBuilderX
Download the C++BuilderX version of the UIQ SDK and install it in a different location. My InstallPath is: "C:\Symbian\7.0e\UIQ_v21_MS"
Don’t select Perl and Java int the InstallShield Window. If the InstallShield pops up after 85-95% a Java Window select all CheckBoxes, but not the first one.
3.2 Change Registry Settings
Like for the Codewarrior SDK, you know have to tweak the registry. So open regedit.exe and change the following two values
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{F0CD9140-BE75-11D5-9229-00C04F179241}_1]
"KitID"="UIQ_21" -> "KitID"="UIQ_v21_MS" "DisplayName"="Symbian OS Kit Installer UIQ_21" -> "DisplayName"="Symbian OS Kit Installer UIQ_v21_MS"
3.3 Change devices.xml and installed2.xml
Change "%CommonFiles%\Symbian\devices.xml" from:
<?xml version="1.0" encoding="UTF-8"?>
<devices version="1.0"> <device id="UIQ_v21_CW" name="com.symbian.UIQ" default="no" userdeletable="no"> <epocroot>C:\Symbian\7.0e\UIQ_v21_CW\</epocroot> </device> <device id="UIQ_21" name="com.symbian.UIQ"> <epocroot>C:\Symbian\7.0e\UIQ_v21_MS\</epocroot> </device> </devices>
to:
<?xml version="1.0" encoding="UTF-8"?>
<devices version="1.0"> <device id="UIQ_v21_CW" name="com.symbian.UIQ" default="no" userdeletable="no"> <epocroot>C:\Symbian\7.0e\UIQ_v21_CW\</epocroot> </device> <device id="UIQ_v21_MS" name="com.symbian.UIQ"> <epocroot>C:\Symbian\7.0e\UIQ_v21_MS\</epocroot> </device> </devices>
Change "%CommonFiles%\Symbian\installed2.xml" from:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE installed-sdks SYSTEM "installed2.dtd"> <installed-sdks version="2.0"> <sdk id="UIQ_21"> <sdk-path>C:\Symbian\7.0e\UIQ_v21_MS</sdk-path> </sdk> <sdk id="UIQ_v21_CW"> <sdk-path>C:\Symbian\7.0e\UIQ_v21_CW</sdk-path> </sdk> </installed-sdks>
to:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE installed-sdks SYSTEM "installed2.dtd"> <installed-sdks version="2.0"> <sdk id="UIQ_v21_CW"> <sdk-path>C:\Symbian\7.0e\UIQ_v21_CW</sdk-path> </sdk> </installed-sdks>
Conclution:
That’s it! Note: Before you deinstall or modify some Package you have to restore its install values, cause the installer won’t work correctly! I don’t have the time to figure out how this works. Maybe you?
[] %CommonFiles% have to be localiced in the following Text, e.g. "C:\Program Files\Common Files" for english Windows or "C:\Programme\Gemainsame Dateien" for german Windows |