srcanaapps/depexplorer/com.nokia.s60tools.appdep/src/com/nokia/s60tools/appdep/core/AppDepSettings.java
author noe\swadi
Sat, 09 Jan 2010 10:04:11 +0530
changeset 0 a02c979e8dfd
permissions -rw-r--r--
1. Copyrights changed to EPL 2. Feature updates mentioned in release notes.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     1
/*
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     2
* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     3
* All rights reserved.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     4
* This component and the accompanying materials are made available
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     6
* which accompanies this distribution, and is available
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     8
*
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     9
* Initial Contributors:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    11
*
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    12
* Contributors:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    13
*
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    14
* Description:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    15
*
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    16
*/
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    17
 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    18
 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    19
package com.nokia.s60tools.appdep.core;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    20
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    21
import java.io.File;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    22
import java.io.FilenameFilter;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    23
import java.io.IOException;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    24
import java.util.ArrayList;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    25
import java.util.Date;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    26
import java.util.HashSet;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    27
import java.util.Iterator;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    28
import java.util.NoSuchElementException;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    29
import java.util.Set;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    30
import java.util.Vector;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    31
import java.util.regex.Pattern;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    32
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    33
import com.nokia.s60tools.appdep.common.ProductInfoRegistry;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    34
import com.nokia.s60tools.appdep.core.data.CacheIndex;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    35
import com.nokia.s60tools.appdep.core.job.AppDepJobManager;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    36
import com.nokia.s60tools.appdep.exceptions.InvalidCmdLineToolSettingException;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    37
import com.nokia.s60tools.appdep.resources.Messages;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    38
import com.nokia.s60tools.appdep.util.AppDepConsole;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    39
import com.nokia.s60tools.sdk.SdkEnvInfomationResolveFailureException;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    40
import com.nokia.s60tools.sdk.SdkInformation;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    41
import com.nokia.s60tools.sdk.SdkManager;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    42
import com.nokia.s60tools.util.console.IConsolePrintUtility;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    43
import com.nokia.s60tools.util.debug.DbgUtility;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    44
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    45
/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    46
 * This class stores the AppDep tool related settings that are currently
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    47
 * in effect and offers services that are related to those settings. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    48
 * The class is implemented as singleton in order to make sure  
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    49
 * that there are no possibility to have conflicting intances
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    50
 * of this class created by many parties.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    51
 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    52
