carbidesdk/com.nokia.carbide.cpp.sdk.doc.user/html/reference/api_Change_Notes.htm
author timkelly
Thu, 05 Aug 2010 15:02:27 -0500
branchC3_BUILDER_WORK
changeset 1778 05c2648e3e25
parent 1745 70e83e025896
permissions -rw-r--r--
updated notes after refactoring ICarbideBuildCOnfiguration and ISDKManager.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<title>Changes to the Carbide API</title>
<style>
<!--
span.attr
    {color:green}
-->
</style>
<link rel="StyleSheet" href="../../book.css" type="text/css"/>
</head>

<body>
<h2>Changes to the Carbide API </h2>

<p>The following section provides information on changed, deprecated, and removed Carbide APIs. </p>
<h3>Changed APIs</h3>
<p>The following APIs have been changed. </p>
<p>Since Carbide 1.2.0</p>
<ul>
  <li><i>N/A</i></li>
</ul>
<p>Since Carbide 1.2.1</p>
<ul>
  <li><i>In order to support multiple documents per model, we must inject a way to determine how IDocument instances are provided for use in creating ITranslationUnits. Any implementations of com.nokia.carbide.cpp.epoc.engine.model.IViewParserConfiguration must now implement the method IModelDocumentProvider getModelDocumentProvider(). This is used to isolate the mechanism for creating IDocument instances, either from disk or from memory. </i></li>
</ul>
<ul>
  <li><i>Similarly, the method #getTranslationUnit(File) in com.nokia.carbide.cpp.epoc.engine.preprocessor.ITranslationUnitProvider is changed to #getTranslationUnit(File, IModelDocumentProvider). </i></li>
</ul>
<p>Since Carbide 1.2.2</p>
<ul>
  <li><i>Due to changes in in CDT 4.0, we needed to change com.nokia.carbide.cdt.builder.ICarbideBuildManager and com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo. Methods which modified Carbide.c++ project properties were moved to the new interface com.nokia.carbide.cdt.builder.project.ICarbideProjectModifier.</i></li>
</ul>
<ul>
  <li><i>ICarbideProjectInfo#getCleanCommand has been changed to ICarbideProjectInfo#getCleanLevel to match the preference change. </i></li>
</ul>
<ul>
  <li><i>ICarbideBuildConfiguration#getSISBuilderInfo has been changed to ICarbideBuildConfiguration#getSISBuilderInfoList to match the changes to the SIS Builder tab. </i></li>
</ul>
<ul>
  <li><i>EpocEngineHelper#getProjectRoots now returns a list with three elements (formerly 2), the last of which is the path that contains the build files and the sources (aka the "desired root").</i></li>
</ul>
<p>Since Carbide 2.0</p>
<ul>
  <li>Added<em> com.nokia.carbide.cpp.sdk.core.ISDKManager#checkDevicesXMLSynchronized()</em>.</li>
</ul>
<ul>
  <li>The EMMPLanguage#UNKNOWNxxx enums have been renamed with their proper names.  All the same language
  codes are available, so EMMPLangage#forLangCode() or #fromCode() should still work.  (We couldn't leave the unknown
  enums in, mark them @Deprecated, and add the correct ones, since this would violate uniqueness in the EMMPLanguage#values() 
  array.)</li>
</ul>

<p>Since Carbide 2.0.4</p>
<ul>
  <li>Added <em> com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration#getBuildArgumentsInfoCopy( )</em>.</li>
</ul>
<ul>
  <li>Added <em> com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration#setBuildArgumentsInfo(BuildArgumentsInfo bldArgInfo)</em>.</li>
</ul>

