memana/analyzetoolclient/commandlineengine/internal/inc/CATProject.h
changeset 2 6a82cd05fb1e
parent 1 3ff3fecb12fe
--- a/memana/analyzetoolclient/commandlineengine/internal/inc/CATProject.h	Thu Feb 11 15:52:57 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,626 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Class representing a project.
-*
-*/
-
-
-#ifndef __CATPROJECT_H__
-#define __CATPROJECT_H__
-
-#include "ATCommonDefines.h"
-#include "CATBase.h"
-
-class CATModule2;
-class CATDatParser;
-
-// Raptor cmd and makefile constants used
-#define RAPTOR_CMD_BASE "sbs -b bld.inf  --makefile=atool_temp/build/make_build --config="
-#define RAPTOR_MAKEFILE "atool_temp\\build\\make_build.default"
-#define RAPTOR_MAKEFILE_LOG " --logfile=atool_temp\\build\\makefile.xml"
-#define RAPTOR_BUILD_LOG " --logfile=atool_temp\\build\\build.xml"
-#define RAPTOR_REALLYCLEAN_LOG " --logfile=atool_temp\\build\\reallyclean.xml"
-#define RAPTOR_BUILD_LOG_NAME "atool_temp\\build\\build.xml"
-#define RAPTOR_LISTING_LOG " --logfile=atool_temp\\build\\listing.xml"
-
-#define RAPTOR_NOBUILD_SWITCH " --nobuild"
-#define RAPTOR_MAKEFILE_SWITCH "--makefile=atool_temp/build/make_build"
-
-
-// Raptor makefile constant variable names
-#define RAPTOR_PROJECT_META "PROJECT_META:="
-#define RAPTOR_SOURCE "SOURCE:="
-#define RAPTOR_TARGET "TARGET:="
-#define RAPTOR_TARGETYPE "TARGETTYPE:="
-#define RAPTOR_REQUESTEDTARGETEXT "REQUESTEDTARGETEXT:="
-#define RAPTOR_VARIANTPLATFORM "VARIANTPLATFORM:="
-#define RAPTOR_VARIANTTYPE "VARIANTTYPE:="
-#define RAPTOR_FEATUREVARIANT "FEATUREVARIANT:="
-#define RAPTOR_FEATUREVARIANTNAME "FEATUREVARIANTNAME:="
-#define RAPTOR_RELEASEPATH "RELEASEPATH:="
-#define RAPTOR_FULLVARIANTPATH "FULLVARIANTPATH:="
-#define RAPTOR_COMPILE_DEFINITIONS "CDEFS:="
-
-// Sbs v.1 makefile constants.
-#define MAKEFILE_SEARCH_STRING "@perl -S checksource.pl"
-#define MMPFILE_SEARCH_STRING "PRJ_MMPFILES MMP"
-#define SOURCE_PATH "SOURCEPATH";
-#define SOURCE_STRING "SOURCE";
-#define TARGET_STRING "TARGET";
-
-/**
-* CATProject represents a project (collection of modules).
-* It has to be set mode in which it operates like
-* compile / analyze and necessary parameters for that.
-* Then call Run method which also returs error codes
-* defined in AT_ERROR_CODES enumeration.
-* @author
-*/
-class CATProject : public CATBase
-{
-public:
-	
-	/**
-	* Enumeration representing used build systems
-	*/
-	enum BUILD_SYSTEM {
-		SBS_V1 = 1,
-		SBS_V2 = 2
-	};
-
-	/**
-	* Enumeration representing the mode project is run.
-	*/
-	enum PROJECT_MODE {
-		COMPILE = 0,
-		INSTRUMENT = 1,
-		UNINSTRUMENT = 2,
-		UNINSTRUMENT_FAILED =3,
-		FAILED = 4,
-		CLEAN = 5,
-		ANALYZE = 6,
-		INSTRUMENT_CONSOLE = 7,
-		UNINSTRUMENT_CONSOLE = 8,
-		FAILED_CONSOLE = 9,
-		NOT_DEFINED = 10
-	};
-
-	/**
-	* Enumeration repserenting the logging mode.
-	*/
-	enum LOGGING_MODE {
-		DEFAULT = 0,
-		S60 = 1,
-		XTI = 2,
-		XTI_FAST = 3
-	};
-
-	/**
-	* Enumeration representing build type.
-	*/
-	enum BUILD_TYPE {
-		UREL = 0,
-		UDEB = 1
-	};
-
-public:
-
-	/**
-	* Constructor
-	*/
-	CATProject();
-
-	/**
-	* Destructor
-	*/
-	~CATProject();
-
-	/**
-	* Set arguments.
-	* @param arguments.
-	* @return true if arguments ok.
-	*/
-	bool SetArguments( ARGUMENTS& arguments );
-
-	/**
-	* Set build system to be used with project.
-	* See BUILD_SYSTEM enumeration for available systems.
-	* @param eSystem system.
-	*/
-	void SetBuildSystem( BUILD_SYSTEM eSystem );
-
-	/**
-	* Set mode which to run.
-	* See PROJECT_MODE enumeration for available modes.
-	* @param eMode mode.
-	*/
-	void SetMode(PROJECT_MODE eMode);
-
-	/**
-	* Get project mode.
-	* @return mode of project.
-	*/
-	int GetMode() const;
-
-	/**
-	* Set epocroot.
-	* @param sEpocroot
-	*/
-	void SetEpocRoot( const string& sEpocRoot );
-
-	/**
-	* Set project platform.
-	* @param sPlatform platform.
-	*/
-	void SetPlatform( const string& sPlatform );
-
-	/**
-	* Set variant.
-	* @sVariant variant.
-	*/
-	void SetVariant( const string& sVariant );
-
-	/**
-	* Set logging mode. See LOGGING_MODE enumeration for available modes.
-	* @param eLogginMode logging mode.
-	*/
-	void SetLoggingMode( LOGGING_MODE eLoggingMode);
-
-	/**
-	* Set build type. See BUILD_TYPE enumeration for available types.
-	* @param eType build type.
-	*/
-	void SetBuildType( BUILD_TYPE eType );
-	
-	/**
-	* Set S60 logging filename.
-	* @param sFileName filename.
-	*/
-	void SetS60FileName( const string& sFileName);
-
-	/**
-	* Set target module.
-	* @param sTargetModule target module name.
-	*/
-	void SetTargetModule( const string& sTargetModule );
-
-	/**
-	* Set multiple target modules used in project.
-	* @param vTargetModules target module names.
-	*/
-	void SetTargetModules( const vector<string>& vTargetModules );
-
-	/**
-	* Set Binary target name to create analysis results to.
-	* @param sBinaryTarget binary target name.
-	*/
-	void SetBinaryTarget( const string& sBinaryTarget );
-
-	/**
-	* Set data file to analyze.
-	* @param sDataFile datafile.
-	*/
-	void SetDataFile( const string& sDataFile );
-
-	/**
-	* Set rom symbol file(s) used in analyze.
-	* @param sRomSymbolFile.
-	*/
-	void SetRomSymbolFiles(const vector<string>& vRomSymbolFiles);
-
-	/**
-	* Set the logging level of analysis report.
-	* @param iLogLevel log level.
-	*/
-	void SetLogLevel( int iLogLevel );
-
-	/**
-	* Set the size of allocation call stack to be written in temporary cpp.
-	* @param iAllocCallStackSize
-	*/
-	void SetAllocCallStackSize( int iAllocCallStackSize );
-
-	/**
-	* Set the size of free call stack to be written in temporary cpp.
-	* @param iFreeCallStackSize
-	*/
-	void SetFreeCallStackSize( int iFreeCallStackSize );
-
-	/**
-	* Set the output file name to store analyse report.
-	* @param sDataFileOutput data file name.
-	*/
-	void SetDataFileOutput( const string& sDataFileOutput );
-
-	/**
-	* Set build command used in compile phase.
-	* @param sBuildCommand build command.
-	*/
-	void SetBuildCommand( const string& sBuildCommand );
-
-	/**
-	* Run the set mode.
-	* @return error code.
-	*/
-	int Run();
-
-	/**
-	* Run recovery, used when "instatly" need to recover modules and exit.
-	*/
-	int RunRecoveryAndExit();
-
-	/**
-	* Get build type string.
-	* @param eType type from which to get correponding string.
-	* @return types corresponding string.
-	*/
-	static string GetBuildTypeString( int eType );
-
-	/**
-	* Reads projects configuration file if it exists.
-	* @return false in case the data contains information that project is uninstrumented. Otherwise returns always true.
-	*/
-	bool IsUninstrumented();
-
-#ifndef MODULE_TEST
-private:
-#endif
-	/**
-	* Run compiling in console.
-	* @return error code.
-	*/
-	int RunCompile( void );
-
-	/**
-	* Run cleaning project.
-	* @return error code.
-	*/
-	int RunClean( void );
-
-	/**
-	* Run running analyze.
-	* @return error code.
-	*/
-	int RunAnalyze( void );
-
-	/**
-    * Run instrumenting of project for Carbide extension (pre-build).
-	* @return error code.
-	*/
-	int RunInstrument( void );
-
-	/**
-	* Run uninstrumenting of project for Carbide extension (post-build).
-	* @return error code.
-	*/
-	int RunUninstrument( void );
-
-	/**
-	* Run uninstrumenting of project for Carbide extension(post-build), when build failed.
-	* @return error code.
-	*/
-	int RunUninstrumentFailed( void );
-
-	/**
-	* Run console instrumenting.
-	* @return error code.
-	*/
-	int RunInstrumentConsole( void );
-
-	/**
-	* Run Console uninstrumenting.
-	* @return error code.
-	*/
-	int RunUninstrumentConsole( void );
-
-	/**
-	* Run console uninstrumenting, when build failed.
-	* @return error code.
-	*/
-	int RunFailedConsole( void );
-
-	/**
-	* Show summary of compilation.
-	*/
-	void DisplayCompileSummary( void );
-
-	/**
-	* Show summary, build target, build type, logging mode...
-	*/
-	void DisplayBuildSummary( void );
-
-	/**
-	* Create make files.
-	* @return true if successful
-	*/
-	bool CreateMakeFile( void );
-	/**
-	* Create SBS v.1 make files.
-	* @return true if successful.
-	*/
-	bool CreateMakeFileSbs1( void );
-	/**
-	* Copy sbs1 makefile to temporary folder.
-	* @return true if successful.
-	*/
-	bool CopyMakeFileSbs1ToTemporaryFolder( void );
-	/**
-	* Run really clean in SBS v.1.
-	* @return true if successful.
-	*/
-	bool RunReallyCleanSbs1( void );
-	/**
-	* Run really clean in SBS v.2.
-	* @return true if successful.
-	*/
-	bool RunReallyCleanSbs2( void );
-	/**
-	* Run export in SBS v.1.
-	* @return true if successful.
-	*/
-	bool RunExportSbs1( void );
-	/**
-	* Create make files (level2) SBS v.1.
-	* @return true if successful.
-	*/
-	bool CreateMakeFileSbs1Level2( void );
-	/**
-	* Create makefile SBS v.2.
-	* @return true if successful.
-	*/
-	bool CreateMakeFileSbs2( void );
-	/**
-	* Read makefile.
-	* @return true if successful.
-	*/
-	bool ReadMakeFile( void );
-	/**
-	* Read SBS v.1 makefile.
-	* @return true if successful.
-	*/
-	bool ReadMakeFileSbs1( void );
-	/**
-	* Read SBS v.1 makefile (Level1).
-	* @return true if successful.
-	*/
-	bool ReadMakeFileSbs1Level1( void );
-	/**
-	* Read SBS v.2 makefiles.
-	* @return true if successful.
-	*/
-	bool ReadMakeFileSbs2( void );
-	/**
-	* Read specified SBS v.2 makefile.
-	* @param sMakeFile makefile to be read.
-	* @return true if succesful.
-	*/
-	bool ReadMakeFileSbs2( string& sMakeFile );
-
-	/**
-	* Filter unsupported and static libraries to their own vectors.
-	* Unsupported include kernel types, modules with kernel mode compile definition.
-	* @return true if successful.
-	*/
-	bool FilterModules();
-
-	/**
-	* Creates temporary directories for all modules
-	* in member vector.
-	* @return true if successful.
-	*/
-	bool CreateTemporaryDirectories();
-
-	/**
-	* Creates tempororary cpp files for all modules
-	* in member vector.
-	* @return true if successful.
-	*/
-	bool CreateTemporaryCpps();
-
-	/**
-	* Hooks all modules in member vector
-	* (modifies mmp files)
-	* @return true if successful
-	*/
-	bool ModifyModules( void );
-
-	/**
-	* Unhooks all modules in member vector
-	* (removes changes from mmp files)
-	* @return true if successful
-	*/
-	bool RestoreModules( void );
-
-	/**
-	* Verifys that member vectors modules
-	* mmp files unchanged. Restores if they are
-	* from backup or from original.
-	* @return true if successful
-	*/
-	bool VerifyAndRecoverModules( void );
-
-	/**
-	* Runs compilation.
-	* @return true if successful.
-	*/
-	bool Compile( void );
-	/**
-	* @return true if successful.
-	*/
-	bool CompileSbs1( void );
-	/**
-	* @return true if successful.
-	*/
-	bool CompileSbs2( void );
-
-	/**
-	* Runs listing creatation.
-	* @return true if successful
-	*/
-	bool CreateListings( void );
-	/**
-	* @return true if successful.
-	*/
-	bool CreateListingsSbs1( void );
-	/**
-	* @return true if successful.
-	*/
-	bool CreateListingsSbs2( void );
-	/**
-	* Copies releasables of modules including lst & map files
-	* for all modules in project to their temporary directories.
-	* @return true if successful.
-	*/
-	bool CopyReleasables( void );
-	/**
-	* Deletes all atool_temp directories
-	* of member vector modules.
-	* @return true if successful.
-	*/
-	bool DeleteTemporaryDirs( void );
-	/**
-	* Deletes files from atool_temp directory
-	* of member vector modules which extension not defined
-	* in TEMP_EXTENSION_NO_DELETE table.
-	* @return true if successful.
-	*/
-	bool CleanTemporaryDirs( void );
-	/**
-	* Writes class attributes to a file
-	* under atool_temp directory.
-	* @return true if successful.
-	*/
-	bool WriteAttributes( void ) const;
-	/**
-	* Read class attributes from a file
-	* under atool_temp directory.
-	* @return true if successful.
-	*/
-	bool ReadAttributes( void );
-
-	/**
-	* Creates atool_temp directory if it does not
-	* exist in current directory.
-	* @return true if successful.
-	*/
-	bool MakeTempDirIfNotExist( void );
-
-#ifndef MODULE_TEST
-private:
-#endif
-
-	/**
-	* Clean all module vectors.
-	*/
-	void CleanModuleVectors();
-
-	/**
-	* Get build type as string.
-	* @return buildtype string.
-	*/
-	string GetBuildTypeString();
-
-	/**
-	* Helper function to add target module(s)
-	* if any defined in class to given sbs command.
-	* @param sCmd command to add modules to.
-	*/
-	void AddTargetModuleIfDefined(string& sCmd);
-
-	/**
-	* Run given system/abld command to all defined target modules in vector.
-	* Space char (if its missing) will be added to given command + one target
-	* module at a time.
-	* @param sCommand sCommand to run.
-	* @return true if none system call sets error level other than 0.
-	*/
-	bool RunAbldCommandToAllTargets( const string& sCommand );
-
-	/**
-	* Check is target module in project.
-	* If no modules / targets defined return value is true.
-	* @return true if target module is in project.
-	*/
-	bool IsTargetModuleInProject( void ) const;
-
-	/**
-	* Initializes member make file variable with correct full path to point (epoc32/build)...
-	* @return true if successful.
-	*/
-	bool InitSbs1MakeFileWithPath();
-
-	/**
-	* Initializes member make file variable with correct full path to (atoo_temp...)
-	* @return true if successful.
-	*/
-	bool InitSbs1MakeFileWithPathToTemp();
-
-#ifndef MODULE_TEST
-private:
-#endif
-	// System current directory.
-	char m_cCurrentDir[ MAX_LINE_LENGTH ];
-	// Projects build system
-	int m_eBuildSystem;
-	// Project modules.
-	vector<CATModule2*> m_vModules;
-	// Static libraries.
-	vector<CATModule2*> m_vStaticLibraries;
-	// Unsupported project modules.
-	vector<CATModule2*> m_vUnsupportedModules;
-	// Run mode.
-	int m_eMode;
-	// Logging level (used in analyse).
-	int m_iLoggingLevel;
-	// Is project unsinstrumented.
-	bool m_bUninstrumented;
-	// Build command.
-	string m_sBuildCommand;
-	// Epocroot
-	string m_sEpocRoot;
-	// Platform i.e. armv5.
-	string m_sPlatform;
-	// SBS2 variant.
-	string m_sVariant;
-	// Logging mode (used in compile,instrumenting).
-	int m_eLoggingMode;
-	// Allocation call stack size
-	int m_iAllocCallStackSize;
-	// Free call stack size
-	int m_iFreeCallStackSize;
-	// Build type udeb / urel.
-	int m_eBuildType;
-	// Sbs v.1 level 1 make file
-	string m_sMakeFile;
-	// User given S60 log file name.
-	string m_sS60FileName;
-	// Target module.
-	string m_sTargetModule;
-	// Target modules (used in carbide instrumenting).
-	vector<string> m_vTargetModules;
-	// Binary target (used in analyse).
-	string m_sBinaryTarget;
-	// User given datafile to analyse.
-	string m_sDataFile;
-	//
-	vector<string> m_vRomSymbolFiles;
-	// Temporary data file name if user gave trace file.
-	string m_sDataFileTemp;
-	// User given output file to store analyse results.
-	string m_sDataFileOutput;
-	// Analyser object.
-	CATDatParser* m_pAnalyzer;
-};
-#endif
-// End of file