apicompatanamdw/compatanalysercmd/headeranalyser/src/CmdGlobals.h
author noe\swadi
Mon, 26 Apr 2010 16:28:13 +0530
changeset 3 ebe3f8f03b59
parent 0 638b9c697799
child 12 a0eee409ff14
permissions -rw-r--r--
Compatibility Analyser updated to version 2.8.4. Support for Qt code analysis added.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     1
/*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     2
* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     3
* All rights reserved.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     4
* This component and the accompanying materials are made available
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     6
* which accompanies this distribution, and is available
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     8
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
     9
* Initial Contributors:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    11
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    12
* Contributors:
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    13
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    14
* Description:  Global defines
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    15
*
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    16
*/
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    17
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    18
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    19
#ifndef __CMD_GLOBALS__
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    20
#define __CMD_GLOBALS__
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    21
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    22
// Program parameter defines
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    23
#define BASELINE "baseline"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    24
#define CURRENT "current"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    25
#define BASELINEDIR "baselinedir"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    26
#define CURRENTDIR "currentdir"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    27
#define REPORTFILE "reportfile"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    28
#define BASELINEVERSION "baselineversion"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    29
#define CURRENTVERSION "currentversion"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    30
#define COMMANDFILE "commandfile"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    31
#define RECURSIVE "recursive"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    32
#define EPOCROOT "epocroot"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    33
#define FNPARENTNODENAME "headerfilenames"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    34
#define FNNODENAME "headerfile"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    35
#define FILEREPLACE "replace"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    36
#define BASELINEPLAT "baseplatformheaders"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    37
#define CURRENTPLAT "currentplatformheaders"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    38
#define BUNDLESIZE "bundlesize"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    39
#define TEMPDIR "temp"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    40
#define HEADERSET "set"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    41
#define BASEFORCEDHEADERSFILE "forcebaseinclude"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    42
#define CURRENTFORCEDHEADERSFILE "forcecurrentinclude"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    43
#define DOCURL "docurl"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    44
#define DISCARDDIRS "excludedirs"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    45
#define BASEPLATFORMDATA "baseplatformdata"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    46
#define CURRENTPLATFORMDATA "currentplatformdata"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    47
#define USETHREAD "usethread"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    48
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    49
#define RH_EXTENSION ".rh"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    50
#define WILDCARD_DEFAULT "*.h;*.hrh;*.rsg;*.mbg;*.hpp;*.pan;*.rh"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    51
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    52
#define TRIMXML "trimxml"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    53
#if defined(_DEBUG) || defined(DEBUG)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    54
#define COMMANDLINETEST "cmdtest"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    55
#endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    56
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    57
#define MAX_THREAD_COUNT 3
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    58
#define MAX_THREAD_COUNT2 3
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    59
#define PLATFORM_BUNDLESIZE 20
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    60
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    61
#define PREPROCESS_BUFFERSIZE 5000000
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    62
// Maximum bundle size
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    63
#define MAX_BUNDLESIZE        9999
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    64
// Warning size of bundle
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    65
#define BUNDLESIZE_WARNING    100
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    66
#define STR_ATTRIBUTE_STR "__attribute((gccxml(\"exported\")))"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    67
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    68
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    69
// uncomment USE_INCLUDED_GCC_DISTRIBUTION if you want to use a GCCXML distribution that 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    70
// is found in the working directory
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    71
//#define USE_INCLUDED_GCC_DISTRIBUTION
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    72
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    73
// uncomment USE_CUSTOM_GCC_DISTRIBUTION if you want to use a GCCXML distribution that
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    74
// is found from PATH environment variable
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    75
#define USE_CUSTOM_GCC_DISTRIBUTION
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    76
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    77
//#define PROCESS_MULTIPLE
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    78
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    79
// Which environment we're compiling for
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    80
#if defined(_WIN32) || defined(WIN32)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    81
#define __WIN__
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    82
#define DIR_SEPARATOR '\\'
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    83
#define WILDCARD_ALLFILES "*.*"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    84
#define XMLCHAR XMLCh
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    85
#define XMLLITERAL(a) (const XMLCh*)a
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    86
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    87
#define ANALYSER_REPORT_DIR_SIZE 2
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    88
#define ANALYSER_HEADER_MAX_LENGTH 3
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    89
#define ANALYSER_HEADER_SIZE 2
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    90
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    91
#define ACCESS _access
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    92
#define APPEND_DIR_SEPARATOR '\\\\'
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    93
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    94
#define GET_FULLY_QUALIFIED_NAME ret.second = KXMLClassString
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    95
#define TO_LOWER_CASE ret = strlwr(tempvar)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    96
#define TO_UPPER_CASE ret = strupr(tempvar)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    97
#define REMOVE_FILE_FUNCTION success = DeleteFile(file.c_str());\
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    98
        if (success == KErrorRemoveFailed){\
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    99
			unsigned long int errorcode = GetLastError();\
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   100
			if (errorcode != ERROR_FILE_NOT_FOUND){\
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   101
				notRemovedFiles.push_back(file);}}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   102
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   103
#else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   104
#define __UNIX__
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   105
#define DIR_SEPARATOR '/'
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   106
#define WILDCARD_ALLFILES "*"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   107
#define XMLCHAR char
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   108
#define XMLLITERAL(a) a
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   109
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   110
#define ANALYSER_REPORT_DIR_SIZE 0
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   111
#define ANALYSER_HEADER_MAX_LENGTH 1
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   112
#define ANALYSER_HEADER_SIZE 0
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   113
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   114
#define ACCESS access
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   115
#define APPEND_DIR_SEPARATOR '/'
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   116
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   117
#define GET_FULLY_QUALIFIED_NAME  if (!GClassString)\
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   118
        {GClassString = XMLString::transcode(KXMLClassString);}\
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   119
        ret.second = GClassString
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   120
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   121
#define TO_LOWER_CASE for(unsigned int i = 0; i < len; i++)\
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   122
                      {tempvar[i] = std::tolower(tempvar[i]);}\
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   123
                        ret = tempvar
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   124
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   125
#define TO_UPPER_CASE for(unsigned int i = 0; i < len; i++)\
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   126
        {tempvar[i] = std::toupper(tempvar[i]);}\
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   127
         ret = tempvar
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   128
#define REMOVE_FILE_FUNCTION success = unlink(file.c_str());\
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   129
		 if (success == -1){\
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   130
			if (errno != ENOENT){\
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   131
				notRemovedFiles.push_back(file); }}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   132
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   133
#define REMOVE_COMPILATION_ERROR_FILE string filename = "rm compilation_error.txt";\
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   134
		                              system(filename.c_str());
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   135
#endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   136
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   137
#ifdef __WIN__
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   138
#pragma warning(disable:4786)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   139
#pragma warning(disable:4503)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   140
#endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   141
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   142
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   143
#define PARSING_ERRORS_LETHAL
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   144
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   145
#define USE_CPP_HACK
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   146
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   147
#define APPEND_DIRECTORIES_TO_FILENAMES
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   148
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   149
enum parserstate 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   150
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   151
    EStateSearching = 0,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   152
    EStateReplacing,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   153
    EStateReplaceDone
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   154
};
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   155
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   156
// Parameter types
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   157
// How parameters are set
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   158
enum parmtype
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   159
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   160
    EParmEnvironment = 0,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   161
    EParmCommandFile,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   162
    EParmCommandLine
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   163
};
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   164
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   165
// How to trim strings
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   166
enum trimtype
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   167
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   168
    ETrimNone = 0,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   169
    ETrimWhitespaces = 1,
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   170
    ETrimNewlines = 2
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   171
};
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   172
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   173
#define STR_EXPORT_HACK "__THIS_IS_EXPORTED__"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   174
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   175
#if (_MSC_VER >= 1300) && (WINVER < 0x0500)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   176
//VC7 or later, building with pre-VC7 runtime libraries
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   177
extern "C" long _ftol( double ); //defined by VC6 C libs
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   178
extern "C" inline long _ftol2( double dblSource ) { return _ftol( dblSource ); }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   179
#endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   180
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   181
#endif