core/com.nokia.carbide.cpp.doc.user/html/tasks/ImportingProjects.html
author fturovic <frank.turovich@nokia.com>
Tue, 31 Aug 2010 10:54:44 -0500
changeset 1929 e42423cc31d4
parent 1658 2a5c0df13bad
child 1951 4809919782c0
permissions -rw-r--r--
BUG 11531 - final updates for build config revision

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head>
<title>Importing Projects from a Bld.Inf File in Tasks</title>
<link rel="StyleSheet" href="../../book.css" type="text/css"/>
</head>
   <body>
   <h2>Importing Projects from a Bld.Inf File</h2>
   <div class="Bodytext">
	  
	 <p>
		The command-line Symbian OS toolchain requires that projects are
	 defined with these formats:</p>
	 <ul>
	   <li>Symbian OS-specific project file formats (bld.inf)</li>
	   <li>Symbian OS executable files (.exe)</li>
  </ul>
	 <p>The primary purpose of bld.inf files is to
		        group together closely associated projects, such as a GUI application and a
		        engine DLL used by that application.</p>
	 <p>
		The Symbian OS plug-ins allow you to import projects defined with these
		formats into the workbench. This is useful if:</p> 
 
	 <ul> 
		<li> 
		  <p>
			 You have existing projects defined using these formats and now wish
		  to move to development in Carbide.c++.</p>
		</li> 
	    <li>
	      <p> You need to keep the ability to build from the command line, for
	        example in order to do automated builds, and so maintain the command line
	        project files, but want to use Carbide.c++ for editing code and debugging.</p>
       </li>
	 </ul>

     <h3>Projects for Symbian OS 9.3+ </h3>
     <p>Versions of Symbian OS 9.3+ devkits include extensive use of <span class="code">PRJ_EXTENSIONS</span> and <span class="code">PRJ_TESTEXTENSIONS</span>. These top-level entries are extension makefile templates whose names are later filled in with target names, sources, and options. The intent is to make source editing easier and dependency checking possible during a build. </p>
     <p>Currently if you  import a bld.inf file but are not importing all of the components and one of these extensions are found:</p>
     <ul>
       <li>a warning appears at the top of the wizard page</li>
       <li>a warning is shown in the Carbide Project Settings property page</li>
       <li>if not building from the bld.inf, messages appear in the Console and Problems views</li>
     </ul>
     <p> The reason being that individual extensions cannot  be built from within Carbide, only the complete bld.inf.</p>
     <div class="step"></div>
    <h4>
		To import from a bld.inf file</h4> 
 
	 <ol> 
		<li> 
	   Click File &gt; Import... to get a list of available import wizards</li> 
		<li>Select Symbian OS &gt; Symbian OS Bld.inf file and click Next to go to the Import Bld.inf page
		    <div class="Figure"></div>
		</li>
       </ol>

     <blockquote>
         <p><img src="../reference/images/import_bld_inf_01.png" alt="Select Symbian bld.inf file to import" width="525" height="550"></p>
     </blockquote>
     <ol start="3">
		 <li> 
			 Type the location of the bld.inf file to import, or browse to the file using the Browse button. </li>
		  <p class="Image"><img src="../reference/images/import_bld_inf_02.png" alt="Select bld.inf file to import" width="573" height="550"></p>
		  <p class="note"><strong>NOTE</strong> Depending upon which SDKs are installed, you may see both SBSv1 and SBSv2 builders available. It is recommended that SBSv2 be the primary choice as SBSv1 has been deprecated for future Symbian OS development.</p>
		  <p class="Image">SBSv2   works with recent versions of Symbian^3 and Symbian ^4 SDKs. Both  SBSv1 and SBSv2 are GNU make based build systems. SBSv1 uses Perl to generate make files,  while SBSv2 uses Python. Select the appropriate builder for your project.</p>
		  <p class="note"><strong>NOTE</strong> Choose SBSv2 whenever possible as SBSv1 is being phased out.</p>
	     When building for  SBSv2, the builder will set <span class="code">EPOCROOT</span> to the absolute path (including drive  letter) to the kit for the active build configuration.&nbsp; It will also add the path to the sbs bin  directory to the start of the <span class="code">PATH</span> variable.&nbsp;  This is derived from the <span class="code">SBS_HOME</span> environment variable.
	     <p class="Image">For SBSv2, all  build configurations (platform/target), including the built-in platforms  (WINSCW, ARMV5), are declared in xml files in the <span class="code">\sbs\lib\config</span> directory.  The Build  Configurations selection page  displays only kits  known to support SBSv2.</p>
		  <li> Click Next to select the recognized SDKs and Build Configurations to be created for this project
		      <p>The SDKs and Build Configurations shows a tree of
		              the SDKs that are available to be used, and for each SDK, the type of build configurations
		              that are available. You can select a single SDK if you are developing the program
		              for just one version of a platform, or multiple SDKs if your
		              program is to be built against multiple platforms or operating system
		              versions.</p>
	     </li>
     </ol>
     <blockquote>
         <p class="note"><b>NOTE</b> The platforms listed are dependent upon the filter settings in the <a href="sdks/sdk_platform_filter.htm">Platform Filtering Preferences</a>.</p>
         <p><img src="../reference/images/import_bld_inf_03.png" alt="Symbian OS SDKs page" width="573" height="550"></p>
     </blockquote>
     <ol>
         <li value="5"> Click Next to select the mmp and extension make files
             <div class="Figure">
                 <p>One MMP file must be selected in order to continue. If the bld.inf file contains more than three MMP files, just select the MMP files you need to import. If there are three or less MMP files, then all are selected for importing.</p>
                 <p class="Image"><img src="../reference/images/import_bld_inf_04.png" alt="" width="573" height="550"  border="0" /></p>
             </div>
                 </li>
         <li>Click Next to enter the Project name and root directory</li>
         <p>When creating a project, project files are created in the root directory. Carbide.c++ creates additional files for each project. They consist of:</p>
         <ul>
             <li>.project - an xml file that provides a project description </li>
             <li>.cproject - an xml file that provides additional project information </li>
             <li>.settings folder - contains files that provide build configuration and preference settings </li>
                     </ul>
         <p>The root directory is a path to the root of your project. All necessary tool components, developer libraries, and information about the SDK are stored in subdirectories under this root. The whole path leading to the SDK root directory must be declared to the Windows system via the Environment Variables settings. The variable name is <span class="code">EPOCROOT</span> and the variable value is the full path where a Symbian OS SDK is installed in the Windows system.</p>
         <p>The root directory should contain all project related files that you want to work with in Carbide. The default directory is calculated by parsing the bld.inf file and mmp file(s).</p>
         <p class="Image"><img src="../reference/images/import_bld_inf_05.png" alt="" width="573" height="550"  border="0" /></p>
         <li> Click Finish to import the project
             <p>
                 The
                 wizard creates the project in the <a href="../reference/view_proj_explorer.htm">Project Explorer</a> view, where it can be built and edited as normal. If the wizard is unable to read the project files, then the page
                 describes the error that occurred. If an error occurs, you must fix the project file, and then
             re-import the bld.inf.</p>
                     </li>
     </ol>
   </div>
	   <h5>Related  concepts</h5>

	   <ul>
         <li><a href="../concepts/Projects.html">Projects</a></li>
         <li><a href="../concepts/Modify.html">Project Resources</a> </li>
       </ul>
	   <h5>Related tasks</h5>
	   <ul>
         <li><a href="CreatingNewProjects.html">Creating Projects </a></li>
         <li><a href="projects/prj_build.htm">Building Projects</a></li>
         <li><a href="projects/prj_import_exe.htm">Importing a Symbian Executable</a></li>
       </ul>
	   <h5>Related references</h5>
	   <ul>
         <li><a href="sdks/sdk_platform_filter.htm">Platform Filtering Preferences</a></li>
         <li><a href="../reference/ProjectDirectories.html">Project Directories</a></li>
         <li><a href="../reference/ProjectPreferences.html">Project Preferences</a></li>
         <li><a href="../reference/ProjectTypeandSDK.html">Project Types </a></li>
       </ul>
<div id="footer">Copyright &copy; 2010 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. <br>License: <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a></div>

   </body>
   </html>