<p>Since Carbide 2.1.0</p>
<ul>
  <li>Added <em> com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder#getBuilderMakefileDir(ICarbideBuildConfiguration config)</em>.</li>
  <li>Support was added for Symbian Binary Variation (SBV):</li>
  <ul>
    <li>Added <em> com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext#getBuildVariationName( )</em>.</li>
    <li>Added <em> com.nokia.carbide.cdt.builder.EpocEngineHelper#hasFeatureVariantKeyword( ICarbideProjectInfo projectInfo, IPath relativeMMPPath )</em>.</li>
    <li>Added <em> com.nokia.carbide.cdt.builder.EpocEngineHelper#getMD5HashForBinaryVariant( ICarbideBuildConfiguration config,  IPath mmpFullPath)</em>.</li>
    <li>Added <em>com.nokia.carbide.cpp.sdk.core.ISymbianSDK#getSBVCatalog( )</em>.</li>
    <li>Added <em>com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext#getBuildVariationName( )</em>.</li>
    <li>Added <em>com.nokia.carbide.cpp.sdk.core.ISymbianBuildContext#isSymbianBinaryVariation( )</em>.</li>
    <li>Added <em>com.nokia.carbide.cpp.sdk.core.ISBVCatalog.</em> </li>
    <li>Added <em>com.nokia.carbide.cpp.sdk.core.ISBVPlatfor</em>m.</li>
    <li>Added EPOC Engine support for SBV in the following packages:
      <ul>
        <li><em>com.nokia.carbide.cpp.epoc.engine</em></li>
        <li><em>com.nokia.carbide.cpp.epoc.engine.model</em></li>
        <li><em>com.nokia.carbide.cpp.epoc.engine.model.sbv</em>.</li>
      </ul>
    </li>
  </ul>
  
    <li>Added <em> com.nokia.carbide.cpp.sdk.core.ISymbianSDK#setPreviouslyScanned( boolean )</em>.</li>
    <li>Added <em> com.nokia.carbide.cpp.sdk.core.ISymbianSDK#isPreviouslyScanned( )</em>.</li>
    
</ul>

<p>Since Carbide 2.2.0</p>
<ul>
	<li>Added <em> com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo#extraSBSv2Args( )</em>.</li>
</ul>

<p>Since Carbide 2.3.0</p>
<ul>
	<li>ISDKManager was updated to indicate it is not intended to be implemented by clients.
	<li>Added <em> com.nokia.carbide.cpp.sdk.core.ISDKManager#getSBSv2Version(boolean forceScan)</em>.</li>
	<li>Added <em> com.nokia.carbide.cpp.sdk.core.ISDKManager#getMinimumSupportedSBSv2Version( )</em>.</li>
</ul>

<p>Since Carbide 2.6.0</p>
<ul>
	<li>Added <em> com.nokia.carbide.cdt.builder.project.ISymbianBuildContext#getSBSv2Alias()</em>.</li>
	<li>Added <em> com.nokia.carbide.cdt.builder.project.ISymbianBuildConfiguration#getTargetOutputDirectory( )</em>.</li>
</ul>

