core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/ISBSv2BuildInfo.java
author timkelly
Wed, 11 Aug 2010 18:14:52 -0500
branchC3_BUILDER_WORK
changeset 1811 b1772bf1197b
parent 1621 393b985a50f3
child 1871 4d38e1ac1cff
permissions -rw-r--r--
major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype), List<IDefine> getMetadataMacros(), List<IDefine> getBuildMacros().
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
     1
/*
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
     3
* All rights reserved.
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
     4
* This component and the accompanying materials are made available
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
     6
* which accompanies this distribution, and is available
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
     8
*
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
     9
* Initial Contributors:
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    11
*
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    12
*/
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    13
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    14
package com.nokia.carbide.cpp.internal.api.sdk;
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    15
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    16
import java.util.List;
1568
508bfdb3a934 Added caching of Raptor query data for aliases, products and configs.
stechong
parents: 1471
diff changeset
    17
import java.util.Map;
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    18
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    19
import org.eclipse.core.runtime.IPath;
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    20
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    21
import com.nokia.carbide.cpp.sdk.core.ISDKBuildInfo;
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    22
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    23
/**
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    24
 * Interface for SBSv2 specific build information.
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    25
 *
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    26
 */
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    27
public interface ISBSv2BuildInfo extends ISDKBuildInfo {
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    28
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    29
	/**
1811
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    30
	 * Returns the list of all platform/metadata macros for a given build alias (sbs configuration).
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    31
	 * <p>
1811
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    32
	 * These are the &lt;metadata/&gt; macros from a query to Raptor with 'sbs --query=config[<config>].
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    33
	 * These are the macros that can be used in MMP and INF files.
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    34
	 * </p>
1811
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    35
	 * @param sbs build alias
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    36
	 * @return a map of macros and value pairs, which may be empty.
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    37
	 */
1811
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    38
	Map<String, String> getMetadataMacros(String buildAlias);
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    39
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    40
	/**
1811
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    41
	 * Returns the list of all build macros fro a given build alias (sbs configuration).
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    42
	 * <p>
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    43
	 * These are the &lt;build/&gt; macros from a query to Raptor with 'sbs --query=config[<config>].
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    44
	 * These are the macros that can be used in C/C++ files.
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    45
	 * </p>
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    46
	 * @param buildAlias
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    47
	 * @return a map of macros and value pairs, which may be empty.
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    48
	 */
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    49
	public Map<String, String> getBuildMacros(String buildAlias);
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    50
	
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    51
	/**
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    52
	 * Get the full path to the prefix file defined under \epoc32\tools\variant\variant.cfg
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    53
	 * @return A path object, or null if the variant.cfg does not exist. This routine does not check to see if the returned path exists.
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    54
	 */
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    55
	public IPath getPrefixFromVariantCfg();
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    56
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    57
	/**
1811
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    58
	 * Get the macro for the given target type, e.g. "__EXE__" or "__DLL__"
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    59
	 * @param targettype
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    60
	 * @return list of macro strings, may be empty
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    61
	 */
1811
b1772bf1197b major refactor to wrap retieval of macros all around ISymbianBuildContext, to avoid need to access internal apis. Added getTargetTypeMacro(String targettype),
timkelly
parents: 1621
diff changeset
    62
	String getTargetTypeMacro(String targettype);
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    63
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    64
	/**
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    65
	 * Tells whether or not the plug-in installer has sniffed this SDK for eclipse plug-ins to install.
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    66
	 * @return true if the SDK was scanned.
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    67
	 * @since 2.0
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    68
	 */
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    69
	boolean isPreviouslyScanned();
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    70
1462
b38491fd06da More ISymbianSDK refactoring.
stechong
parents: 1434
diff changeset
    71
	void setPreviouslyScanned(boolean wasScanned);
1434
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    72
79471fd1fd69 First pass refactoring ISymbianSDK.
stechong
parents:
diff changeset
    73
}