= IDEs for S60WebKit = This page contains information and recommendations about which IDE to use when developing on S60WebKit. As mentioned in the [wiki:S60ConfigureComputer environment setup instructions], the recommended version of the Carbide.c++ IDE is '''version 1.0'''. ''(This IDE cannot be downloaded anymore. Kenny Yu.)'' === Why? === Carbide.c++ version 1 is the primary recommendation because it's free software (in practice, quite a number of different IDEs are used). === Limitations === Carbide.c++ version 1.0 does have some limitations, especially with importing a large code base such as S60WebKit into an 'IDE project'. When using version 1.0, people tend to edit the source in their favorite editor and then compile/run the emulator with the [wiki:S60CheckoutAndBuild provided scripts]. Carbide version 1.0 can still be used for debugging (see below). == Carbide.c++ version 1.2 == See Marcus Groeber's comments regarding Carbide.c++ version 1.2 and S60WebKit: {{{ What did actually work for me is build WebKit with Carbide.c++ 1.2 (due to the massively improved ability to import complex bld.inf files into the IDE, and then defer the building to the usual command line tools). You won't be able to use the build.bat script that comes with WebKit, so you will need to set up a permanent "subst" of X: to the EPOCROOT of your 3rd Edition SDK by hand (note that "3rd Edition MR" will not work, unfortunately!), and create an additional SDK descriptor for devices.exe that refers to your X: drive as the EPOCROOT: Device: S60_3rd_X:com.nokia.s60 Root is X:\ Tools path is X:\ It may still be necessary to run the original build script at least once to copy the necessary support files in the right location, but after this, I was able to rebuild and debug Reindeer from inside Carbide.c++ }}} Thanks Marcus! [Added after original post:] You will also need to overwrite variant.cfg in your 3.0 SDK with the copy included with the browser source (in S60\S60Internals\S60Variant.zip). The reason is that build.bat also replaces variant.cfg in the SDK while building, and then reverts back again after it exits. This temporarily makes available a few specific macros that control the exact build environment that is expected. So even if you have run build.bat once (which you must), you will also need to extract S60Variant.zip before using the IDE. == Debugging with Carbide.c++ Version 1.0 == It is recommended that you get acquainted with Carbide.c++ version 1.0 functionality by following the tutorial withing Carbide with a sample Hello World Project before attempting to debug the S60WebKit code. To set breakpoints in S60WebKit code for debugging with Carbide: * Build reindeer via the provided build scripts * Start Carbide.C++ Express * Select Menu Item: File->Import... * Highlight "Symbian OS Executable" and click Next * In Select Executable: field, enter "X:\Epoc32\release\winscw\udeb\!WebUi.exe" and click Next * Confirm "New Project Name:" is "Debug !WebUi.exe" and is selected, * Box "Create a Launch Configuration:" is checked and set to "Symbian OS Emulation", and * "Name:" is "Debug !WebUi.exe" Click Finish. * In new "Debug" window, enter the following for "Emulator or host application:" field: {{{ X:\Epoc32\release\winscw\udeb\epoc.exe }}} Click Apply and then Debug This should allow you to set breakpoints and debug the sources that make up the !WebUi.exe binary only. To debug other Dlls/binaries that make up the Browser, do the following: * Return to the non-debug view of Carbide. * Under the C/C++ Project tab, highlight and right click on {{{Debug !WebUi.exe}}} and select {{{Import...}}} * Highlight {{{Symbian OS Executable}}} and click Next * In Select Executable: field, enter {{{X:\Epoc32\release\winscw\udeb\!MemMan.dll}}} and click Next Note: this example is loading !MemMan.dll but you can also select any other browser based binary file Select radio button "Existing Project:", click Search and select "Debug !WebUi.exe" ; Uncheck the box "Create a Launch Configuration:" and click Finish * You can now start a debug session and set breakpoints in both !WebUi.exe and !MemMan.dll based source files. To add addional S60WebKit browser binaries for debugging, just repeat the steps above.