public class AppDepSettings {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    53
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    54
	//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    55
	// Public available constants
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    56
	//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    57
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    58
	 * Name of the executable that is used for RVCT tool chain to resolve
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    59
	 * dependency information.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    60
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    61
	public static final String RVCT_FROM_ELF_EXECUTABLE = "fromelf.exe"; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    62
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    63
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    64
	 * Abbreviated name for GNU Compiler Collection.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    65
	 * Used as command line parameter, therefore DO NOT CHANGE
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    66
	 * unless the command line interface is changed.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    67
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    68
	public static final String STR_GCC = "GCC"; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    69
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    70
	 * Abbreviated name for Arm Toolchain.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    71
	 * Used as command line parameter, therefore DO NOT CHANGE
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    72
	 * unless the command line interface is changed.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    73
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    74
	public static final String STR_GCCE = "GCCE"; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    75
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    76
	 * Abbreviated name for RealView Compilation Tools.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    77
	 * Used as command line parameter, therefore DO NOT CHANGE
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    78
	 * unless the command line interface is changed.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    79
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    80
	public static final String STR_RVCT = "RVCT"; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    81
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    82
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    83
	 * Epoc32 directory name constant.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    84
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    85
	public static final String STR_EPOC32_DIR = "epoc32";	 //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    86
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    87
 	//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    88
	// Private constants
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    89
	//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    90
	private static final String STR_RELEASE_DIR = "release";	 //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    91
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    92
	//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    93
	// Constants for unsupported targets
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    94
	//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    95
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    96
	// Not supporting targets that start with the following strings
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    97
	private static final String STR_WILDCHARD_WIN = "WIN"; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    98
	private static final String STR_WILDCHARD_TOOLS = "TOOLS"; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    99
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   100
	// Not supporting targets with following exact matches
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   101
	// => There are not currenly any exact math targets defined
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   102
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   103
	// Constants for GCC toolchain targets
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   104
	private static final String STR_ARMI = "ARMI"; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   105
	private static final String STR_ARM4 = "ARM4"; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   106
	private static final String STR_THUMB = "THUMB"; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   107
	// Wildchards for GCC toolchain targets
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   108
	private static final String STR_WILDCHARD_GCC_M = "M"; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   109
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   110
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   111
	 * Location relative to epoc32 directory for elftran.exe executable 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   112
	 * that is needed for creating cache files.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   113
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   114
	private static final String STR_ELFTRAN_EXE = "elftran.exe"; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   115
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   116
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   117
	 * Location relative to epoc32 directory for elftran.exe executable 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   118
	 * that is needed for creating cache files.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   119
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   120
	private static final String STR_PETRAN_EXE = "petran.exe"; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   121
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   122
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   123
	 * Directory where GCC toolchain tools exist.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   124
	 * Directory is relative to SDK's root directory.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   125
	 * @see #getGccToolsDir
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   126
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   127
	private static final String GCC_TOOL_REL_DIR = STR_EPOC32_DIR + "\\gcc\\bin"; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   128
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   129
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   130
	 * When SIS file(s) is selected for analysis, Target platform type is "sis".
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   131
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   132
	public static final String TARGET_TYPE_ID_SIS = "sis"; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   133
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   134
	private static Vector<AppDepSettings> settingInstancesVector = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   135
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   136
	// Supported toolchain objects...
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   137
	private Toolchain toolchainGCC;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   138
	private Toolchain toolchainGCCE;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   139
	private Toolchain toolchainRVCT;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   140
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   141
	//.. are stored in vector in order to make checking easier
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   142
	private Vector<Toolchain> supportedToolchainsVector = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   143
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   144
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   145
	 * Storing also those target types that are not supported by the tool.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   146
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   147
	private Vector<String> notSupportedTargetsVector = null;	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   148
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   149
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   150
	 * And making also wildchard check for the targets starting
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   151
	 * with some specified string.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   152
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   153
	private Vector<String> notSupportedTargetWildchardsVector = null;	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   154
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   155
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   156
	 * Information for currently selected 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   157
	 * SDK or Platform.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   158
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   159
	private SdkInformation currentlyUsedSdk = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   160
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   161
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   162
	 * Directory where GCCE toolchain tools exist.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   163
	 * For example, "C:\Program Files\CSL Arm Toolchain\bin"
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   164
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   165
	private String gcceToolsDir = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   166
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   167
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   168
	 * Directory where RVCT toolchain tools exist.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   169
	 * For example, "C:\Program Files\ARM\RVCT\Programs\2.2\503\win_32-pentium"
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   170
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   171
	private String rvctToolsDir = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   172
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   173
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   174
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   175
	 * Directory where cfilt.exe is located.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   176
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   177
	String externalProgramsPathName = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   178
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   179
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   180
	 * Current user preference for the used toolchain.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   181
	 * This updated automatically when the currently
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   182
	 * used target platform is set. The default value
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   183
	 * is based on the preferred toolchain choice, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   184
	 * and on the fact that which toolchains are
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   185
	 * available in the workstation's environment. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   186
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   187
	private IToolchain currentlyUsedToolChain = null;	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   188
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   189
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   190
	 * Preferences to be used for cache generation.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   191
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   192
	private CacheGenerationOptions cacheGenerOptions = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   193
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   194
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   195
	 * Current user preference for the selected targets.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   196
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   197
	private ArrayList<ITargetPlatform> currentlyUsedTargetPlatforms= null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   198
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   199
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   200
	 * The name of the currently analyzed component. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   201
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   202
	private String currentlyAnalyzedComponentName = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   203
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   204
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   205
	 * Currently supported build types are
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   206
	 * - BuildTypeDebug, and
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   207
	 * - BuildTypeRelease
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   208
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   209
	private IBuildType buildType = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   210
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   211
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   212
	 * This is used to cache the amount of components
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   213
	 * for the recently queried platform. The component
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   214
	 * query may take a considerable long time, and therefore
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   215
	 * caching improves performance.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   216
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   217
	private int mostRecentlyQueriedComponentCount;	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   218
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   219
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   220
	 * Path where print report is recently exported. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   221
	 * Used to set as default path when export functionality is used
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   222
	 * again during same session.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   223
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   224
	private String exportPrintReportPath = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   225
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   226
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   227
	 * If XML report (file) is generated aswell when Exporting html report.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   228
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   229
	private boolean exportXMLreport = false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   230
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   231
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   232
	 * Path to resources. XSL file is located in there.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   233
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   234
	private String resourcesPath = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   235
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   236
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   237
	 * XSL file name, default value "PrintReport.xsl"
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   238
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   239
	private String XSLFileName = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   240
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   241
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   242
	 * XSL file name, default value "IsUsedByReport.xsl"
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   243
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   244
	private String isUsedByXSLFileName = null;	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   245
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   246
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   247
	 * Listeners who want to know about the changes in the current settings.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   248
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   249
	private Vector<IAppDepSettingsChangedListener> settingListenersVector;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   250
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   251
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   252
	 * SIS files for analysis
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   253
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   254
	private String[] sisFilesForAnalysis = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   255
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   256
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   257
	 * If SDK Selection Wizard is running in SIS analysis mode 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   258
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   259
	private boolean isInSISFileAnalysisMode = false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   260
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   261
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   262
	 * Cache data loading flag.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   263
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   264
	private boolean isCacheDataLoadingOngoing = false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   265
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   266
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   267
	 * Cache update flag is set to <code>true</code> when target platform is not changed 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   268
	 * but target cache has been updated and needs reloading.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   269
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   270
	private boolean cacheUpdated;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   271
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   272
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   273
	 * Target platform for the currently analyzed component.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   274
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   275
	private ITargetPlatform currentlyAnalyzedComponentTargetPlatform = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   276
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   277
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   278
	 * Accessor for currently active settings.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   279
	 * @return Returns currently active instance.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   280
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   281
	public static AppDepSettings getActiveSettings(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   282
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   283
		AppDepSettings instance = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   284
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   285
		if( settingInstancesVector == null ){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   286
			settingInstancesVector = new Vector<AppDepSettings>();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   287
			instance = new AppDepSettings();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   288
			settingInstancesVector.add(instance);			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   289
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   290
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   291
			instance = (AppDepSettings) settingInstancesVector.lastElement();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   292
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   293
		return instance;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   294
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   295
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   296
	/* (non-Javadoc)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   297
	 * @see java.lang.Object#clone()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   298
	 */	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   299
	@SuppressWarnings("unchecked") //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   300
	public Object clone(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   301
		AppDepSettings clone = new AppDepSettings();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   302
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   303
		// Doing actual cloning
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   304
		clone.toolchainGCC = toolchainGCC;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   305
		clone.toolchainGCCE = toolchainGCCE;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   306
		clone.toolchainRVCT = toolchainRVCT;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   307
		clone.supportedToolchainsVector = (Vector<Toolchain>) supportedToolchainsVector.clone();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   308
		clone.notSupportedTargetsVector  = (Vector<String>) notSupportedTargetsVector .clone();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   309
		clone.notSupportedTargetWildchardsVector  = (Vector<String>) notSupportedTargetWildchardsVector .clone();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   310
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   311
		clone.currentlyUsedSdk = currentlyUsedSdk;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   312
		clone.gcceToolsDir = gcceToolsDir;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   313
		clone.rvctToolsDir = rvctToolsDir;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   314
		clone.externalProgramsPathName = externalProgramsPathName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   315
		clone.currentlyUsedToolChain = currentlyUsedToolChain;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   316
		clone.cacheGenerOptions = cacheGenerOptions;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   317
		ITargetPlatform[] targetPlatformArr = getCurrentlyUsedTargetPlatforms();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   318
		for (int i = 0; i < targetPlatformArr.length; i++) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   319
			ITargetPlatform targetPlatformId = targetPlatformArr[i];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   320
			clone.currentlyUsedTargetPlatforms.add(targetPlatformId);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   321
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   322
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   323
		clone.buildType = buildType;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   324
		clone.currentlyAnalyzedComponentName = currentlyAnalyzedComponentName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   325
		clone.currentlyAnalyzedComponentTargetPlatform = currentlyAnalyzedComponentTargetPlatform;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   326
		clone.exportPrintReportPath = exportPrintReportPath;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   327
		clone.resourcesPath = resourcesPath;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   328
		clone.XSLFileName = XSLFileName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   329
		clone.isUsedByXSLFileName = isUsedByXSLFileName;		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   330
		clone.settingListenersVector = (Vector<IAppDepSettingsChangedListener>) settingListenersVector.clone();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   331
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   332
		if(sisFilesForAnalysis != null){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   333
			clone.sisFilesForAnalysis = new String[sisFilesForAnalysis.length];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   334
			for(int i = 0; i<sisFilesForAnalysis.length; i++){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   335
				clone.sisFilesForAnalysis[i] = new String( sisFilesForAnalysis[i] );
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   336
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   337
		}else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   338
			clone.sisFilesForAnalysis = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   339
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   340
		clone.isInSISFileAnalysisMode = isInSISFileAnalysisMode;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   341
		clone.cacheUpdated = cacheUpdated;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   342
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   343
		return clone;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   344
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   345
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   346
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   347
	 * Clones the currently active instance and sets
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   348
	 * clone as new active instance.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   349
	 * @return Returns cloned instance.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   350
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   351
	public static AppDepSettings cloneAndAddAsNewActiveInstance(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   352
		AppDepSettings existing = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   353
		AppDepSettings cloned = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   354
		// We trust here that there is at least a single active instance
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   355
		existing = (AppDepSettings) settingInstancesVector.lastElement();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   356
		cloned = (AppDepSettings) existing.clone();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   357
		settingInstancesVector.add(cloned);				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   358
		return cloned;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   359
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   360
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   361
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   362
	 * Sets given settings instance as currently active settings.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   363
	 * @param newActiveSettings New settings to be set as current
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   364
	 *                          active settings.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   365
	 * @return Returns the settings that were just set as currently
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   366
	 *         active settings.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   367
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   368
	public static AppDepSettings setAsNewActiveInstance(AppDepSettings newActiveSettings){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   369
		settingInstancesVector.add(newActiveSettings);	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   370
		return newActiveSettings;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   371
	}	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   372
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   373
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   374
	 * Creates a new uninitialized instance and sets it
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   375
	 * as active instance. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   376
	 * @return Returns a new instance.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   377
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   378
	public static AppDepSettings newActiveInstance(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   379
		AppDepSettings instance = null;		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   380
		if( settingInstancesVector == null ){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   381
			settingInstancesVector = new Vector<AppDepSettings>();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   382
		}		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   383
		instance = new AppDepSettings();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   384
		settingInstancesVector.add(instance);				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   385
		return instance;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   386
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   387
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   388
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   389
	 * Check for the existence of previous active instances.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   390
	 * @return Returns <code>true</code> if there is an earlier instance, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   391
	 *         otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   392
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   393
	public static boolean hasPreviousActiveInstance(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   394
		if( settingInstancesVector != null ){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   395
			return (settingInstancesVector.size() > 1);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   396
		}		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   397
		return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   398
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   399
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   400
	public static void removePreviousInstances(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   401
		if( settingInstancesVector != null ){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   402
			if(settingInstancesVector.size() > 0){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   403
				Vector<AppDepSettings> preserveThese = new Vector<AppDepSettings>();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   404
				preserveThese.add(settingInstancesVector.lastElement());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   405
				// Deleting all the other elements than the last one
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   406
				settingInstancesVector.retainAll(preserveThese);				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   407
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   408
		}		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   409
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   410
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   411
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   412
	 * Returns the previously active instance and removes the
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   413
	 * currently active instance.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   414
	 * @return Returns the previously active instance.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   415
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   416
	public static AppDepSettings restorePreviousActiveInstance(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   417
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   418
		if(! hasPreviousActiveInstance()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   419
			throw new RuntimeException(Messages.getString("AppDepSettings.Restore_NonExisting_Instance")); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   420
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   421
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   422
		AppDepSettings instance = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   423
		Object currentlyActive = settingInstancesVector.lastElement();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   424
		settingInstancesVector.remove(currentlyActive);			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   425
		instance = (AppDepSettings) settingInstancesVector.lastElement();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   426
		return instance;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   427
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   428
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   429
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   430
	 * Default constructor 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   431
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   432
	private AppDepSettings(){		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   433
		gcceToolsDir = new String(""); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   434
		rvctToolsDir = new String(""); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   435
		externalProgramsPathName = new String(""); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   436
		currentlyUsedTargetPlatforms = new ArrayList<ITargetPlatform>();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   437
		settingListenersVector = new Vector<IAppDepSettingsChangedListener>();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   438
		buildType = new BuildTypeRelease();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   439
		initializeSupportedToolchains();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   440
		initializeNotSupportedTargets();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   441
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   442
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   443
	private void initializeSupportedToolchains(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   444
		supportedToolchainsVector = new Vector<Toolchain>();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   445
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   446
		// Creating toolchain instances
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   447
		toolchainGCC = new Toolchain(STR_GCC, Messages.getString("AppDepSettings.GNU_Comp_Coll"), false, true); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   448
		// GCCE is used as preferred default toolchain when it can be used
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   449
		toolchainGCCE = new Toolchain(STR_GCCE, Messages.getString("AppDepSettings.CSL_Arm_Toolchain"), true); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   450
		toolchainRVCT = new Toolchain(STR_RVCT, Messages.getString("AppDepSettings.RVCT_Comp_Tools"), false); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   451
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   452
		supportedToolchainsVector.add(toolchainGCC);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   453
		supportedToolchainsVector.add(toolchainGCCE);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   454
		supportedToolchainsVector.add(toolchainRVCT);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   455
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   456
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   457
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   458
	 * Building here a list of not supported targets.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   459
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   460
	private void initializeNotSupportedTargets(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   461
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   462
		// Initializing exact match targets
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   463
		notSupportedTargetsVector = new Vector<String>();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   464
		// => There are not currenly any exact math targets defined
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   465
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   466
		// Initializing startsWith match targets
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   467
		notSupportedTargetWildchardsVector = new Vector<String>();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   468
		notSupportedTargetWildchardsVector.add(STR_WILDCHARD_WIN);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   469
		notSupportedTargetWildchardsVector.add(STR_WILDCHARD_TOOLS);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   470
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   471
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   472
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   473
	 * Returns tools directory for the currently used SDK/Platform. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   474
	 * @return Tools directory for the currently used SDK/Platform.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   475
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   476
	private String getToolsDirForCurrentlyUsedSdk() {		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   477
		return removeEndingBackslash (getCurrentlyUsedSdk().getEpoc32ToolsDir());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   478
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   479
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   480
    /**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   481
     * Returns path to cache directory relative to tools directory.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   482
	 * The directory name MUST not contain ending backslash!!!
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   483
     * @return Path to cache directory relative to tools directory.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   484
     */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   485
    private String getCachePathRelativeToToolsDir(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   486
    	return ProductInfoRegistry.getS60RndToolsDir()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   487
				+ File.separatorChar 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   488
				+ ProductInfoRegistry.getAppDepCacheDir();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   489
    }
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   490
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   491
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   492
	 * Returns cache base directory for the currently used SDK/Platform.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   493
	 * The directory name MUST not contain ending backslash!!!
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   494
	 * @return Cache base directory for the currently used SDK/Platform.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   495
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   496
	public String getCacheBaseDirForCurrentlyUsedSdk() {		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   497
		return getToolsDirForCurrentlyUsedSdk() 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   498
				+ File.separatorChar
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   499
				+ getCachePathRelativeToToolsDir();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   500
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   501
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   502
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   503
	 * Returns the cache directories pointed by current settings. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   504
	 * @return Returns the cacheBaseDir.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   505
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   506
	public String[] getCacheDirs() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   507
		ITargetPlatform[] targets = getCurrentlyUsedTargetPlatforms();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   508
		int targetCount = targets.length;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   509
		String[] resultArr = new String[targetCount];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   510
		for (int i = 0; i < targets.length; i++) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   511
			String targetPlatformId = targets[i].getId();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   512
			resultArr[i] = getCacheDirForTarget (targetPlatformId);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   513
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   514
		return resultArr;	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   515
	}	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   516
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   517
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   518
	 * Returns the cache directory for given target. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   519
	 * @param targetPlatformId Id for target platform to be used in directory name.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   520
	 * @return Returns the cache directory for given target.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   521
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   522
	public String getCacheDirForTarget(String targetPlatformId) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   523
		if(targetPlatformId.equalsIgnoreCase(AppDepSettings.TARGET_TYPE_ID_SIS)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   524
			return getCacheBaseDirForCurrentlyUsedSdk()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   525
				+ File.separatorChar
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   526
				+ removeEndingBackslash (targetPlatformId);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   527
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   528
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   529
			return getCacheBaseDirForCurrentlyUsedSdk()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   530
				+ File.separatorChar
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   531
				+ removeEndingBackslash (targetPlatformId)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   532
				+ File.separatorChar
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   533
				+ removeEndingBackslash (getBuildType().getBuildTypeName());	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   534
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   535
	}	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   536
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   537
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   538
	 * Returns the cache directory for given arguments. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   539
	 * @return Returns the cache directory for given arguments.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   540
	 */	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   541
	private String getCacheDir(SdkInformation sdkInfo, String targetPlatformName, IBuildType buildType) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   542
		String cacheDir = removeEndingBackslash (sdkInfo.getEpoc32ToolsDir()) 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   543
					+ File.separatorChar
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   544
					+ getCachePathRelativeToToolsDir()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   545
					+ File.separatorChar					
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   546
					+ removeEndingBackslash (targetPlatformName )
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   547
					+ File.separatorChar
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   548
					+ removeEndingBackslash (buildType.getBuildTypeName());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   549
		return cacheDir;	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   550
	}	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   551
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   552
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   553
	 * Returns absolute pathname to the currently 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   554
	 * used cache file for given target.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   555
	 * @param targetPlatformId Id for target platform to be used in directory name.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   556
	 * @return Returns currently used cache file's path name.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   557
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   558
	public String getCacheFileAbsolutePathName(String targetPlatformId) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   559
		return getCacheDirForTarget(targetPlatformId)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   560
			+ File.separatorChar 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   561
			+ ProductInfoRegistry.getCacheFileName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   562
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   563
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   564
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   565
	 * Returns absolute pathname to the symbols table file of the 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   566
	 * currently used cache directory  for given target.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   567
	 * @param targetPlatformId Id for target platform to be used in directory name.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   568
	 * @return Returns currently used symbols table file's path name.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   569
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   570
	public String getCacheSymbolsTableFileAbsolutePathName(String targetPlatformId) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   571
		return getCacheDirForTarget(targetPlatformId)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   572
			+ File.separatorChar 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   573
			+ ProductInfoRegistry.getCacheSymbolsFileName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   574
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   575
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   576
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   577
	 * Returns absolute pathname to the cache file from the
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   578
	 * SDK ID and Target Platform name given as parameters.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   579
	 * @param sdkInfo SDK information object. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   580
	 * @param targetPlatformId Target Platform Name string
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   581
	 * @param buildType Build type.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   582
	 * @return Absolute pathname to the cache file.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   583
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   584
	public String getCacheFileAbsolutePathNameForSdkAndPlatform(SdkInformation sdkInfo, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   585
																String targetPlatformId,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   586
																IBuildType buildType) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   587
		return 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   588
		getCacheDir(sdkInfo,targetPlatformId,buildType) 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   589
				+ File.separatorChar 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   590
				+ ProductInfoRegistry.getCacheFileName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   591
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   592
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   593
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   594
	 * Checks is the given Target Platform is cached.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   595
	 * 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   596
	 * @param sdkId
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   597
	 *            SDK ID string.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   598
	 * @param targetPlatformName
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   599
	 *            Target Platform Name string
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   600
	 * @param buildType
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   601
	 *            Build type.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   602
	 * @return Returns <code>true</code> if the target platform is cached,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   603
	 *         otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   604
	 */	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   605
	public boolean isTargetPlatformCached(String sdkId,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   606
			String targetPlatformName, IBuildType buildType) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   607
		SdkInformation[] infos;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   608
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   609
		try {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   610
			infos = SdkManager.getSdkInformation();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   611
			for (int i = 0; i < infos.length; i++) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   612
				SdkInformation info = infos[i];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   613
				if (sdkId.equals(info.getSdkId())) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   614
					return isTargetPlatformCached(info, targetPlatformName,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   615
							buildType);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   616
				}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   617
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   618
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   619
		} catch (SdkEnvInfomationResolveFailureException e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   620
			e.printStackTrace();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   621
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   622
		return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   623
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   624
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   625
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   626
	 * Checks is the given Target Platform is cached.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   627
	 * 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   628
	 * @param sdkInfo
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   629
	 *             SDK information object.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   630
	 * @param targetPlatformName
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   631
	 *            Target Platform Name string
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   632
	 * @param buildType
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   633
	 *            Build type.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   634
	 * @return Returns <code>true</code> if the target platform is cached,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   635
	 *         otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   636
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   637
	public boolean isTargetPlatformCached(SdkInformation sdkInfo,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   638
			String targetPlatformName, IBuildType buildType) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   639
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   640
		String cacheFilePath = getCacheFileAbsolutePathNameForSdkAndPlatform(
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   641
				sdkInfo, targetPlatformName, buildType);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   642
		File cacheFile = new File(cacheFilePath);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   643
		if (cacheFile.exists()) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   644
			// There is no temporary file and cache file exists
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   645
			return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   646
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   647
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   648
		// Cache file does not exist
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   649
		return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   650
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   651
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   652
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   653
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   654
	 * Returns the absolute path pointing to cfilt program.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   655
	 * @return Returns pathname to cfilt program
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   656
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   657
	public String getCfiltProgramPathName() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   658
		return getExternalProgramsPathName()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   659
				+ File.separatorChar 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   660
				+ ProductInfoRegistry.getCfiltBinaryName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   661
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   662
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   663
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   664
	 * Returns the absolute path pointing to AppDep
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   665
	 * command line executable.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   666
	 * @return Returns pathname to appdep program
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   667
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   668
	public String getAppDepProgramPathName() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   669
		return getExternalProgramsPathName()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   670
				+ File.separatorChar 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   671
				+ ProductInfoRegistry.getAppDepBinaryName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   672
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   673
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   674
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   675
	 * @return Returns the externalProgramsPathName.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   676
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   677
	public String getExternalProgramsPathName() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   678
		return externalProgramsPathName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   679
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   680
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   681
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   682
	 * @param externalProgramsPathName The externalProgramsPathName to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   683
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   684
	public void setExternalProgramsPathName(String externalProgramsPathName) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   685
		this.externalProgramsPathName = removeEndingBackslash(externalProgramsPathName);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   686
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   687
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   688
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   689
	 * Returns the currently used target platforms.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   690
	 * @return Array of currently used target platforms.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   691
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   692
	public ITargetPlatform[]  getCurrentlyUsedTargetPlatforms() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   693
		return currentlyUsedTargetPlatforms.toArray(new TargetPlatform[0]);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   694
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   695
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   696
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   697
	 * Checks if the given target platform is supported.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   698
	 * @param targetPlatform Target platform to be checked.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   699
	 * @return Returns <code>true</code> if the given target platform 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   700
	 * is supported, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   701
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   702
	public boolean isSupportedTargetPlatform(String targetPlatform){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   703
		// Target is not supported if it is listed in predefined list
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   704
		for (Iterator<String> iter = notSupportedTargetsVector.iterator(); iter.hasNext();) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   705
			String str = iter.next();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   706
			if( str.compareToIgnoreCase( targetPlatform ) == 0 ){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   707
				return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   708
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   709
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   710
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   711
		// Target is also not supported if it is listed in predefined list of startsWith matches
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   712
		for (Iterator<String> iter = notSupportedTargetWildchardsVector.iterator(); iter.hasNext();) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   713
			String str = iter.next().toLowerCase();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   714
			if( targetPlatform.toLowerCase().startsWith(str) ){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   715
				return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   716
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   717
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   718
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   719
		// Not defined as unsupported, therefore supported
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   720
		return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   721
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   722
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   723
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   724
	 * Sets new targets as currently used ones.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   725
	 * Updates also currently used toolchain accordingly.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   726
	 * This method must be called with targets that maps
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   727
	 * to the same toolchain, and all given targets
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   728
	 * must be supported.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   729
	 * @param targetPlatformNameArr The new target set to be set as currently ised targets..
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   730
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   731
	public void setCurrentlyUsedTargetPlatforms(String[] targetPlatformNameArr)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   732
										throws InvalidCmdLineToolSettingException {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   733
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   734
		// Supported one ...clearing old settings
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   735
		clearCurrentlyUsedTargetPlatforms();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   736
		// Temporary variable to find out correct toolchain settings
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   737
		IToolchain toolchainSetting = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   738
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   739
		// Checking that no empty array was passed
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   740
		if(targetPlatformNameArr.length > 0){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   741
			toolchainSetting = getDefaultToolchainForTarget(targetPlatformNameArr[0]);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   742
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   743
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   744
			throw new InvalidCmdLineToolSettingException( Messages.getString("AppDepSettings.Target_Array_Is_Empty") );  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   745
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   746
		// Checking validity of the settings and storing the given targets
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   747
		for (int i = 0; i < targetPlatformNameArr.length; i++) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   748
			String targetPlatformId = targetPlatformNameArr[i];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   749
			if(! isSupportedTargetPlatform(targetPlatformId)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   750
				// Not found, regarded as unsupported
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   751
				throw new InvalidCmdLineToolSettingException( Messages.getString("AppDepSettings.Target")  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   752
						+ targetPlatformNameArr  
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   753
						+ Messages.getString("AppDepSettings.NotSupported") ); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   754
			}			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   755
			// Check was OK => storing the target information
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   756
			currentlyUsedTargetPlatforms.add(new TargetPlatform(targetPlatformId));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   757
			// All items must map to the same toolchain
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   758
			IToolchain toolchainSettingTmp = getDefaultToolchainForTarget(targetPlatformId);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   759
			if(! toolchainSettingTmp.equals(toolchainSetting)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   760
				throw new InvalidCmdLineToolSettingException( Messages.getString("AppDepSettings.Targets_Does_Not_Map_To_Same_Toolchain") );  //$NON-NLS-1$				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   761
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   762
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   763
		// Finally setting the used toolchain accordingly
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   764
		setCurrentlyUsedToolChain(toolchainSetting);							
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   765
		// Notifying possible listeners
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   766
		notifySettingsListeners(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   767
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   768
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   769
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   770
	 * Returns the used toolchain.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   771
	 * @return Returns the currentlyUsedToolChain.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   772
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   773
	public IToolchain getCurrentlyUsedToolChain() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   774
		return currentlyUsedToolChain;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   775
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   776
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   777
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   778
	 * Returns the used toolchain's name.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   779
	 * @return Returns the currently used toolchains name.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   780
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   781
	public String getCurrentlyUsedToolChainName() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   782
		return currentlyUsedToolChain.getToolchainName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   783
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   784
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   785
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   786
	 * Sets new toolchain as currently used one.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   787
	 * @param newToolChainSetting The currentlyUsedToolChain to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   788
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   789
	private void setCurrentlyUsedToolChain(IToolchain newToolChainSetting) 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   790
										throws InvalidCmdLineToolSettingException {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   791
		// Can we found the toolchain among the supported ones
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   792
		for (Iterator<Toolchain> iter = supportedToolchainsVector.iterator(); iter.hasNext();) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   793
			Toolchain tch = iter.next();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   794
			String str = tch.getToolchainName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   795
			if( str.compareToIgnoreCase( newToolChainSetting.getToolchainName() ) == 0 ){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   796
				this.currentlyUsedToolChain = newToolChainSetting;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   797
				return;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   798
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   799
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   800
		// Not found, regarded as unsupported
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   801
		throw new InvalidCmdLineToolSettingException( Messages.getString("AppDepSettings.Toolchain")  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   802
				+ newToolChainSetting  
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   803
				+ Messages.getString("AppDepSettings.NotSupported") ); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   804
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   805
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   806
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   807
	 * Returns the used directory for GCCE tools.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   808
	 * @return Returns the gcceToolsDir.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   809
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   810
	public String getGcceToolsDir() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   811
		return gcceToolsDir;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   812
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   813
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   814
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   815
	 * @param gcceToolsDir The gcceToolsDir to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   816
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   817
	public void setGcceToolsDir(String gcceToolsDir) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   818
		this.gcceToolsDir = removeEndingBackslash(gcceToolsDir);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   819
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   820
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   821
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   822
	 * Gets GCCE toolchain installation status.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   823
	 * @return Returns <code>true</code> if toolchain is installed,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   824
	 *         otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   825
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   826
	public boolean isGcceToolsInstalled() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   827
		return toolchainGCCE.isInstalled();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   828
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   829
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   830
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   831
	 * Sets GCCE toolchain installation status.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   832
	 * @param isGcceToolsInstalled The installation status to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   833
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   834
	public void setGcceToolsInstalled(boolean isGcceToolsInstalled) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   835
		toolchainGCCE.setIsInstalled(isGcceToolsInstalled);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   836
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   837
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   838
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   839
	 * Gets RVCT toolchain installation status.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   840
	 * @return Returns <code>true</code> if toolchain is installed,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   841
	 *         otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   842
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   843
	public boolean isRvctToolsInstalled() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   844
		return toolchainRVCT.isInstalled();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   845
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   846
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   847
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   848
	 * Sets RVCT toolchain installation status.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   849
	 * @param isRvctToolsInstalled The installation status to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   850
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   851
	public void setRvctToolsInstalled(boolean isRvctToolsInstalled) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   852
		toolchainRVCT.setIsInstalled(isRvctToolsInstalled);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   853
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   854
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   855
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   856
	 * Returns the used root directory of SDK.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   857
	 * @return Returns the sdkRootDir.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   858
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   859
	public String getSdkRootDir() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   860
		if(currentlyUsedSdk != null){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   861
			return removeEndingBackslash(currentlyUsedSdk.getEpocRootDir());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   862
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   863
		return null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   864
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   865
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   866
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   867
	 * Returns the used directory for RVCT tools.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   868
	 * @return Returns the rvctToolsDir.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   869
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   870
	public String getRvctToolsDir() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   871
		return rvctToolsDir;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   872
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   873
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   874
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   875
	 * Sets the used directory for RVCT tools.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   876
	 * @param rvctToolsDir The rvctToolsDir to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   877
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   878
	public void setRvctToolsDir(String rvctToolsDir) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   879
		this.rvctToolsDir = removeEndingBackslash(rvctToolsDir);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   880
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   881
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   882
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   883
	 * @return Returns the buildType.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   884
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   885
	public IBuildType getBuildType() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   886
		return buildType;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   887
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   888
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   889
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   890
	 * Checks that given parameter referes to supported build
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   891
	 * type, and sets the new type if it is supported.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   892
	 * @param buildTypeString The name of build type to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   893
	 * @throws InvalidCmdLineToolSettingException If the given build type is not supported.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   894
	 */		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   895
	public void setBuildType(String buildTypeString) throws InvalidCmdLineToolSettingException {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   896
		if( buildTypeString.equalsIgnoreCase(BuildTypeRelease.NAME)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   897
			this.buildType = new BuildTypeRelease();			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   898
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   899
		else if( buildTypeString.equalsIgnoreCase(BuildTypeDebug.NAME)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   900
			this.buildType = new BuildTypeDebug();			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   901
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   902
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   903
			// Not found, regarded as unsupported
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   904
			throw new InvalidCmdLineToolSettingException( Messages.getString("AppDepSettings.Build_Type")  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   905
					+ buildTypeString  
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   906
					+ Messages.getString("AppDepSettings.NotSupported") );			 //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   907
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   908
		// Notifying possible listeners
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   909
		notifySettingsListeners(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   910
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   911
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   912
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   913
	 * Checks that given parameter referes to supported build
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   914
	 * type, and sets the new type if it is supported.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   915
	 * @param buildType The build type object to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   916
	 * @throws InvalidCmdLineToolSettingException If the given build type is not supported.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   917
	 */	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   918
	public void setBuildType(IBuildType buildType) throws InvalidCmdLineToolSettingException {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   919
		if( (buildType instanceof BuildTypeDebug)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   920
			||
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   921
			(buildType instanceof BuildTypeRelease) 	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   922
			){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   923
			this.buildType = buildType;			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   924
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   925
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   926
			// Not found, regarded as unsupported
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   927
			throw new InvalidCmdLineToolSettingException( Messages.getString("AppDepSettings.Build_Type")  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   928
					+ buildType.getBuildTypeName()  
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   929
					+ Messages.getString("AppDepSettings.NotSupported") );			 //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   930
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   931
		// Notifying possible listeners
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   932
		notifySettingsListeners(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   933
	}	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   934
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   935
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   936
	 * Maps the given build type string into corresponding
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   937
	 * build object type if the given type is supported..
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   938
	 * @param buildTypeString The name of build type to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   939
	 * @throws InvalidCmdLineToolSettingException If the given build type is not supported.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   940
	 */		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   941
	public IBuildType getBuildTypeFromString(String buildTypeString) throws InvalidCmdLineToolSettingException {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   942
		if( buildTypeString.equalsIgnoreCase(BuildTypeRelease.NAME)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   943
			return new BuildTypeRelease();			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   944
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   945
		else if( buildTypeString.equalsIgnoreCase(BuildTypeDebug.NAME)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   946
			return new BuildTypeDebug();			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   947
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   948
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   949
		// Not found, regarded as unsupported
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   950
		throw new InvalidCmdLineToolSettingException( Messages.getString("AppDepSettings.Build_Type")  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   951
				+ buildTypeString  
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   952
				+ Messages.getString("AppDepSettings.NotSupported") );			 //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   953
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   954
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   955
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   956
	 * Builds release dir based on the already known directory
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   957
	 * components.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   958
	 * @return Returns the release directory.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   959
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   960
	public String getReleaseDir() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   961
		return 	getSdkRootDir()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   962
					+ File.separator
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   963
					+ STR_EPOC32_DIR
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   964
					+ File.separator
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   965
					+ STR_RELEASE_DIR;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   966
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   967
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   968
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   969
	 * Builds the build based on the already known directory
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   970
	 * components.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   971
	 * @param targetPlatformId Target platform to get build directory for.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   972
	 * @return Returns the build directory.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   973
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   974
	public String getBuildDir(String targetPlatformId) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   975
		return 	getReleaseDir()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   976
					+ File.separator
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   977
					+ targetPlatformId
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   978
					+ File.separator
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   979
					+ getBuildType().getBuildTypeName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   980
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   981
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   982
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   983
	 * Builds the build based on the already known 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   984
	 * directory components.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   985
	 * @return Returns the build directories 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   986
	 *          as set for currently selected target.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   987
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   988
	public Set<String> getBuildDirsAsSet() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   989
		Set<String> buildDirSet = new HashSet<String>();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   990
		ITargetPlatform[] targets = getCurrentlyUsedTargetPlatforms();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   991
		for (int i = 0; i < targets.length; i++) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   992
			ITargetPlatform platform = targets[i];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   993
			String buildDir = getReleaseDir()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   994
									+ File.separator
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   995
									+ platform.getId()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   996
									+ File.separator
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   997
									+ getBuildType().getBuildTypeName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   998
			buildDirSet.add(buildDir);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   999
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1000
		return buildDirSet;	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1001
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1002
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1003
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1004
	 * @return Returns the currentlyUsedSdk.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1005
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1006
	public SdkInformation getCurrentlyUsedSdk() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1007
		return currentlyUsedSdk;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1008
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1009
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1010
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1011
	 * @param currentlyUsedSdk The currentlyUsedSdk to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1012
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1013
	public void setCurrentlyUsedSdk(SdkInformation currentlyUsedSdk) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1014
		this.currentlyUsedSdk = currentlyUsedSdk;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1015
		// Notifying possible listeners
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1016
		notifySettingsListeners(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1017
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1018
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1019
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1020
	 * Returns build directory for the given Sdk information node
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1021
	 * and target platform name.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1022
	 * @param sdkInfo Sdk information object.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1023
	 * @param targetPlatformName Target platform name.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1024
	 * @param buildType Build type.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1025
	 * @return Build directory string.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1026
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1027
	public String getBuildDirectoryForSdkAndPlatform(SdkInformation sdkInfo, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1028
													 String targetPlatformName,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1029
													 IBuildType buildType) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1030
		return 	sdkInfo.getReleaseRootDir()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1031
				+ File.separator
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1032
				+ targetPlatformName
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1033
				+ File.separator
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1034
				+ buildType.getBuildTypeName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1035
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1036
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1037
	public void updateCurrentlyUsedSDKAndTargetPlatforms(SdkInformation currentlyUsedSdk,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1038
												   String[] currentlyUsedTargetPlatforms,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1039
												   IBuildType currentlyUsedBuildType
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1040
												   ) throws InvalidCmdLineToolSettingException{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1041
		setCurrentlyUsedSdk(currentlyUsedSdk);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1042
		setCurrentlyUsedTargetPlatforms(currentlyUsedTargetPlatforms);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1043
		setBuildType(currentlyUsedBuildType);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1044
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1045
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1046
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1047
	 * The method adds given target to the list of currently used ones.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1048
	 * The method checks if the toolChain of given platform maps with the
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1049
	 * default toolchain (of all other platforms). If not, the method throws an exception.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1050
	 * @param targetPlatformId The new target to be added to currently used targets.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1051
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1052
	public void addTargetPlatform(String targetPlatformId) throws InvalidCmdLineToolSettingException
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1053
	{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1054
		if(! isSupportedTargetPlatform(targetPlatformId)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1055
			// Given target is not found in the list of supported targets. So, regarded as unsupported
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1056
			throw new InvalidCmdLineToolSettingException( Messages.getString("AppDepSettings.Target")  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1057
					+ targetPlatformId  
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1058
					+ Messages.getString("AppDepSettings.NotSupported") ); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1059
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1060
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1061
		// Check was OK => adding the target information
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1062
		currentlyUsedTargetPlatforms.add(new TargetPlatform(targetPlatformId));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1063
		// The toolchain of given platform must match with the toolchain of all existing platforms.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1064
		IToolchain toolchainSettingTmp = getDefaultToolchainForTarget(targetPlatformId);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1065
		if(toolchainSettingTmp == null || !toolchainSettingTmp.getToolchainName().equalsIgnoreCase(getCurrentlyUsedToolChainName())){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1066
			throw new InvalidCmdLineToolSettingException( Messages.getString("AppDepSettings.Targets_Does_Not_Map_To_Same_Toolchain") );  //$NON-NLS-1$				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1067
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1068
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1069
		notifySettingsListeners(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1070
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1071
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1072
	 * @return Returns the currentlyAnalyzedComponentName.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1073
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1074
	public String getCurrentlyAnalyzedComponentName() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1075
		return currentlyAnalyzedComponentName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1076
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1077
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1078
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1079
	 * Sets currently analyzed component name and resets
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1080
	 * target platform setting. Target platform can be set after this call 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1081
	 * by calling method <code>setCurrentlyAnalyzedComponentTargetPlatform</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1082
	 * @param currentlyAnalyzedComponentName The currentlyAnalyzedComponentName to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1083
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1084
	public void setCurrentlyAnalyzedComponentName(
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1085
			                                String currentlyAnalyzedComponentName) {		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1086
		this.currentlyAnalyzedComponentName = currentlyAnalyzedComponentName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1087
		this.currentlyAnalyzedComponentTargetPlatform = null; // not set by default
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1088
		// Notifying possible listeners
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1089
		notifySettingsListeners(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1090
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1091
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1092
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1093
	 * Sets the target platform for the currently analyzed component.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1094
	 * Should be called after <code>setCurrentlyAnalyzedComponentName</code> is called if needed.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1095
	 * @param currentlyAnalyzedComponentTargetPlatform The target platform for the currently analyzed component.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1096
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1097
	public void setCurrentlyAnalyzedComponentTargetPlatform(
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1098
			                                ITargetPlatform currentlyAnalyzedComponentTargetPlatform) {		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1099
		this.currentlyAnalyzedComponentTargetPlatform = currentlyAnalyzedComponentTargetPlatform;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1100
		// Notifying possible listeners
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1101
		notifySettingsListeners(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1102
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1103
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1104
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1105
	 * Gets target platform for the currently analyzed component.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1106
	 * @return target platform for the currently analyzed component, or <code>null</code> if not set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1107
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1108
	public ITargetPlatform getCurrentlyAnalyzedComponentTargetPlatform() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1109
		return currentlyAnalyzedComponentTargetPlatform;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1110
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1111
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1112
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1113
	 * Checks if cache data loading is ongoing.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1114
	 * @return <code>true</code> if cache data loading is ongoing, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1115
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1116
	public boolean isCacheDataLoadingOngoing(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1117
		return isCacheDataLoadingOngoing;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1118
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1119
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1120
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1121
	 * Checks if caching is ongoing for the given target.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1122
	 * @param sdkInfo SDK information object 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1123
	 * @param targetPlatformName Target Platform Name string
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1124
	 * @param buildType Build type.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1125
	 * @return Returns <code>true</code> if caching is ongoing, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1126
	 *         otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1127
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1128
	public boolean isCacheGenerationOngoingForTarget(SdkInformation sdkInfo, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1129
										 String targetPlatformName,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1130
										 IBuildType buildType) {	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1131
		return AppDepJobManager.getInstance().hasCacheGenerationJobForTarget(sdkInfo.getSdkId(),
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1132
																			targetPlatformName,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1133
																			buildType);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1134
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1135
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1136
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1137
	 * Checks if caching is ongoing for the given SDK.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1138
	 * @param sdkInfo SDK information object 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1139
	 * @return Returns <code>true</code> if caching is ongoing, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1140
	 *         otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1141
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1142
	public boolean isCacheGenerationOngoingForSdk(SdkInformation sdkInfo) {	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1143
		return AppDepJobManager.getInstance().hasCacheGenerationJobForSdk(sdkInfo.getSdkId());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1144
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1145
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1146
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1147
	 * Returns component file objects for the SDK and Target Platform 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1148
	 * given as parameters.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1149
	 * @param sdkInfo SDK information object. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1150
	 * @param targetPlatformName Target Platform Name string
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1151
	 * @param buildType Build type.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1152
	 * @return File object array of given components.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1153
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1154
	private File[] getComponentsForSdkAndPlatform(SdkInformation sdkInfo, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1155
												  String targetPlatformName,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1156
												  IBuildType buildType) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1157
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1158
		String releaseDirPath = 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1159
							sdkInfo.getReleaseRootDir() 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1160
							+ File.separatorChar 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1161
							+ targetPlatformName
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1162
							+ File.separatorChar 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1163
							+ buildType.getBuildTypeName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1164
		File releaseDir = new File(releaseDirPath);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1165
		if(releaseDir.exists())
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1166
			return releaseDir.listFiles(new ComponentFileFilter());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1167
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1168
			return null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1169
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1170
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1171
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1172
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1173
	 * Returns component count for the SDK and Target Platform 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1174
	 * given as parameters.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1175
	 * @param sdkInfo SDK information object. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1176
	 * @param targetPlatformName Target Platform Name string
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1177
	 * @param buildType Build type.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1178
	 * @return Component count
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1179
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1180
	public int getComponentCountForSdkAndPlatform(SdkInformation sdkInfo, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1181
												  String targetPlatformName,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1182
												  IBuildType buildType) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1183
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1184
		mostRecentlyQueriedComponentCount = 0;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1185
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1186
		String releaseDirPath = 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1187
							sdkInfo.getReleaseRootDir() 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1188
							+ File.separatorChar 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1189
							+ targetPlatformName
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1190
							+ File.separatorChar 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1191
							+ buildType.getBuildTypeName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1192
		File releaseDir = new File(releaseDirPath);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1193
		if(releaseDir.exists()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1194
			String[] fileArr = releaseDir.list(new ComponentFileFilter());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1195
			mostRecentlyQueriedComponentCount = fileArr.length;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1196
			return mostRecentlyQueriedComponentCount;			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1197
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1198
		// Directory was not found => no components.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1199
		return mostRecentlyQueriedComponentCount;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1200
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1201
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1202
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1203
	 * Check if cache needs to be updated i.e. there is newer
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1204
	 * files existing in build directory. Note that this method returns
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1205
	 * <code>true</code> whenever it meets the first target requiring update.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1206
	 * @param sdkInfo SDK information object. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1207
	 * @param targets Target to check cache update need for
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1208
	 * @param buildType Build type.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1209
	 * @return <code>true</code> if cache needs update, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1210
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1211
	public boolean cacheNeedsUpdate(SdkInformation sdkInfo, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1212
									ITargetPlatform[] targets, IBuildType buildType){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1213
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1214
		// Checking through all the targets
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1215
		for (int i = 0; i < targets.length; i++) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1216
			ITargetPlatform platform = targets[i];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1217
			String targetPlatformName = platform.getId();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1218
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1219
			if(targetPlatformName.equals(TARGET_TYPE_ID_SIS)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1220
				continue;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1221
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1222
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1223
			String cacheFilePath = getCacheFileAbsolutePathNameForSdkAndPlatform(
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1224
																				sdkInfo, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1225
																				targetPlatformName,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1226
																				buildType);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1227
			File cacheFile = new File(cacheFilePath);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1228
			if(!cacheFile.exists()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1229
				// We should not encounter this situation, but if there is no
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1230
				// cache file, then it surely needs update.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1231
				return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1232
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1233
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1234
			String buildDir = getBuildDirectoryForSdkAndPlatform(sdkInfo, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1235
																 targetPlatformName,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1236
																 buildType);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1237
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1238
			CacheIndex cacheIndx = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1239
		    try {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1240
				cacheIndx = CacheIndex.getCacheIndexInstance(cacheFile,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1241
						                                                buildDir);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1242
			} catch (IOException e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1243
				e.printStackTrace();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1244
				// We should no encounter in this situation, but then
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1245
				// it is better to enable the regeneration of the cache.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1246
				return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1247
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1248
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1249
			// Checking that cache is not corrupted. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1250
			if(! cacheIndx.isCacheNonCorrupted()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1251
				// If corrupted, then needs update
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1252
				return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1253
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1254
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1255
			// Checking that cache is of correct version
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1256
			if(! cacheIndx.getVersionInfo().equals(ProductInfoRegistry.getSupportedCacheFileVersionInfoString())){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1257
				// If non-supported version, then needs update
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1258
				return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1259
			}			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1260
			File[] fileArr = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1261
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1262
		    fileArr = getComponentsForSdkAndPlatform(sdkInfo, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1263
					  									   targetPlatformName,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1264
					  									   buildType);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1265
		    // Comparing found components against cache information
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1266
			if(fileArr != null && isComponentFileArrayChangedWhenComparingWithCache(cacheIndx, fileArr)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1267
				return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1268
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1269
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1270
		}//for
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1271
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1272
	    return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1273
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1274
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1275
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1276
	 * Checks if given component file array has been changed in respect to cache file.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1277
	 * @param cacheIndx Cache index used to check for timestamps stored in cache.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1278
	 * @param componentFileArr File array to be checked against cache information.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1279
	 * @return <code>true</code> if cache needs update, otherwsise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1280
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1281
	private boolean isComponentFileArrayChangedWhenComparingWithCache(CacheIndex cacheIndx, File[] componentFileArr) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1282
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1283
		File f = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1284
		for (int j = 0; j < componentFileArr.length; j++) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1285
			f = componentFileArr[j];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1286
			String basename = f.getName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1287
			try {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1288
				long fileModifiedAsMillisecAccuracy = f.lastModified();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1289
				// Flooring timestamp into second level accuracy. The unit is still milliseconds.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1290
				long fileModifiedAsSecAccuracy = floorTimestampIntoSecondLevelAccuracy(fileModifiedAsMillisecAccuracy);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1291
				// Unit for cache timestamp got from cache index is also milliseconds 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1292
				long cacheTimestamp = cacheIndx.getLastModifiedTimeForComponent(basename);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1293
				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1294
				if (fileModifiedAsSecAccuracy != cacheTimestamp) {	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1295
					
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1296
					// Absolute value of the difference in milliseconds
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1297
					long diff = Math.abs((fileModifiedAsSecAccuracy - cacheTimestamp));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1298
					
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1299
					//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1300
					// lastModified() method of File-class does not
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1301
					// always produce correct results in Windows environment.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1302
					// Sometimes it gives time stamps that are exactly 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1303
					// one hour wrong due to daylight savings:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1304
					//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1305
					// For details, see 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1306
					// http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4860999
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1307
					//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1308
					// Therefore ignoring exact 1 hour differences in timestamps.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1309
					//					
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1310
					final int DL_SAVINGS_BUG_CHECK_INTERVAL = (1000 * 60 * 60);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1311
					
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1312
					// Allowing a  range N seconds when identifying if the cache information of
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1313
					// a component is up-to-date. This is because if the cache file has been
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1314
					// generated with different operating system, the time stamps may not be exactly
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1315
					// same. This line declares the currently used N.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1316
					final int DIFF_TOLERANCE = (1000 * 2); // 1000 * N
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1317
					
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1318
					// Checking the timestamp, first via bug filter
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1319
					// Ignoring timestamps possibly caused due to the bug when adjusted with tolerance
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1320
					if(
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1321
						diff < (DL_SAVINGS_BUG_CHECK_INTERVAL - DIFF_TOLERANCE)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1322
						||
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1323
						diff > (DL_SAVINGS_BUG_CHECK_INTERVAL + DIFF_TOLERANCE)						
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1324
							){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1325
						// If the bug filter was passed we can continue checking...						
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1326
						
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1327
						if(diff > DIFF_TOLERANCE){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1328
							// Found component that is newer that cache
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1329
							DbgUtility.println(DbgUtility.PRIORITY_LOOP, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1330
									"Time stamps differ for component '" //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1331
									+ basename + "' " //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1332
									+ fileModifiedAsSecAccuracy 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1333
									+ " != " + cacheTimestamp); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1334
							DbgUtility.println(DbgUtility.PRIORITY_LOOP, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1335
									"Time stamps differ for component '" //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1336
									+ basename + "' " //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1337
									+ new Date(fileModifiedAsSecAccuracy).toString() 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1338
									+ " != " + new Date(cacheTimestamp).toString() ); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1339
							return true;													
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1340
						}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1341
					}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1342
				} 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1343
			} catch (NoSuchElementException e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1344
				// A new component has been added, and therefore
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1345
				// cache file needs update.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1346
				DbgUtility.println(DbgUtility.PRIORITY_LOOP, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1347
						           "Component not found from cache index: " + basename); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1348
					return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1349
				}			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1350
		}//for
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1351
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1352
		return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1353
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1354
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1355
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1356
	 * Floors milliseconds timestamp into nearest second.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1357
	 * @param millisecTimestamp Timestamp with millisecond accuracy.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1358
	 * @return Timestamp with second accuracy.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1359
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1360
	private long floorTimestampIntoSecondLevelAccuracy(long millisecTimestamp){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1361
		long seconds = millisecTimestamp/1000;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1362
		return (1000 * seconds);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1363
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1364
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1365
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1366
	 * Filter filenames that are regarded as valid components
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1367
	 * for static dependency analysis.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1368
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1369
	private class ComponentFileFilter implements FilenameFilter{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1370
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1371
		public boolean accept(File dir, String name) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1372
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1373
			// Filtering is made based on file extension.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1374
			// Accepting the following extensions.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1375
			String[] allowedExtensions = { "dll", //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1376
						                    "exe", //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1377
						                    "tsy", //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1378
						                    "csy", //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1379
						                    "fsy", //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1380
						                    "dsy", //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1381
						                    "prt", //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1382
						                    "app", //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1383
						                    "psy", //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1384
						                    "fep", //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1385
						                    "agt", //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1386
						                    "fxt" //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1387
			                             };
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1388
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1389
			String regExp = Pattern.quote("."); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1390
			String[] splitArr = name.split(regExp);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1391
			int itemCount = splitArr.length;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1392
			if(itemCount > 1){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1393
				String extension = splitArr[itemCount-1];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1394
				for (int i = 0; i < allowedExtensions.length; i++) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1395
					String allowedExt = allowedExtensions[i];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1396
					if(extension.equalsIgnoreCase(allowedExt)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1397
						return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1398
					}					
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1399
				}				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1400
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1401
			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1402
			return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1403
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1404
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1405
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1406
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1407
	 * Removes ending backslash from directory if such exists.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1408
	 * @param directoryStr Directory path name to be checked for removal.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1409
	 * @return Returns directory path name without ending backslash.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1410
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1411
	private String removeEndingBackslash(String directoryStr) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1412
		if(directoryStr.endsWith(File.separator)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1413
			return directoryStr.substring(0, (directoryStr.length()-1));
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1414
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1415
		// No backslash => returning string as it was
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1416
		return directoryStr;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1417
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1418
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1419
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1420
	 * Goes through the directory given in <code>File</code> object and deletes
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1421
	 * all the only partially created cache files.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1422
	 * @param directoryToBeChecked
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1423
	 * @param parentDirectoryPath
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1424
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1425
	private void deletePartiallyCreatedCacheFiles(File directoryToBeChecked, String parentDirectoryPath) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1426
		File[] fileArr = directoryToBeChecked.listFiles();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1427
		for (int i = 0; i < fileArr.length; i++) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1428
			File f = fileArr[i];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1429
			DbgUtility.println(DbgUtility.PRIORITY_LOOP, parentDirectoryPath + f.getName());	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1430
			if(f.isDirectory()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1431
				// Traversing also sub directories
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1432
				deletePartiallyCreatedCacheFiles(f, parentDirectoryPath + f.getName() + File.separatorChar);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1433
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1434
			else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1435
				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1436
				File cacheFile = new File(f.getParent() 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1437
		                  + File.separatorChar
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1438
		                  + ProductInfoRegistry.getCacheFileName());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1439
				File symbolsTableFile = new File(f.getParent() 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1440
		                  + File.separatorChar
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1441
		                  + ProductInfoRegistry.getCacheSymbolsFileName());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1442
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1443
				//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1444
				// Cache files are considered as partially created, if
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1445
				// - either of the cache info files is of zero size
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1446
				//	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1447
				boolean cacheFileIsZeroSized = cacheFile.exists() && (cacheFile.length() == 0);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1448
				boolean symbolsTableFileIsZeroSized = symbolsTableFile.exists() && (symbolsTableFile.length() == 0);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1449
				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1450
				if(cacheFileIsZeroSized || symbolsTableFileIsZeroSized){					
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1451
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1452
					// Partially created cache ...
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1453
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1454
					// Deleting cache file first
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1455
					if(cacheFile.exists()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1456
						DbgUtility.println(DbgUtility.PRIORITY_LOOP, "\tDeleting cache file!!!"); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1457
						if(!cacheFile.delete()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1458
							AppDepConsole.getInstance().println(Messages.getString("AppDepSettings.Failed_to_Delete_Cache_File")  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1459
										       + cacheFile.getAbsolutePath(), IConsolePrintUtility.MSG_ERROR);							
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1460
						}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1461
					}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1462
					// Then deleting the symbol tables file, if it exists
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1463
					if(symbolsTableFile.exists()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1464
						DbgUtility.println(DbgUtility.PRIORITY_LOOP, "\tDeleting symbol tables cache file!!!"); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1465
						if(!symbolsTableFile.delete()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1466
							AppDepConsole.getInstance().println(Messages.getString("AppDepSettings.Failed_to_Delete_Symbols_File") //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1467
									           + f.getAbsolutePath(), IConsolePrintUtility.MSG_ERROR);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1468
						}						
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1469
					}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1470
				}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1471
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1472
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1473
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1474
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1475
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1476
	 * Clean-up cache files that are only partially created.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1477
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1478
	public void cleanupPartiallyCreatedCacheFiles(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1479
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1480
		SdkInformation[] infos;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1481
		File cacheDir;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1482
		String strCacheDir;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1483
		//Found all installed SDK:s, search through all of them and clean 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1484
		try {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1485
			infos = SdkManager.getSdkInformation();			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1486
			for (int i = 0; i < infos.length; i++) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1487
				SdkInformation info = infos[i];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1488
				strCacheDir = 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1489
					removeEndingBackslash (info.getEpoc32ToolsDir()) 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1490
					+ File.separatorChar
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1491
					+ getCachePathRelativeToToolsDir();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1492
				cacheDir = new File(strCacheDir);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1493
				if(cacheDir.exists()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1494
					DbgUtility.println(DbgUtility.PRIORITY_OPERATION, "cleanupPartiallyCreatedCacheFiles for '" + cacheDir.getAbsolutePath() + "'"); //$NON-NLS-1$ //$NON-NLS-2$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1495
					deletePartiallyCreatedCacheFiles(cacheDir, cacheDir.getName() + File.separatorChar);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1496
				}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1497
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1498
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1499
		} catch (SdkEnvInfomationResolveFailureException e) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1500
			e.printStackTrace();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1501
		}		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1502
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1503
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1504
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1505
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1506
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1507
	 * @return Returns the mostRecentlyQueriedComponentCount.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1508
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1509
	public int getMostRecentlyQueriedComponentCount() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1510
		return mostRecentlyQueriedComponentCount;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1511
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1512
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1513
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1514
	 * @return Returns the gccToolsDir.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1515
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1516
	public String getGccToolsDir() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1517
		return getCurrentlyUsedSdk().getEpocRootDir()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1518
				+ GCC_TOOL_REL_DIR;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1519
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1520
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1521
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1522
	 * Gets array of all supported toolchains.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1523
	 * @return Array of all supported toolchains.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1524
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1525
	public IToolchain[] getAllSupportedToolchains(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1526
		return (IToolchain[]) supportedToolchainsVector.toArray(new IToolchain[0]);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1527
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1528
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1529
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1530
	 * Gets array of supported toolchains for currently selected target.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1531
	 * @return Array of supported toolchains for currently selected target..
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1532
	 * @throws InvalidCmdLineToolSettingException
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1533
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1534
	public IToolchain[] getSupportedToolchainsForCurrentlyUsedTargets() throws InvalidCmdLineToolSettingException{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1535
		// In setCurrentlyUsedTargetPlatforms it is made sure that all targets
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1536
		// platforms will map to the same toolchains => therefore we can
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1537
		// safely use just the first target platform instance.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1538
		String targetPlatformId = getCurrentlyUsedTargetPlatforms()[0].getId();		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1539
		return getSupportedToolchainsForGivenTargetPlatformId(targetPlatformId);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1540
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1541
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1542
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1543
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1544
	 * Gets array of supported toolchains for given target platform id.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1545
	 * @param targetPlatformId Target platform id.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1546
	 * @return Array of supported toolchains for given target platform id.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1547
	 * @throws InvalidCmdLineToolSettingException
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1548
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1549
	public IToolchain[] getSupportedToolchainsForGivenTargetPlatformId(String targetPlatformId) throws InvalidCmdLineToolSettingException{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1550
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1551
		ArrayList<Toolchain> toolchainsForTargetArrayList = new ArrayList<Toolchain>();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1552
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1553
		// Checking GCC targets
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1554
		if(targetPlatformId.equalsIgnoreCase(STR_ARMI)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1555
				||
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1556
				targetPlatformId.equalsIgnoreCase(STR_ARM4)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1557
				||
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1558
				targetPlatformId.equalsIgnoreCase(STR_THUMB)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1559
				||
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1560
				targetPlatformId.toLowerCase().startsWith(STR_WILDCHARD_GCC_M.toLowerCase())
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1561
				){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1562
			toolchainsForTargetArrayList.add(toolchainGCC);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1563
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1564
		// Using these for all others
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1565
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1566
			toolchainsForTargetArrayList.add(toolchainGCCE);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1567
			toolchainsForTargetArrayList.add(toolchainRVCT);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1568
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1569
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1570
		return (IToolchain[]) toolchainsForTargetArrayList.toArray(new IToolchain[0]);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1571
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1572
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1573
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1574
	 * Gets default toolchain for currently the given target.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1575
	 * @param targetId Target to check for default toolchain.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1576
	 * @return Default toolchain for currently the given target.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1577
	 * @throws InvalidCmdLineToolSettingException
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1578
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1579
	public IToolchain getDefaultToolchainForTarget(String targetId) throws InvalidCmdLineToolSettingException{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1580
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1581
		IToolchain defaultToolchain = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1582
					
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1583
		// Checking for supported GCC toolchain targets
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1584
		if(targetId.equalsIgnoreCase(STR_ARMI)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1585
				||
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1586
				targetId.equalsIgnoreCase(STR_ARM4)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1587
				||
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1588
				targetId.equalsIgnoreCase(STR_THUMB)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1589
				||
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1590
				targetId.toLowerCase().startsWith(STR_WILDCHARD_GCC_M.toLowerCase())
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1591
				){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1592
			defaultToolchain = toolchainGCC;		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1593
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1594
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1595
			if(isGcceToolsInstalled()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1596
				// This is preferred toolchain
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1597
				defaultToolchain = toolchainGCCE;		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1598
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1599
			else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1600
				// This is alternate toolchain for same purpose
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1601
				defaultToolchain = toolchainRVCT;		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1602
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1603
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1604
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1605
		return defaultToolchain;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1606
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1607
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1608
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1609
	 * @return Returns the cacheGenerOptions.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1610
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1611
	public CacheGenerationOptions getCacheGenerOptions() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1612
		return cacheGenerOptions;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1613
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1614
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1615
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1616
	 * @param cacheGenerOptions The cacheGenerOptions to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1617
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1618
	public void setCacheGenerOptions(CacheGenerationOptions cacheGenerOptions) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1619
		this.cacheGenerOptions = cacheGenerOptions;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1620
		// Notifying possible listeners
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1621
		notifySettingsListeners(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1622
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1623
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1624
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1625
	 * If SDK selection wizard is launched with SIS page option.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1626
	 * @return <code>true</code> if Add SIS files page is launched and Wizard is in SIS Analysis mode.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1627
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1628
	public boolean isInSISFileAnalysisMode() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1629
		return isInSISFileAnalysisMode;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1630
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1631
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1632
	 * Set if SDK selection wizard is launched with SIS page option.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1633
	 * @param set Wizard to SIS analysis mode.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1634
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1635
	public void setIsInSISFileAnalysisMode(boolean isInSISFileAnalysisMode) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1636
		this.isInSISFileAnalysisMode = isInSISFileAnalysisMode;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1637
		if(!isInSISFileAnalysisMode){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1638
			sisFilesForAnalysis = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1639
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1640
	}	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1641
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1642
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1643
	 * Get SIS files selected in SIS selection page.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1644
	 * @return SIS files selected in SIS selection page if this wizard is SIS wizard
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1645
	 * (this.isInSISFileAnalysisMode() returns <code>true</code>, otherwise null. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1646
	 * Returned files names is absolutely file names with path.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1647
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1648
	public String[] getSISFilesForAnalysis() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1649
		if(isInSISFileAnalysisMode()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1650
			return sisFilesForAnalysis;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1651
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1652
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1653
			return null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1654
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1655
	}		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1656
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1657
	 * Set selected SIS files for analysis
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1658
	 * @param valid Symbian 9.x sisFiles (absolutely file names with path)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1659
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1660
	public void setSISFilesForAnalysis(String[] sisFiles) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1661
		this.sisFilesForAnalysis = sisFiles;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1662
	}		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1663
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1664
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1665
	 * @return Returns the exportPrintReportPath.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1666
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1667
	public String getExportPrintReportPath() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1668
		return exportPrintReportPath;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1669
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1670
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1671
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1672
	 * @param exportPrintReportPath The exportPrintReportPath to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1673
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1674
	public void setExportPrintReportPath(String exportPrintReportPath) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1675
		this.exportPrintReportPath = exportPrintReportPath;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1676
		// Notifying possible listeners
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1677
		notifySettingsListeners(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1678
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1679
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1680
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1681
	 * @return Returns the exportXMLreport.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1682
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1683
	public boolean isExportXMLreport() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1684
		return exportXMLreport;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1685
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1686
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1687
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1688
	 * @param exportXMLreport The exportXMLreport to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1689
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1690
	public void setExportXMLreport(boolean exportXMLreport) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1691
		this.exportXMLreport = exportXMLreport;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1692
		// Notifying possible listeners
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1693
		notifySettingsListeners(false);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1694
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1695
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1696
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1697
	 * @return Returns the resourcesPath.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1698
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1699
	public String getResourcesPath() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1700
		return resourcesPath;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1701
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1702
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1703
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1704
	 * @param resourcesPath The resourcesPath to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1705
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1706
	public void setResourcesPath(String resourcesPath) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1707
		this.resourcesPath = resourcesPath;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1708
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1709
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1710
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1711
	 * @return Returns the XSLFileName.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1712
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1713
	public String getXSLFileName() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1714
		return XSLFileName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1715
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1716
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1717
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1718
	 * @param fileName The XSLFileName to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1719
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1720
	public void setXSLFileName(String fileName) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1721
		this.XSLFileName = fileName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1722
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1723
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1724
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1725
	 * @param cacheUpdated The cacheUpdated to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1726
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1727
	public void cacheWasUpdated() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1728
		cacheUpdated = true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1729
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1730
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1731
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1732
	 * @return Returns the isUsedByXSLFileName.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1733
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1734
	public String getIsUsedByXSLFileName() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1735
		return isUsedByXSLFileName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1736
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1737
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1738
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1739
	 * @param isUsedByXSLFileName The isUsedByXSLFileName to set.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1740
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1741
	public void setIsUsedByXSLFileName(String isUsedByXSLFileName) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1742
		this.isUsedByXSLFileName = isUsedByXSLFileName;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1743
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1744
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1745
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1746
	 * Returns currently used targets as string representation.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1747
	 * @return
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1748
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1749
	public String getCurrentlyUsedTargetPlatformsAsString() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1750
		ITargetPlatform[] targets = getCurrentlyUsedTargetPlatforms();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1751
		String targetPlatformStrList = ""; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1752
		if(targets.length > 0){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1753
			targetPlatformStrList = targets[0].getId();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1754
			for (int i = 1; i < targets.length; i++) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1755
				String targetPlatformId = targets[i].getId();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1756
				targetPlatformStrList = targetPlatformStrList + "+" + targetPlatformId;  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1757
			}			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1758
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1759
		return targetPlatformStrList;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1760
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1761
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1762
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1763
	 * Checks if Elftran is available for given SDK or platform.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1764
	 * @param sdkInfo  SDK information object. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1765
	 * @return <code>true</code> if elftran is available, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1766
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1767
	public boolean isElftranAvailable(SdkInformation sdkInfo){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1768
		String absolutePath = 	sdkInfo.getEpoc32ToolsDir() + File.separatorChar + STR_ELFTRAN_EXE;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1769
		File elftranFile = new File(absolutePath);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1770
		if(elftranFile.exists()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1771
			return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1772
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1773
		return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1774
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1775
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1776
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1777
	 * Checks if Petran is available for given SDK or platform.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1778
	 * @param sdkInfo  SDK information object. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1779
	 * @return <code>true</code> if petran is available, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1780
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1781
	public boolean isPetranAvailable(SdkInformation sdkInfo){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1782
		String absolutePath = 	sdkInfo.getEpoc32ToolsDir() + File.separatorChar + STR_PETRAN_EXE;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1783
		File petranFile = new File(absolutePath);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1784
		if(petranFile.exists()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1785
			return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1786
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1787
		return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1788
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1789
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1790
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1791
	 * Checks if Dumpsis.exe is available for given SDK or platform.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1792
	 * @param sdkInfo  SDK information object. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1793
	 * @return <code>true</code> if Dumpsis.exe is available, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1794
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1795
	public boolean isDumpsisAvailable(SdkInformation sdkInfo){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1796
		String absolutePath = 	sdkInfo.getEpoc32ToolsDir() + File.separatorChar + ProductInfoRegistry.getDumpsisExeFileName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1797
		File dumpsisFile = new File(absolutePath);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1798
		if(dumpsisFile.exists()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1799
			return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1800
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1801
		return false;		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1802
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1803
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1804
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1805
	 * Adds a new settings change listener object.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1806
	 * @param listener Listener to be added.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1807
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1808
	public void addSettingsListener(IAppDepSettingsChangedListener listener){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1809
		settingListenersVector.add(listener);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1810
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1811
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1812
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1813
	 * Removes a new settings change listener object.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1814
	 * @param listener Listener to be removed.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1815
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1816
	public void removeSettingsListener(IAppDepSettingsChangedListener listener){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1817
		settingListenersVector.remove(listener);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1818
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1819
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1820
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1821
	 * Notifies listeners that settings has been changed.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1822
	 * @param isTargetBuildChanged Should set to <code>true</code> by the caller if, the currently
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1823
	 * 							   used target build settings has been changed, otherwise set to 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1824
	 * 							   <code>false</code> by the caller (for example, if only currently
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1825
	 *                             analyzed component has been changed). 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1826
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1827
	private void notifySettingsListeners(boolean isTargetBuildChanged){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1828
		for (IAppDepSettingsChangedListener listener : settingListenersVector) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1829
			listener.settingsChanged(isTargetBuildChanged);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1830
		}		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1831
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1832
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1833
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1834
	 * Checks if currently selected caches require update.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1835
	 * @return <code>true</code> if some of the currently selected caches
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1836
	 *         needs update, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1837
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1838
	public boolean currentlySelectedCachesNeedsUpdate(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1839
		return cacheNeedsUpdate(getCurrentlyUsedSdk(), 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1840
								getCurrentlyUsedTargetPlatforms(), 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1841
					            getBuildType());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1842
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1843
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1844
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1845
	 * Checks if two setting instances had equal target platform selection.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1846
	 * @param settingsToCompareThisTo Settings object to compare this instance against.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1847
	 * @return <code>true</code> if two setting instances had equal target platform selection, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1848
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1849
	public boolean hasEqualTargetPlatformSelections(AppDepSettings settingsToCompareThisTo) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1850
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1851
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1852
		// Doing actual comparison 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1853
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1854
		if(settingsToCompareThisTo.currentlyUsedSdk.getSdkId() != currentlyUsedSdk.getSdkId()) return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1855
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1856
		ITargetPlatform[] targetPlatformArrThis = getCurrentlyUsedTargetPlatforms();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1857
		ITargetPlatform[] targetPlatformArrThisCompareTo = settingsToCompareThisTo.getCurrentlyUsedTargetPlatforms();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1858
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1859
		if(targetPlatformArrThisCompareTo.length != targetPlatformArrThis.length) return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1860
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1861
		for (int i = 0; i < targetPlatformArrThisCompareTo.length; i++) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1862
			ITargetPlatform targetPlatformIdThisCompareTo = targetPlatformArrThisCompareTo[i];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1863
			ITargetPlatform targetPlatformIdThis = targetPlatformArrThis[i];
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1864
			// If any of the selected targets differ => no match
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1865
			if(targetPlatformIdThisCompareTo.getId() != targetPlatformIdThis.getId()) return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1866
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1867
		// Also build type must match
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1868
		if(settingsToCompareThisTo.buildType.getBuildTypeName() != buildType.getBuildTypeName()) return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1869
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1870
		return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1871
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1872
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1873
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1874
	 * @param isCacheDataLoadingOngoing the isCacheDataLoadingOngoing to set
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1875
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1876
	public void setCacheDataLoadingOngoing(boolean isCacheDataLoadingOngoing) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1877
		this.isCacheDataLoadingOngoing = isCacheDataLoadingOngoing;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1878
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1879
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1880
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1881
	 * @return the cacheUpdated
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1882
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1883
	public boolean isCacheUpdated() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1884
		return cacheUpdated;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1885
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1886
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1887
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1888
	 * Resets cache update flag back to <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1889
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1890
	public void resetCacheUpdateFlag() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1891
		this.cacheUpdated = false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1892
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1893
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1894
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1895
	 * Returns string representation of currently selected SDK and target platforms.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1896
	 * @return String representation of currently selected SDK and target platforms.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1897
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1898
	public String getCurrentlyUsedTargetsAsString() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1899
		return "'"  //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1900
				+ getCurrentlyUsedSdk().getSdkId()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1901
				+ " - " //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1902
				+ getCurrentlyUsedTargetPlatformsAsString()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1903
				+ " " //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1904
				+ getBuildType().getBuildTypeDescription()
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1905
				+ "'"; //$NON-NLS-1$;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1906
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1907
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1908
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1909
	 * Clear currently used target platforms from settings.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1910
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1911
	public void clearCurrentlyUsedTargetPlatforms() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1912
		currentlyUsedTargetPlatforms.clear();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1913
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1914
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1915
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1916
	 * Check if root component has been already selected under analysis.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1917
	 * @return <code>true</code> if root component has been selected, 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1918
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1919
	public static boolean isRootComponentSelectedForAnalysis() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1920
		String currentRootComponent = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1921
		AppDepSettings activeSettings = getActiveSettings();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1922
		if(activeSettings != null){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1923
			currentRootComponent =  activeSettings.getCurrentlyAnalyzedComponentName();					
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1924
			if(currentRootComponent != null){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1925
				// Root component selected
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1926
				return true;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1927
			}			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1928
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1929
		// Root component not selected
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1930
		return false;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1931
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1932
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1933
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1934
	 * Sets version of the RVCT toolchain.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1935
	 * @param version string representation of toolchain version.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1936
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1937
	public void setRvctToolsVersion(String version) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1938
		toolchainRVCT.setVersion(version);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1939
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1940
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1941
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1942
	 * Gets currently set RVCT tools version.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1943
	 * @return string representation of toolchain version, or <code>null</code> if version info is not available. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1944
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1945
	public String getRvctToolsVersion() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1946
		return toolchainRVCT.getVersion();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1947
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1948
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1949
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1950
	 * Checks that command-line tools needed by AppDep Core are available in order
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1951
	 * to run cache generation. Currently required tools include petran.exe for GCC toolchain
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1952
	 * and elftran.exe for other toolchains.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1953
	 * @param sdkInfo SDK information object.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1954
	 * @param targetPlatformID Target platform id used to get matching toolchain setting.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1955
	 * @return <code>true</code> if all required tools are available, otherwise <code>false</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1956
	 * @throws InvalidCmdLineToolSettingException 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1957
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1958
	public boolean areToolsRequiredByCoreAvailable(SdkInformation sdkInfo, String targetPlatformID) throws InvalidCmdLineToolSettingException {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1959
		IToolchain[] supportedToolchainsForGivenTargetPlatformId = getSupportedToolchainsForGivenTargetPlatformId(targetPlatformID);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1960
		if(supportedToolchainsForGivenTargetPlatformId[0].getToolchainName().equals(STR_GCC)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1961
			return isPetranAvailable(sdkInfo);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1962
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1963
		return isElftranAvailable(sdkInfo);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1964
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1965
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1966
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1967
	 * Gets currently used binary dump tool name based on the currently
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1968
	 * used toolchain setting.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1969
	 * @param targetPlatformID Target platform id used to get matching toolchain setting.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1970
	 * @return STR_PETRAN_EXE if GCC toolchain is selected, otherwise STR_ELFTRAN_EXE.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1971
	 * @throws InvalidCmdLineToolSettingException 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1972
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1973
	public String getCurrentlyUsedCoreDumpToolName(String targetPlatformID) throws InvalidCmdLineToolSettingException{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1974
		IToolchain[] supportedToolchainsForGivenTargetPlatformId = getSupportedToolchainsForGivenTargetPlatformId(targetPlatformID);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1975
		if(supportedToolchainsForGivenTargetPlatformId[0].getToolchainName().equals(STR_GCC)){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1976
			return STR_PETRAN_EXE;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1977
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1978
		return STR_ELFTRAN_EXE;		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1979
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
  1980
}