11 * |
11 * |
12 */ |
12 */ |
13 |
13 |
14 package com.nokia.carbide.cpp.internal.api.sdk; |
14 package com.nokia.carbide.cpp.internal.api.sdk; |
15 |
15 |
16 import java.io.File; |
|
17 import java.net.URL; |
|
18 import java.util.Date; |
|
19 import java.util.List; |
16 import java.util.List; |
20 |
|
21 import org.eclipse.core.runtime.IPath; |
|
22 import org.osgi.framework.Version; |
|
23 |
17 |
24 import com.nokia.carbide.cpp.sdk.core.IBSFCatalog; |
18 import com.nokia.carbide.cpp.sdk.core.IBSFCatalog; |
25 import com.nokia.carbide.cpp.sdk.core.ISBVCatalog; |
19 import com.nokia.carbide.cpp.sdk.core.ISBVCatalog; |
26 import com.nokia.carbide.cpp.sdk.core.ISDKBuildInfo; |
20 import com.nokia.carbide.cpp.sdk.core.ISDKBuildInfo; |
27 import com.nokia.carbide.cpp.sdk.core.ISymbianSDK; |
|
28 |
21 |
29 /** |
22 /** |
30 * Interface for SBSv1 specific build information. |
23 * Interface for SBSv1 specific build information. |
31 * |
24 * |
32 */ |
25 */ |
33 public interface ISBSv1BuildInfo extends ISDKBuildInfo { |
26 public interface ISBSv1BuildInfo extends ISDKBuildInfo { |
34 |
|
35 /** Branch identifier to note Beech branch, OS 8.1a and prior */ |
|
36 public static final String EKA1_A_BRANCH_IDENTIFIER = "a"; |
|
37 /** Branch identifier to note S branch, OS 7.0x */ |
|
38 public static final String EKA1_S_BRANCH_IDENTIFIER = "s"; |
|
39 /** Branch identifier to note Cedar branch, OS 8.0b and later (not used for OS 9.x and greater) */ |
|
40 public static final String EKA2_B_BRANCH_IDENTIFIER = "b"; |
|
41 |
27 |
42 // Family Ids don't include the vendor |
28 // Family Ids don't include the vendor |
43 public static final String SERIES60_FAMILY_ID = "series60"; //deprecated |
29 public static final String SERIES60_FAMILY_ID = "series60"; //deprecated |
44 public static final String S60_FAMILY_ID = "s60"; |
30 public static final String S60_FAMILY_ID = "s60"; |
45 public static final String S80_FAMILY_ID = "Series80"; |
31 public static final String S80_FAMILY_ID = "Series80"; |
57 |
43 |
58 public static final String PUBLISHER_NOKIA = "Nokia, Inc."; |
44 public static final String PUBLISHER_NOKIA = "Nokia, Inc."; |
59 public static final String PUBLISHER_UIQ = "UIQ Technology"; |
45 public static final String PUBLISHER_UIQ = "UIQ Technology"; |
60 public static final String PUBLISHER_SYMBIAN = "Symbian, Ltd."; |
46 public static final String PUBLISHER_SYMBIAN = "Symbian, Ltd."; |
61 |
47 |
|
48 void clearPlatformMacros(); |
|
49 |
|
50 /** |
|
51 * Returns the list of all available platforms for a SDK. |
|
52 * @return a list of platform names which may be empty. |
|
53 */ |
|
54 List<String> getAvailablePlatforms(); |
|
55 |
|
56 /** |
|
57 * Get the BSF catalog for a SDK. |
|
58 */ |
|
59 IBSFCatalog getBSFCatalog(); |
|
60 |
62 /** |
61 /** |
63 * Returns the list of all platform macros for a SDK. |
62 * Returns the list of all platform macros for a SDK. |
64 * <p> |
63 * <p> |
65 * This is somewhat equivalent to calling "bldmake plat" on the command line |
64 * This is somewhat equivalent to calling "bldmake plat" on the command line |
66 * These are the macros that can be used in MMP and INF files. They are only given by name (no value) |
65 * These are the macros that can be used in MMP and INF files. They are only given by name (no value) |
67 * </p> |
66 * </p> |
68 * @param sdk Symbian SDK |
|
69 * @param platform the platform name |
67 * @param platform the platform name |
70 * @return a list of macros, which may be empty. |
68 * @return a list of macros, which may be empty. |
71 */ |
69 */ |
72 List<String> getPlatformMacros(ISymbianSDK sdk, String platform); |
70 List<String> getPlatformMacros(String platform); |
|
71 |
|
72 /** |
|
73 * Get the Symbian Binary Variation (SBV) catalog for a SDK. |
|
74 */ |
|
75 ISBVCatalog getSBVCatalog(); |
|
76 |
|
77 /** |
|
78 * Get a list of macros specific to the given target type, e.g. "__EXE__" or "__DLL__" |
|
79 * @param targettype |
|
80 * @return list of macro strings, may be empty |
|
81 */ |
|
82 List<String> getTargetTypeMacros(String targettype); |
73 |
83 |
74 /** |
84 /** |
75 * Get a list of macros that are used to distinguish a SDK. Typically only |
85 * Get a list of macros that are used to distinguish a SDK. Typically only |
76 * S603rd edition SDKs contain this information and it's used to differentiate between |
86 * S603rd edition SDKs contain this information and it's used to differentiate between |
77 * varios S60 SDK releases. Other vendors, such as UIQ may put their macros in the variant HRH file. |
87 * varios S60 SDK releases. Other vendors, such as UIQ may put their macros in the variant HRH file. |
78 * @param sdk Symbian SDK |
|
79 * @return A list of macros just returned by name. |
88 * @return A list of macros just returned by name. |
80 */ |
89 */ |
81 public List<String> getVendorSDKMacros(ISymbianSDK sdk); |
90 public List<String> getVendorSDKMacros(); |
82 |
91 |
83 /** |
92 /** |
84 * Returns the list of all available platforms for a SDK. |
93 * Tells whether or not the plug-in installer has sniffed this SDK for eclipse plug-ins to install. |
85 * @param sdk Symbian SDK |
94 * @return true if the SDK was scanned |
86 * @return a list of platform names which may be empty. |
|
87 */ |
95 */ |
88 List<String> getAvailablePlatforms(ISymbianSDK sdk); |
96 boolean isPreviouslyScanned(); |
89 |
|
90 /** |
|
91 * Returns the display name of a SDK. This is the com.vendor.family identifier. |
|
92 * @param sdk Symbian SDK |
|
93 * @return the name of a sdk. |
|
94 */ |
|
95 String getName(ISymbianSDK sdk); |
|
96 |
|
97 /** |
|
98 * Returns the vendor name of this SDK. This is parsed from the 'name' attribute from devices.xml. |
|
99 * @param sdk Symbian SDK |
|
100 * @return the vendor name of a sdk. |
|
101 */ |
|
102 String getVendor(ISymbianSDK sdk); |
|
103 |
|
104 /** |
|
105 * Returns the family name of a SDK. This is parsed from the 'vendor' attribute from devices.xml. |
|
106 * @param sdk Symbian SDK |
|
107 * @return the family name of a sdk. |
|
108 */ |
|
109 String getFamily(ISymbianSDK sdk); |
|
110 |
|
111 /** |
|
112 * Returns the SDK version string of a SDK. |
|
113 * @param sdk Symbian SDK |
|
114 * @return the SDK Version object. If the version cannot be determined it will be "0.0". |
|
115 */ |
|
116 Version getSDKVersion(ISymbianSDK sdk); |
|
117 |
|
118 /** |
|
119 * Returns the File object for the prefix file for a SDK. |
|
120 * @param sdk Symbian SDK |
|
121 * @return the File object for the prefix file, or |
|
122 * <code>null</code> if there isn't one for the SDK. |
|
123 */ |
|
124 File getPrefixFile(ISymbianSDK sdk); |
|
125 |
|
126 /** |
|
127 * Returns an IPath for the epoc32\tools directory of a SDK. |
|
128 * @param sdk Symbian SDK |
|
129 * @return an IPath for the epoc32\tools directory, or <code>null</code>. |
|
130 */ |
|
131 IPath getToolsPath(ISymbianSDK sdk); |
|
132 |
|
133 /** |
|
134 * Returns an IPath for the epoc32\release directory of a SDK. |
|
135 * @param sdk Symbian SDK |
|
136 * @return an IPath for the epoc32\release directory, or <code>null</code>. |
|
137 */ |
|
138 IPath getReleaseRoot(ISymbianSDK sdk); |
|
139 |
|
140 /** |
|
141 * Returns an IPath for the epoc32\include directory of a SDK. |
|
142 * @param sdk Symbian SDK |
|
143 * @return an IPath for the epoc32\include directory, or <code>null</code>. |
|
144 */ |
|
145 IPath getIncludePath(ISymbianSDK sdk); |
|
146 |
|
147 /** |
|
148 * Get the human readable description of a SDK. |
|
149 * @param sdk Symbian SDK |
|
150 * @return The description string, empty string for none. |
|
151 */ |
|
152 String getSDKDescription(ISymbianSDK sdk); |
|
153 |
|
154 /** |
|
155 * Get the creation date of the manifest.xml |
|
156 * @param sdk Symbian SDK |
|
157 * @return a Date object |
|
158 */ |
|
159 Date getCreationDate(ISymbianSDK sdk); |
|
160 |
|
161 /** |
|
162 * Get the licese file location in a SDK. Comes from manifest.xml. |
|
163 * @param sdk Symbian SDK |
|
164 * @return File, full path to the license file. |
|
165 */ |
|
166 File getLicenseFile(ISymbianSDK sdk); |
|
167 |
|
168 /** |
|
169 * Get the branch qualifier for the OS. Typically "a" or "b" to denote the Beech and Cedar code branchs respectively. |
|
170 * This is typically used to denote EKA1 from EKA2. |
|
171 * @param sdk Symbian SDK |
|
172 * @return the branch, or empty string if none. |
|
173 */ |
|
174 String getSDKOSBranch(ISymbianSDK sdk); |
|
175 |
|
176 /** |
|
177 * Get the HTTP location for the SDK publisher. Comes from manifest.xml. |
|
178 * @param sdk Symbian SDK |
|
179 * @return A (hopefully) valid URL. |
|
180 */ |
|
181 URL getPublisherURL(ISymbianSDK sdk); |
|
182 |
|
183 /** |
|
184 * Get the publisher name present in manifest.xml |
|
185 * @param sdk Symbian SDK |
|
186 * @return The name entry or empty string if not present. |
|
187 */ |
|
188 String getPublisherName(ISymbianSDK sdk); |
|
189 |
|
190 /** |
|
191 * Get a list of macros specific to the given target type, e.g. "__EXE__" or "__DLL__" |
|
192 * @param sdk Symbian SDK |
|
193 * @param targettype |
|
194 * @return list of macro strings, may be empty |
|
195 */ |
|
196 List<String> getTargetTypeMacros(ISymbianSDK sdk, String targettype); |
|
197 |
|
198 /** |
|
199 * Get the BSF catalog for a SDK. |
|
200 * @param sdk Symbian SDK |
|
201 */ |
|
202 IBSFCatalog getBSFCatalog(ISymbianSDK sdk); |
|
203 |
|
204 /** |
|
205 * Get the Symbian Binary Variation (SBV) catalog for a SDK. |
|
206 * @param sdk Symbian SDK |
|
207 * @since 2.0 |
|
208 */ |
|
209 ISBVCatalog getSBVCatalog(ISymbianSDK sdk); |
|
210 |
|
211 /** |
|
212 * Returns whether or not this is the default SDK in the devices.xml file. |
|
213 * @param sdk Symbian SDK |
|
214 * @return <code>true</code> if the SDK is the default, and |
|
215 * <code>false</code> otherwise |
|
216 */ |
|
217 boolean isDefaultSDK(ISymbianSDK sdk); |
|
218 |
97 |
219 /** |
98 /** |
220 * Tell if the SDK is Series60. |
99 * Tell if the SDK is Series60. |
221 * @param sdk Symbian SDK |
|
222 * @return true if the SDK is Series60 |
100 * @return true if the SDK is Series60 |
223 */ |
101 */ |
224 boolean isS60(ISymbianSDK sdk); |
102 boolean isS60(); |
225 |
103 |
226 /** |
104 void setPreviouslyScanned(boolean wasScanned); |
227 * Tells whether or not the plug-in installer has sniffed this SDK for eclipse plug-ins to install. |
|
228 * @param sdk Symbian SDK |
|
229 * @return true if the SDK was scanned |
|
230 * @since 2.0 |
|
231 */ |
|
232 boolean isPreviouslyScanned(ISymbianSDK sdk); |
|
233 |
|
234 void setLicenseFile(ISymbianSDK sdk, File licenseFile); |
|
235 void setPrefixFile(ISymbianSDK sdk, IPath prefixFile); |
|
236 void setSDKVersion(ISymbianSDK sdk, Version sdkVers); |
|
237 void setPublisherURL(ISymbianSDK sdk, URL pubURL); |
|
238 void setCreateDate(ISymbianSDK sdk, Date createDate); |
|
239 void setOSSDKBranch(ISymbianSDK sdk, String branch); |
|
240 void setSDKDescription(ISymbianSDK sdk, String descr); |
|
241 void setPublisherName(ISymbianSDK sdk, String pubName); |
|
242 void setName(ISymbianSDK sdk, String name); |
|
243 void setIsDefaultSDK(ISymbianSDK sdk, boolean isDefault); |
|
244 void setPreviouslyScanned(ISymbianSDK sdk, boolean wasScanned); |
|
245 |
105 |
246 } |
106 } |