Difference between revisions of "Symbian Carbide Generator"

From KitwarePublic
Jump to navigationJump to search
(Added the "Symbian Carbide Generator" page to the wiki)
 
(Replace content with link to new CMake community wiki)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=Overview=
+
{{CMake/Template/Moved}}
  
Work on a Symbian Carbide.c++ generator is in progress. You can read more about the progress on [http://public.kitware.com/Bug/view.php?id=8486 this] bug report.
+
This page has moved [https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/dev/Symbian-Carbide-Generator here].
 
 
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.
 
* A 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 register on [https://developer.symbian.org/main/user_profile/register.php this] 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 [http://www.mytrashmail.com this] site to get a temporary e-mail for the e-mail activation step in the registration.
 
 
 
===Download and install Carbide===
 
* Go to [http://developer.symbian.org/main/tools_and_kits/downloads/view.php?id=2 this] page.
 
* Download "ADT" (The link is on the right site of the page).
 
* Make sure that no other version of ADT\Carbide is installed on your system - remove the old install if needed.
 
* Install the file you downloaded.
 
 
 
===Download and install the S60 Nokia Symbian SDK===
 
* Go to [http://developer.symbian.org/main/tools_and_kits/downloads/view.php?id=3 this] page.
 
* Download "SDK - (from Nokia)" (The link is on the right site of the page).
 
* 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 environment):
 
* 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 project).
 
* 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 [http://www.newlc.com/en/Writing-a-DLL.html here].
 
* 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==
 
[[File:Carbide-import1.jpg|100px|thumb|Figure 1]]
 
[[File:Carbide-import2.jpg|100px|thumb|Figure 2]]
 
As the 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++.
 
 
 
[[File:Carbide-import3.jpg|100px|thumb|right|Figure 2]]
 
[[File:Carbide-import4.jpg|100px|thumb|right|Figure 3]]
 
 
 
=Known open issues with this generator=
 
* Only DLL, EXE and LIB targets are supported for now.
 
* There is no support for mmp "[http://developer.symbian.org/main/documentation/reference/s%5E3/doc_source/ToolsAndUtilities96/Build-ref/Mmp-ref/bitmap.html Bitmap]" yet.
 

Latest revision as of 11:41, 30 April 2018


The CMake community Wiki has moved to the Kitware GitLab Instance.

This page has moved here.