Work on a Symbian Carbide.c++ generator is in progress. You can read
more about the progress on
this bug report.
Carbide is the common IDE for Symbian development, the output of this
generator can be compiled using the Carbide IDE or from command line.
This generator creates a set of .bld.inf/.mpp/.mk files that can be
imported in Carbide as an "Symbian OS Bld.inf file".
A bld.inf file in Carbide is similar to a solution (.sln) file in visual
studio, it contains a list project paths, the order of the projects is
the order that they are going to be built.
An .mmp file in Carbide is similar to a project(.vcproj) file in visual
studio, it contains source file paths, include paths, macro definitions
and all sort of other definitions that defines a c\c++ compiler\linker
output (exe, dll, lib and such).
CMake rules are implemented using make files (.mk) project that are
before each project .mmp file in the bld.inf file.
Using Symbian Carbide.c++ Generator
System requirements for Carbide.c++
A windows OS (XP, Vista, Win7)
About 4GB of space on drive C:
Fast internet bandwidth - the downloads needed are about 1GB.
An hour of free time.
Creating a Carbide.c++ development environment
Follow the following steps.
Open up an account on Symbian developer community
This is needed so you can download files from the Symbian site. You can
page, make sure you give out a valid e-mail address, if you don't want
to give out your real address - you can use
this site to get a temporary e-mail for
the e-mail activation step in the registration.
Download "SDK - (from Nokia)" (The link is on the right site of the
Make sure that no other version of this type of Nokia SDK is
installed on your system - remove the old install if needed.
Install the file you downloaded.
you must configure the environment for use with the S60 emulator.
This is done by locating the Carbide.C++ submenu on the Start menu,
and choosing "Configure environment for WINSCW command line".
Create a Carbide project using the generator
You must have a Symbian development environment ready on your computer
as described on this wiki page above.
You also must have a version of CMake that includes this generator.
Generating the project is the same as for any other generator target of
CMake, the name of the generator is "Carbide".
Note however the following limitations (forced by this development
All of the project source files and dependencies must be on drive C:
You can't have spaces in folder names.
CXX extension is treated as C and not CPP by the compiler (the
generator solves this by creating a new CPP file with a single
#include to the original file and adding it instead to the
Source files with the same name but in different folders are not
supported (the generator solves this by creating a new source file
with a unique name and a single #include to the original file)
DLL exports need to be declared per data member in both declaration
and implementation. Read more about how to export from a DLL
There is an option to create command line application that will run
on the Symbian emulation, and even get the result code from them,
but you can't capture the console output as you would from a normal
command line application.
The working directory of an exe is not the path of exe but a
different folder on the device\emulation.
Importing a project to the Carbide IDE
Figure shows, by selecting File > Import menu item, the developer
launches an import panel which has various options, amongst which is the
option to import a bld.inf file as shown in figure 1. After selecting
this option, the developer is asked to select the bld.inf file to import
from the host computer's hard dis(s).
When this step is completed, Carbide.c++ displays all the Symbian
Platform SDKs that are installed on the host PC (known as autodetection)
and asks the developer to select the one appropriate for the project, as
shown in figure 2. In the next step, the developer can select which of
the Symbian MMP files referenced in the imported bld.inf file should be
used in order to parse the appropriate MMP file(s). Finally, the
developer can select the project name and the root directory for the
project. At the end of this wizard's operation, a Symbian C++ project is
opened and ready for development in Carbide.c++.
Known open issues with this generator
Only DLL, EXE and LIB targets are supported for now.