<p>Since Carbide 3.0.0 (C3)</p>
<ul>

	<li>C3 is an API breaking release, primarily around areas of Symbian SDK management and Symbian build support.
	This release removes support for Symbian OS versions prior to 9.4 (i.e. only support for Symbian^2 and up are supported).
	Management of Symbian SDKs has been simplified and the APIs have been trimmed to reflect this.</li>

	<li><i>ISymbianSDK</i></li>
	<ul>
		<li>added <i>getSupportedFeatures()</i> - see <i>com.nokia.carbide.cpp.sdk.core#ISymbianSDKFeatures</i> for supported feature constants.</li>
		<li>added <i>ISDKBuildInfo getBuildInfo(String builderId)</i> - This is used to get the base data (ISymbianBuildContext) for a build configuration, depending on the builder you are using (e.g. abld versus sbsv2). See also <i>com.nokia.carbide.cpp.sdk.core#ISDKBuildInfo</i> </li>
	</ul>
	
	<li><i>com.nokia.carbide.cpp.sdk.core#ISDKBuildInfo</i> was added.</li>
	<li><i>com.nokia.carbide.cpp.sdk.core#ISBSv1BuildContext</i> was added.</li>
	<li><i>com.nokia.carbide.cpp.sdk.core#ISBSv2BuildContext</i> was added.</li>
	<li><i>com.nokia.carbide.cpp.sdk.core#ISBSv2BuiISymbianSDKFeatures</i> was added.</li>
	
	<li><i>ICarbideBuildConfiguration</i></li>
	<ul>
		<li>added <i>ISymbianBuildContext getBuildContext()</i></li>
		<li>added <i>getDisplayString()</i> - A convenience wrapper for ISymbiabBuildContext</li>
		<li>added <i>getSDK()</i> - A convenience wrapper for ISymbiabBuildContext</li>
		<li>added <i>getPlatformString()</i> - A convenience wrapper for ISymbiabBuildContext</li>
		<li>added <i>getTargetString()</i> - A convenience wrapper for ISymbiabBuildContext</li>
		<li>added <i>hasSTDCPPSupport()</i></li>
	</ul>

	<li><i>ISymbianBuildContext</i> - This interface is no longer implemented by ICarbideBuildConfiguration. Rather, it is now an abstracted interface for builders to provide base build data for an <i>ICarbideBuildConfiguration</i> instance</li>
	<p/>
	<ul>Due to this change, methods that take ISymbiabBuildContext as a parameter may have been using the ICarbideBuildConfiguraiton interface. For example, in <i>com.nokia.carbide.cdt.builder#DefaultMMPViewConfiguration.</i>
	 For these calls, simply add <i>.getBuildContext()</i> to the <i>ICarbideBuildConfiguration</i> instance to explicitly pass the <i>ISymbianBuildContext</i>.</ul>

	<li><i>IConnectionsManager</i> was updated to indicate it is not intended to be implemented by clients.
	<li>Added several new methods to support automated connection/device discovery agents and default connections.</li>
	<li>Deprecated <i>IClientServiceSiteUI</i> and adding new <i>IClientServiceSiteUI2</i> to support concept of default connection
	<ul>
		<li><i>getSelectedConnection()</i> and <i>selectConnection()</i> now use connection ids rather than connection objects
		<li>Exposing new selection status to allow reporting when default connection is not supported by client service
	</ul>
</ul>


<h3>Deprecated APIs</h3>
<p>The following Carbide APIs have been deprecated and should not be used anymore.  Please see the JavaDoc for these classes and methods for more information.</p>
<p>Since Carbide 1.2.0</p>
<ul>
  <li><i>N/A</i></li>
</ul>
<p>Since Carbide 1.2.1</p>
<ul>
  <li><i>N/A</i></li>
</ul>
<p>Since Carbide 1.2.2</p>
<ul>
  <li><i>com.nokia.carbide.cdt.builder.builder.CarbideCommandLauncher.getCmdExeLocation()</i></li>
  <li><i>com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder.callAbldBuildForConfiguration(ICarbideBuildConfiguration, IProgressMonitor, IConsole, int, boolean)</i></li>
  <li><i>com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder.invokeBldmakeBldFiles(ICarbideBuildConfiguration, CarbideCommandLauncher, IProgressMonitor, IConsole, String[], IPath)</i></li>
  <li><i>com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder.projectNeedsMakefileGeneration(IPath, ICarbideBuildConfiguration)</i></li>
  <li><i>com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo.getMMPTargetFile()</i></li>
  <li><i>com.nokia.carbide.cdt.builder.EpocEngineHelper.getPathToMainExecutable(ICarbideBuildConfiguration)</i></li>
  <li><i>com.nokia.carbide.cdt.builder.EpocEngineHelper.getPathToMainExecutable(ICarbideProjectInfo)</i></li>
  <li><i>com.nokia.carbide.cdt.builder.EpocEngineHelper.getTargetPathForMainExecutable(ICarbideProjectInfo)</i></li>
  <li><i>com.nokia.carbide.cdt.builder.EpocEngineHelper.getHostAndTargetResources(ICarbideProjectInfo)</i></li>
  <li><i>com.nokia.carbide.cdt.internal.builder.EnvironmentVarsInfo</i></li>
  <li><i>com.nokia.carbide.cdt.internal.builder.SISBuilderInfo</i></li>
  <li><i>com.nokia.carbide.cpp.sdk.core.getProjectVariantHRHMacros()</i></li>
</ul>
<p>Since Carbide 2.0</p>
<ul>
  <li>None </li>
</ul>

<p>Since Carbide 2.0.4</p>
<ul>
  <li><i>com.nokia.carbide.cdt.builder.project.IBuildArgumentsInfo</i></li>
  <li><i>com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration#getBuildArgumentsInfo( )</i></li>
</ul>

<p>Since Carbide 2.1</p>
<ul>
  <li><i>com.nokia.carbide.cdt.builder.EpocEngineHelper#getVariantTargetName(IMMPData mmpData, IPath target)</i></li>
</ul>
<ul>
  <li><i>com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder#generateAbldMakefileIfNecessary(ICarbideBuildConfiguration config, CarbideCommandLauncher launcher, IPath componentPath, boolean isTest)</i></li>
</ul>

<p>Since Carbide 3.0</p>
<ul>
  <li><i>ISymbiabSDK#getOSVersion</i> - use ISymbianSDK#getSupportedFeatures instead to test for properties of an SDK.</li>
</ul>

<h3>Removed APIs</h3>
<p>The following Carbide APIs have been removed and are no longer available to plug-ins.</p>
<p>Since Carbide 1.2.0</p>
<ul>
  <li><i>N/A</i></li>
</ul>
<p>Since Carbide 1.2.1</p>
<ul>
  <li><i>N/A</i></li>
</ul>
<p>Since Carbide 1.2.2</p>
<ul>
  <li><i>Some methods that were not intended to be made public were removed from the following classes and interfaces: </i></li>
  <ul>
    <li><i>com.nokia.carbide.cdt.builder.builder.CarbideCPPBuilder</i></li>
    <li><i>com.nokia.carbide.cdt.builder.ICarbideBuildManager</i></li>
    <li><i>com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo</i></li>
    <li><i>com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration</i></li>
  </ul>
</ul>
<p>Since Carbide 2.0</p>
<ul>
  <li>None</li>
</ul>

<p>Since Carbide 2.1.0</p>
<ul>
  <li>None</li>
</ul>

<p>Since Carbide 3.0</p>
<ul>
  <li><i>com.nokia.carbide.cpp.sdk.core#ISymbianSDK</i> removed several methods. Please refer to the source code.</li>
   <p/>
   <ul>
   		<li><i>getFilteredBuildConfigurations()</i> has been removed. Please use <i>ISymbianSDK#getBuildInfo(String builderId).getFilteredBuildConfigurations()</i> instead.  </li>
   		<li><i>getSDKVersion()</i> has been removed. Users should not use SDK and OS version any longer but use <i>ISymbianSDK#getSupportedFeatures()</i> instead.</li>
   </ul>
   
   <li><i>ICarbideBuildConfiguration</i> no longer implements <i>ISymbianBuildContext</i>. You will need to use the <i>ICarbideBuildConfiguration#getBuildContext()</i> to access most build context specific data.</li>
   
   <li><i>com.nokia.carbide.cpp.sdk.core#ISDKManager</i> removed several methods.</li>
   <p/>
   <ul>
   		<li><i>getSymbianMacroStore()</i> has been removed. </li>
   		<li><i>getBSFScannerEnabled()</i> has been removed.</li>
   		<li><i>enableBSFScanner(boolean enabled)</i> has been removed.</li>
   		<li><i>setPlatformList(List<BuildPlat> platList)</i> has been removed.</li>
   		<li><i>getPlatformList()</i> has been removed.</li>
   		<li><i>getCSLArmToolchainInstallPathAndCheckReqTools()</i> has been removed.</li>
   		<li><i>checkDevicesXMLSynchronized()</i> has been removed.</li>
   		<li><i>getSBSv2Version(boolean forceScan)</i> has been removed.</li>
   		<li><i>getMinimumSupportedSBSv2Version()</i> has been removed.</li>
   </ul>
   
</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>
</div></body>
</html>