apicompatanamdw/compatanalysercmd/libraryanalyser/src/la_otherfunc.cpp
author noe\swadi
Tue, 12 Jan 2010 14:52:39 +0530
changeset 0 638b9c697799
permissions -rw-r--r--
1. Licenses updated to EPL. 2. New components test cases added to BC Drivers 3. Some minor fixes and few feature additions to CA.
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) 2007-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:  Other non-categorized LibraryAnalyser functionality 
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
#include "la.hpp"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    20
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    21
// ----------------------------------------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    22
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    23
void ParseCommandLineParameters(int argc, char* argv[])
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    24
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    25
    //for (int i=1; i<argc; i++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    26
    //    cerr << argv[i] << endl; 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    27
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    28
	// loop through the command line parameters and check their usage
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    29
	int i=1;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    30
	while (i<argc)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    31
	{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    32
		if (StringICmp("-?", argv[i])==0 ||
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    33
		    StringICmp("-h", argv[i])==0 ||
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    34
		    StringICmp("--help", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    35
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    36
			ShowCommandLineOptionsAndExit();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    37
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    38
		
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    39
		else if (StringICmp("GCC", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    40
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    41
			_cl_use_gcc = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    42
			_toolchain_name = "GCC";
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    43
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    44
		
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    45
		else if (StringICmp("GCCE", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    46
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    47
			_cl_use_gcce = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    48
			_toolchain_name = "GCCE";
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    49
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    50
		
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    51
		else if (StringICmp("RVCT", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    52
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    53
			_cl_use_rvct = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    54
			_toolchain_name = "RVCT";
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    55
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    56
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    57
		else if (StringICmp("--uselibs", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    58
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    59
			_cl_use_libs = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    60
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    61
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    62
		else if (StringICmp("--debug", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    63
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    64
			_cl_print_debug = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    65
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    66
				
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    67
		else if (StringICmp("-baselinelibdir", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    68
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    69
			if (i+1<argc) 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    70
			{ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    71
				_cl_baselinelibdir = argv[i+1];
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    72
				//create a vector from the ';' seperated string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    73
				_lib_dirs_baseline = splitString( _cl_baselinelibdir, ';');
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    74
				i++; 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    75
			}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    76
		} 		
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    77
		
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    78
		else if (StringICmp("-currentlibdir", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    79
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    80
			if (i+1<argc) 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    81
			{ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    82
				_cl_currentlibdir = argv[i+1]; 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    83
				//create a vector from the ';' seperated string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    84
				_lib_dirs_current = splitString( _cl_currentlibdir, ';');
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    85
				i++; 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    86
			}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    87
		} 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    88
		else if (StringICmp("-baselinedlldir", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    89
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    90
			if (i+1<argc) 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    91
			{ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    92
				_cl_baselinedlldir = argv[i+1];
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    93
				i++; 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    94
			}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    95
		} 		
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    96
		
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    97
		else if (StringICmp("-currentdlldir", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    98
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
    99
			if (i+1<argc) 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   100
			{ 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   101
				_cl_currentdlldir = argv[i+1]; 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   102
				i++; 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   103
			}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   104
		} 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   105
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   106
		else if (StringICmp("-baselineversion", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   107
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   108
			if (i+1<argc) { _cl_baselineversion = argv[i+1]; i++; }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   109
		} 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   110
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   111
		else if (StringICmp("-currentversion", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   112
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   113
			if (i+1<argc) { _cl_currentversion = argv[i+1]; i++; }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   114
		} 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   115
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   116
		else if (StringICmp("-reportfile", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   117
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   118
			if (i+1<argc) { _cl_reportfile = argv[i+1]; i++; }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   119
		} 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   120
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   121
		else if (StringICmp("-tools", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   122
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   123
			if (i+1<argc) { _cl_toolsdir = argv[i+1]; i++; }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   124
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   125
		
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   126
		else if (StringICmp("-temp", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   127
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   128
			if (i+1<argc) { _cl_tempdir = argv[i+1]; i++; }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   129
		}		
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   130
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   131
		else if (StringICmp("-cfilt", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   132
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   133
			if (i+1<argc) { _cl_cfiltloc = argv[i+1]; i++; }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   134
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   135
		
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   136
		else if (StringICmp("-set", argv[i])==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   137
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   138
			if (i+1<argc) { _cl_set = argv[i+1]; i++; }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   139
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   140
		
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   141
		// check if the parameter is illegal
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   142
        else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   143
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   144
            string param = argv[i];
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   145
            
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   146
            if (!param.empty() && param.at(0) == '-')
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   147
            {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   148
        		cerr << "ERROR: Illegal argument: " << param << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   149
        		cerr << "Type la -? for help" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   150
                exit(EXIT_INVALID_ARGUMENT);            
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   151
            }   
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   152
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   153
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   154
		i++;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   155
	}    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   156
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   157
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   158
// ----------------------------------------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   159
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   160
void ShowCommandLineOptionsAndExit()
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   161
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   162
    cout << "LibraryAnalyser v" << LA_VERSION << " - " << LA_DATE << "\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   163
            "Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   164
            "\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   165
#ifdef WIN32
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   166
            "Usage: la GCC|GCCE|RVCT [options]\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   167
#else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   168
            "Usage: la GCCE|RVCT [options]\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   169
#endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   170
            "\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   171
            "Where:\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   172
#ifdef WIN32
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   173
            "  GCC                      Use Symbian GCC tool chain\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   174
#endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   175
            "  GCCE                     Use CSL ARM tool chain\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   176
            "  RVCT                     Use RVCT tool chain\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   177
            "\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   178
            "Required options:\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   179
            "  -baselinelibdir DIR;DIR	    Read baseline libraries from DIRECTORY\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   180
            "  -currentlibdir DIR;DIR	    Read libraries of current release from DIRECTORY\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   181
            "  -baselineversion NAME    NAME of the baseline\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   182
            "  -currentversion NAME     NAME of the current release\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   183
            "  -reportfile FILE         Save report to FILE\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   184
            "\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   185
            "Required options when RVCT tool chain is used:\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   186
            "  -cfilt FILE              Location FILE of cfilt/c++filt\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   187
            "\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   188
            "Optional options:\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   189
            "  -baselinedlldir          Read baseline dlls from DIRECTORY or dll data from FILE\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   190
            "      DIRECTORY|FILE\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   191
			      "  -currentdlldir           Read dlls from DIRECTORY or dll data from FILE for current release\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   192
            "      DIRECTORY|FILE\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   193
            "  -tools DIRECTORY         DIRECTORY where the used toolset is installed\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   194
            "  -temp DIRECTORY          DIRECTORY to store intermediate files\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   195
            "  -set FILE                Textfile FILE which has a list of libraries to check\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   196
            "  --uselibs                Always use LIBs instead of DSOs (not valid with GCC)\n"
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   197
            "\n";
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   198
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   199
	exit(EXIT_NORMAL);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   200
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   201
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   202
// ----------------------------------------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   203
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   204
void DoInitialChecksAndPreparations()
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   205
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   206
    // get the current date and time
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   207
    time_t timenow_t = time(NULL);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   208
    _timenow = localtime(&timenow_t);  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   209
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   210
    // check parameter correctness
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   211
#ifndef WIN32
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   212
        if (_cl_use_gcc)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   213
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   214
              cerr << "ERROR: GCC tool chain is not supported in Linux" << endl;  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   215
              exit(EXIT_GCC_NOT_SUPPORTED);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   216
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   217
#endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   218
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   219
	if (!_cl_use_gcc && !_cl_use_gcce && !_cl_use_rvct)     
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   220
	{	
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   221
		cerr << "ERROR: No tool chain defined!" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   222
		cerr << "Type la -? for help" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   223
        exit(EXIT_WRONG_USAGE);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   224
	} 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   225
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   226
	if (_cl_use_rvct && _cl_cfiltloc.empty())     
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   227
	{	
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   228
		cerr << "ERROR: Specify -cfilt when RVCT is defined!" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   229
		cerr << "Type la -? for help" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   230
        exit(EXIT_WRONG_USAGE);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   231
	}  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   232
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   233
	if ( (_cl_use_gcc && (_cl_use_gcce || _cl_use_rvct)) || (_cl_use_gcce && (_cl_use_gcc || _cl_use_rvct)) ||
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   234
         (_cl_use_rvct && (_cl_use_gcc || _cl_use_gcce)) )   
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   235
	{	
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   236
		cerr << "ERROR: Specify only one tool chain!" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   237
		cerr << "Type la -? for help" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   238
        exit(EXIT_WRONG_USAGE);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   239
	} 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   240
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   241
	if (_cl_baselinelibdir.empty() || _cl_currentlibdir.empty() || _cl_baselineversion.empty() || _cl_currentversion.empty() || _cl_reportfile.empty())    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   242
	{	
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   243
		cerr << "ERROR: Not all required parameters specified!" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   244
		cerr << "Type la -? for help" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   245
        exit(EXIT_WRONG_USAGE);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   246
	}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   247
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   248
    // make sure the directory names have trailing directory markers
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   249
	vector<string>::iterator i = _lib_dirs_baseline.begin();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   250
	for( ; i != _lib_dirs_baseline.end(); i++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   251
		MakeSureTrailingDirectoryMarkerExists(*i);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   252
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   253
	for( i = _lib_dirs_current.begin(); i != _lib_dirs_current.end(); i++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   254
	    MakeSureTrailingDirectoryMarkerExists(*i);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   255
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   256
    MakeSureTrailingDirectoryMarkerExists(_cl_toolsdir);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   257
    MakeSureTrailingDirectoryMarkerExists(_cl_tempdir);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   258
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   259
	// check if baselinedir & currentdir exists
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   260
	vector<string>::const_iterator j = _lib_dirs_baseline.begin();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   261
	for( ; j != _lib_dirs_baseline.end(); j++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   262
		if (!DirectoryExists(*j))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   263
		{	
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   264
			cerr << "ERROR: " << *j << " not found!" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   265
			cerr << "Check -baselinelibdir parameter" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   266
			exit(EXIT_BASELINEDIR_NOT_FOUND);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   267
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   268
	for( j = _lib_dirs_current.begin(); j != _lib_dirs_current.end(); j++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   269
		if (!DirectoryExists(*j))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   270
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   271
			cerr << "ERROR: " << *j << " not found!" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   272
			cerr << "Check -currentlibdir parameter" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   273
			exit(EXIT_CURRENTDIR_NOT_FOUND);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   274
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   275
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   276
    //if both -baselinedlldir & -currentdlldir are given, check the validity of their value
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   277
    if (!_cl_baselinedlldir.empty() && !_cl_currentdlldir.empty())
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   278
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   279
      if( !FileExists(_cl_baselinedlldir) )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   280
      {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   281
        //create a vector from the ';' seperated string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   282
		    _dll_dirs_baseline = splitString( _cl_baselinedlldir, ';');
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   283
        for( i = _dll_dirs_baseline.begin(); i != _dll_dirs_baseline.end(); i++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   284
			  {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   285
				  MakeSureTrailingDirectoryMarkerExists(*i);        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   286
				  if ( !DirectoryExists(*i) )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   287
				  {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   288
					  cerr << "ERROR: " << *i << " not found!" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   289
					  cerr << "Check -baselinedlldir parameter" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   290
					  exit(EXIT_BASELINEDLLDIR_NOT_FOUND);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   291
				  }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   292
			  }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   293
		  }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   294
		  else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   295
		  {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   296
			  _baselinedllfile = _cl_baselinedlldir;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   297
		  }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   298
      if( !FileExists(_cl_currentdlldir) )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   299
      {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   300
        //create a vector from the ';' seperated string
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   301
		    _dll_dirs_current = splitString( _cl_currentdlldir, ';');
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   302
			  for( i = _dll_dirs_current.begin(); i != _dll_dirs_current.end(); i++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   303
			  {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   304
				  MakeSureTrailingDirectoryMarkerExists(*i);  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   305
				  if ( !DirectoryExists(*i) )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   306
				  {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   307
					  cerr << "ERROR: " << *i << " not found!" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   308
					  cerr << "Check -currentdlldir parameter" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   309
					  exit(EXIT_CURRENTDLLDIR_NOT_FOUND);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   310
				  }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   311
			  }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   312
      }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   313
		  else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   314
		  {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   315
			  _currentdllfile = _cl_currentdlldir;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   316
		  }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   317
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   318
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   319
    // check if user given filter set exists
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   320
    if (!_cl_set.empty() && !FileExists(_cl_set))   
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   321
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   322
		cerr << "ERROR: " << _cl_set << " not found!" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   323
		cerr << "Check -set parameter" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   324
        exit(EXIT_SET_FILE_NOT_FOUND);        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   325
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   326
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   327
    // if tools parameter is empty, try get it from path, otherwise check given parameter
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   328
    if (_cl_toolsdir.empty())
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   329
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   330
        GetToolsPathFromEnvironmentVariable();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   331
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   332
    else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   333
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   334
        // check the given tools directory parameter is valid
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   335
        if (_cl_use_gcc)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   336
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   337
            _gcc_nm_location = _cl_toolsdir + GCC_NM_EXE;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   338
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   339
        	if (!FileExists(_gcc_nm_location))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   340
        	{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   341
        		cerr << "ERROR: Unable to find " + _gcc_nm_location << ", check -tools parameter" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   342
        		cerr << "Tip: GCC is typically installed to \\epoc32\\gcc\\bin directory" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   343
        		exit(EXIT_TOOLCHAIN_NOT_FOUND);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   344
        	}        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   345
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   346
            // extra quotes needed to prevent white space problems while executing the tool
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   347
            InsertQuotesToFilePath(_gcc_nm_location);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   348
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   349
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   350
        else if (_cl_use_gcce)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   351
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   352
            _gcce_nm_location = _cl_toolsdir + GCCE_NM_EXE;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   353
            _gcce_readelf_location = _cl_toolsdir + GCCE_READELF_EXE;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   354
            _gcce_cfilt_location = _cl_toolsdir + GCCE_CFILT_EXE;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   355
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   356
        	if (!FileExists(_gcce_nm_location))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   357
        	{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   358
        		cerr << "ERROR: Unable to find " + _gcce_nm_location << ", check -tools param" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   359
        		cerr << "Tip: GCCE is typically installed to C:\\Program Files\\CSL Arm Toolchain\\bin" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   360
        		exit(EXIT_TOOLCHAIN_NOT_FOUND);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   361
        	} 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   362
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   363
        	if (!FileExists(_gcce_readelf_location))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   364
        	{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   365
        		cerr << "ERROR: Unable to find " + _gcce_readelf_location << ", check -tools param" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   366
        		cerr << "Tip: GCCE is typically installed to C:\\Program Files\\CSL Arm Toolchain\\bin" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   367
        		exit(EXIT_TOOLCHAIN_NOT_FOUND);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   368
        	} 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   369
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   370
        	if (!FileExists(_gcce_cfilt_location))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   371
        	{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   372
        		cerr << "ERROR: Unable to find " + _gcce_cfilt_location << ", check -tools param" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   373
        		cerr << "Tip: GCCE is typically installed to C:\\Program Files\\CSL Arm Toolchain\\bin" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   374
        		exit(EXIT_TOOLCHAIN_NOT_FOUND);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   375
        	} 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   376
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   377
            // extra quotes needed to prevent white space problems while executing the tool
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   378
            InsertQuotesToFilePath(_gcce_nm_location);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   379
            InsertQuotesToFilePath(_gcce_readelf_location);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   380
            InsertQuotesToFilePath(_gcce_cfilt_location);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   381
            
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   382
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   383
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   384
        else if (_cl_use_rvct)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   385
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   386
            _rvct_armar_location = _cl_toolsdir + RVCT_ARMAR_EXE;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   387
            _rvct_fromelf_location = _cl_toolsdir + RVCT_FROMELF_EXE;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   388
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   389
        	if (!FileExists(_rvct_armar_location))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   390
        	{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   391
        		cerr << "ERROR: Unable to find " + _rvct_armar_location << ", check -tools param" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   392
        		cerr << "Tip: Check your environment variables to see the directory where RVCT has been installed" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   393
        		exit(EXIT_TOOLCHAIN_NOT_FOUND);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   394
        	} 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   395
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   396
        	if (!FileExists(_rvct_fromelf_location))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   397
        	{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   398
        		cerr << "ERROR: Unable to find " + _rvct_fromelf_location << ", check -tools param" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   399
        		cerr << "Tip: Check your environment variables to see the directory where RVCT has been installed" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   400
        		exit(EXIT_TOOLCHAIN_NOT_FOUND);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   401
        	} 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   402
                    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   403
            // extra quotes needed to prevent white space problems while executing the tool
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   404
            InsertQuotesToFilePath(_rvct_armar_location);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   405
            InsertQuotesToFilePath(_rvct_fromelf_location);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   406
        }            
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   407
    } // else of if (!cl_toolsdir)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   408
        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   409
    // check path of RVCT's cfilt is correct
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   410
    if (_cl_use_rvct)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   411
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   412
        _rvct_cfilt_location = _cl_cfiltloc;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   413
        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   414
    	if (!FileExists(_rvct_cfilt_location))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   415
    	{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   416
    		cerr << "ERROR: Unable to find " + _rvct_cfilt_location << ", check -cfilt param" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   417
    		cerr << "Tip: Working cfilt.exe can be found from the same directory where LibraryAnalyser has been installed" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   418
    		exit(EXIT_CFILT_NOT_FOUND);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   419
    	}    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   420
        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   421
        // extra quotes needed to prevent white space problems while executing the tool
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   422
        InsertQuotesToFilePath(_rvct_cfilt_location);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   423
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   424
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   425
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   426
    // get temporary directory from environment variable if not specified by the user
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   427
    if (_cl_tempdir.empty())
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   428
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   429
        GetTempPathFromEnvironmentVariable();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   430
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   431
    // otherwise create path to user given parameter 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   432
    else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   433
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   434
        MkDirAll(_cl_tempdir);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   435
    }   
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   436
        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   437
    // check that it is possible to create the temporary file under the temp directory
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   438
    _tempfile_location = _cl_tempdir + TEMP_FILENAME;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   439
    ofstream tempf(_tempfile_location.c_str(), ios::trunc);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   440
    if (!tempf.is_open())
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   441
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   442
        tempf.close();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   443
		cerr << "ERROR: Cannot open " << _tempfile_location << " for writing!" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   444
		cerr << "Please check that are no write permission problems" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   445
		exit(EXIT_CANNOT_WRITE_TO_TEMP_FILE);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   446
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   447
    else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   448
        tempf.close(); 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   449
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   450
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   451
    //if -baselinedlldir or -currentdlldir or both not given, throw warning
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   452
    if (_cl_baselinedlldir.empty() || _cl_currentdlldir.empty() )    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   453
    {	
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   454
        cout << "WARNING: Required parameters for checking dll properties not specified. Breaks in dlls will not be checked!" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   455
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   456
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   457
    // check if analysing .dso or .lib files
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   458
    if (_cl_use_gcc || _cl_use_libs)  // for GCC use always .lib files
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   459
        _lib_extension = ".lib";
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   460
    else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   461
        _lib_extension = ".dso";
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   462
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   463
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   464
// ----------------------------------------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   465
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   466
void GetToolsPathFromEnvironmentVariable()
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   467
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   468
   #ifdef WIN32
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   469
    // get path environment variable
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   470
    const char* env_path = getenv("PATH");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   471
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   472
    if (env_path != NULL)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   473
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   474
        string env_path_str = env_path;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   475
        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   476
        string::size_type previous_delimpos = 0;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   477
        bool match_found(false);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   478
        string test_path;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   479
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   480
        for (unsigned int i=0; i<env_path_str.length(); i++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   481
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   482
            // directories in %PATH% are separated with ';'-char
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   483
            string::size_type delimpos = env_path_str.find(";", i);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   484
            
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   485
            if (delimpos != string::npos)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   486
            {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   487
                // get path
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   488
                test_path = env_path_str.substr(previous_delimpos, delimpos-previous_delimpos);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   489
                
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   490
                //cerr << "Test_path: " << test_path << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   491
                
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   492
                MakeSureTrailingDirectoryMarkerExists(test_path);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   493
                
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   494
                // remember found position
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   495
                previous_delimpos = delimpos + 1;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   496
                i = delimpos;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   497
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   498
                // do check if path is correct
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   499
                if (_cl_use_gcc)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   500
                {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   501
                    _gcc_nm_location = test_path + GCC_NM_EXE;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   502
           
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   503
                	if (FileExists(_gcc_nm_location))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   504
                	{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   505
                		match_found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   506
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   507
                        // extra quotes needed to prevent white space problems while executing the tool
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   508
                        InsertQuotesToFilePath(_gcc_nm_location);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   509
                	}        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   510
                }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   511
            
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   512
                else if (_cl_use_gcce)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   513
                {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   514
                    _gcce_nm_location = test_path + GCCE_NM_EXE;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   515
                    _gcce_readelf_location = test_path + GCCE_READELF_EXE;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   516
                    _gcce_cfilt_location = test_path + GCCE_CFILT_EXE;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   517
            
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   518
                	if (FileExists(_gcce_nm_location) && FileExists(_gcce_readelf_location) && FileExists(_gcce_cfilt_location))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   519
                	{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   520
                		match_found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   521
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   522
                        // extra quotes needed to prevent white space problems while executing the tool
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   523
                        InsertQuotesToFilePath(_gcce_nm_location);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   524
                        InsertQuotesToFilePath(_gcce_readelf_location);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   525
                        InsertQuotesToFilePath(_gcce_cfilt_location);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   526
                	} 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   527
                }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   528
            
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   529
                else if (_cl_use_rvct)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   530
                {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   531
                    _rvct_armar_location = test_path + RVCT_ARMAR_EXE;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   532
                    _rvct_fromelf_location = test_path + RVCT_FROMELF_EXE;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   533
            
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   534
                	if (FileExists(_rvct_armar_location) && FileExists(_rvct_fromelf_location))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   535
                	{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   536
                		match_found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   537
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   538
                        // extra quotes needed to prevent white space problems while executing the tool
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   539
                        InsertQuotesToFilePath(_rvct_armar_location);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   540
                        InsertQuotesToFilePath(_rvct_fromelf_location);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   541
                	} 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   542
                }   
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   543
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   544
            }          
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   545
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   546
            // first matching directory found, no need to loop anymore
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   547
            if (match_found)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   548
            {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   549
                _cl_toolsdir = test_path;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   550
                cerr << "Tool chain found from %PATH% at " << test_path << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   551
                break;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   552
            }                           
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   553
            
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   554
            if (i>5000)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   555
                break;  // something went wrong..
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   556
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   557
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   558
        if (!match_found)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   559
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   560
            cerr << "ERROR: Cannot find specified compiler toolset from PATH environment" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   561
            cerr << "Fix PATH environment variable or specify -tools parameter" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   562
        	exit(EXIT_TOOLCHAIN_NOT_FOUND_FROM_PATH);                      
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   563
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   564
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   565
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   566
    else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   567
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   568
        cerr << "ERROR: PATH environment variable not available, please specify -tools parameter" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   569
    	exit(EXIT_PATH_VARIABLE_NOT_FOUND);                
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   570
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   571
  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   572
   #else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   573
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   574
    cerr << "ERROR: Optional -tools parameter is only supported in Windows environment " << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   575
	exit(EXIT_ONLY_SUPPORTED_IN_WIN32);                
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   576
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   577
   #endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   578
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   579
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   580
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   581
// ----------------------------------------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   582
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   583
void GetTempPathFromEnvironmentVariable()
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   584
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   585
   #ifdef WIN32
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   586
    // get path environment variable
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   587
    const char* env_path = getenv("TEMP");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   588
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   589
    if (env_path != NULL)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   590
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   591
        string env_path_str = env_path;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   592
        MakeSureTrailingDirectoryMarkerExists(env_path_str);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   593
        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   594
        // check if the directory exists
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   595
        if (DirectoryExists(env_path_str))
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   596
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   597
            _cl_tempdir = env_path_str; 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   598
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   599
        else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   600
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   601
            cerr << "ERROR: Directory specified in TEMP environment variable does not exist" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   602
            cerr << "Fix TEMP environment variable or specify -temp parameter" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   603
        	exit(EXIT_TEMP_DIRECTORY_DOES_NOT_EXIST);               
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   604
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   605
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   606
    else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   607
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   608
        cerr << "ERROR: TEMP environment variable not available, please specify -temp parameter" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   609
    	exit(EXIT_TEMP_VARIABLE_NOT_FOUND);                
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   610
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   611
  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   612
   #else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   613
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   614
    cerr << "ERROR: Optional -temp parameter is only supported in Windows environment " << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   615
	exit(EXIT_ONLY_SUPPORTED_IN_WIN32);                
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   616
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   617
   #endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   618
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   619
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   620
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   621
// ----------------------------------------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   622
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   623
void GetListsOfImportLibraries()
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   624
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   625
    string lib_filter = "*" + _lib_extension;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   626
    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   627
    GetFileNamesFromDirectory(_lib_dirs_baseline, lib_filter, _lib_files_baseline);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   628
    GetFileNamesFromDirectory(_lib_dirs_current, lib_filter, _lib_files_current);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   629
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   630
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   631
// ----------------------------------------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   632
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   633
void GetFileNamesFromDirectory(const vector<string>& directories, const string& filter, vector<string>& resultset)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   634
{  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   635
    // get list of files from the directory by executing OS specific dir/ls command
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   636
    string dir_command = DIR_COMMAND;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   637
    vector<string> tempVector;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   638
    vector<string> localVector;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   639
    unsigned int i = 0;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   640
    unsigned int j = 0;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   641
    string cmd;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   642
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   643
    // Get filter extension to compare with libname extension
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   644
	string::size_type dot_loc = filter.find_last_of(".");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   645
	string filterExtensn;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   646
	if (dot_loc != string::npos)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   647
		filterExtensn = filter.substr(dot_loc,string::npos);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   648
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   649
	for(; i < directories.size(); i++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   650
	{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   651
		cmd = dir_command + " \"" + directories.at(i) + "\"" + filter + " " + CERR_TO_NULL;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   652
		ExecuteCommand(cmd, localVector);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   653
		string fileExtn;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   654
		//append the list of files, along with directory names, to a common vector
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   655
		for(j = 0;j < localVector.size(); j++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   656
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   657
			// get lib name extensiion and compare with filter extension.
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   658
			dot_loc = localVector.at(j).find_last_of(".");			
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   659
			if (dot_loc != string::npos)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   660
				fileExtn = localVector.at(j).substr(dot_loc,string::npos);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   661
			// if extensions are not matching , ignore the libname
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   662
			if(stricmp(fileExtn.c_str(),filterExtensn.c_str()) == 0 )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   663
			{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   664
				#ifdef WIN32
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   665
				tempVector.push_back( directories.at(i) + localVector.at(j) );
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   666
				#else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   667
				tempVector.push_back( localVector.at(j) );
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   668
				#endif
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   669
			}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   670
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   671
	}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   672
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   673
	// loop through all returned files
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   674
	for (unsigned int i=0; i<tempVector.size(); i++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   675
	{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   676
		// remove any leading and trailing white spaces
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   677
		string file_entry = tempVector.at(i);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   678
		TrimAll(file_entry);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   679
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   680
		if (!file_entry.empty())
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   681
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   682
			resultset.push_back(file_entry);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   683
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   684
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   685
	}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   686
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   687
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   688
// ----------------------------------------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   689
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   690
void FilterListsOfImportLibraries()
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   691
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   692
    // if list filtering is enabled (-set param), use only those library files defined in the list
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   693
    if (!_cl_set.empty())
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   694
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   695
		// open the file for reading
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   696
        ifstream set_f(_cl_set.c_str());
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   697
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   698
		if (set_f.is_open())
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   699
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   700
            if (_cl_print_debug)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   701
            {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   702
                cerr << "Filtering import libraries based on " << _cl_set << endl;    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   703
            }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   704
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   705
			vector<string> lib_files_filter;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   706
			string item_str;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   707
			int i=0;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   708
			
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   709
			// read all names from the lib
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   710
			while(!set_f.eof() && i<50000)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   711
			{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   712
				getline(set_f, item_str);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   713
				item_str = TrimAll(item_str);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   714
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   715
				if (!item_str.empty())
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   716
                {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   717
                	// strip any directory path, both Windows and Unix style 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   718
                    string::size_type sep_pos = item_str.find_last_of("\\");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   719
                    if (sep_pos != string::npos)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   720
                        item_str = item_str.substr(sep_pos+1, item_str.length()-sep_pos-1); 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   721
                    sep_pos = item_str.find_last_of("/");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   722
                    if (sep_pos != string::npos)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   723
                        item_str = item_str.substr(sep_pos+1, item_str.length()-sep_pos-1);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   724
                        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   725
                    //cerr << "Set filter: " << item_str << endl;     
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   726
                        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   727
                    // append the file name to the vector
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   728
					lib_files_filter.push_back(item_str);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   729
                }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   730
				
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   731
				i++;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   732
			}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   733
			set_f.close();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   734
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   735
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   736
			// remove from _lib_files_baseline those strings which aren't in lib_files_filter
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   737
			for (unsigned int j=0; j<_lib_files_baseline.size(); )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   738
			{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   739
				bool found = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   740
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   741
				for (unsigned int k=0; k<lib_files_filter.size(); k++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   742
				{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   743
                   if (StringICmpFileNamesWithoutExtension(getFilename(_lib_files_baseline.at(j)), lib_files_filter.at(k)) == 0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   744
					{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   745
						// element found, no need to loop anymore
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   746
						found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   747
						break;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   748
					}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   749
				}			
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   750
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   751
				if (!found)  // if not found, remove element j from the vector _lib_files_baseline
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   752
					_lib_files_baseline.erase(_lib_files_baseline.begin()+j, _lib_files_baseline.begin()+j+1);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   753
                else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   754
                    j++;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   755
			}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   756
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   757
			// remove from _lib_files_current those strings which aren't in lib_files_filter
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   758
			for (unsigned int j=0; j<_lib_files_current.size(); )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   759
			{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   760
				bool found = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   761
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   762
				for (unsigned int k=0; k<lib_files_filter.size(); k++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   763
				{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   764
					          if (StringICmpFileNamesWithoutExtension(getFilename(_lib_files_current.at(j)), lib_files_filter.at(k)) == 0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   765
					{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   766
						// element found, no need to loop anymore
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   767
						found = true;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   768
						break;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   769
					}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   770
				}			
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   771
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   772
				if (!found)  // if not found, remove element j from the vector _lib_files_current
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   773
					_lib_files_current.erase(_lib_files_current.begin()+j, _lib_files_current.begin()+j+1);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   774
                else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   775
                    j++;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   776
			}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   777
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   778
		else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   779
		{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   780
    		cerr << "ERROR: Cannot open " << _cl_set << " for reading!" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   781
    		cerr << "Check -set parameter" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   782
            exit(EXIT_CANNOT_OPEN_SET_FILE);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   783
		}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   784
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   785
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   786
    else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   787
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   788
      bool match = false;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   789
      boost::regex re("\\S*\\{\\S{8}\\}\\.[a-zA-Z]{3}");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   790
      
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   791
      // filter out any unwanted files from _lib_files_baseline ex:libcrypto{000a0000}.dso
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   792
      for (unsigned int j=0; j<_lib_files_baseline.size(); )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   793
      {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   794
        match= boost::regex_match(_lib_files_baseline.at(j), re);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   795
       
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   796
        if (match)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   797
          _lib_files_baseline.erase(_lib_files_baseline.begin()+j, _lib_files_baseline.begin()+j+1);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   798
        else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   799
          j++;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   800
      }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   801
      
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   802
      // filter out any unwanted files from _lib_files_current ex:libcrypto{00000009}.lib
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   803
      for (unsigned int j=0; j<_lib_files_current.size(); )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   804
      {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   805
        match= boost::regex_match(_lib_files_current.at(j), re); 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   806
        
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   807
        if (match)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   808
          _lib_files_current.erase(_lib_files_current.begin()+j, _lib_files_current.begin()+j+1);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   809
        else
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   810
          j++;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   811
      }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   812
      
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   813
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   814
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   815
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   816
// ----------------------------------------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   817
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   818
void DoPreAnalysisChecks()
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   819
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   820
    // report an error if nothing to analyse
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   821
    if (_lib_files_baseline.size() == 0 && _lib_files_current.size() == 0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   822
    {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   823
    	cerr << "WARNING: Nothing to analyse!" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   824
    }     
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   825
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   826
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   827
// ----------------------------------------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   828
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   829
void DoFinalTasks()
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   830
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   831
    // delete the temporary file
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   832
    if (!_tempfile_location.empty())
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   833
        RemoveFile(_tempfile_location);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   834
    /*if (!_baselinedllfile.empty())
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   835
        RemoveFile(_baselinedllfile);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   836
    if (!_currentdllfile.empty())
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   837
        RemoveFile(_currentdllfile);*/
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   838
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   839
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   840
// ----------------------------------------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   841
  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   842
void CreateDllDataFile(string dllDataFile, vector<string>& dllPath, string type)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   843
{  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   844
  string filter = "*.dll";
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   845
  vector<string> dlls_done; 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   846
  vector<string> resultset;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   847
  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   848
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   849
  ofstream outputfile( dllDataFile.c_str());
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   850
  if(!outputfile.is_open())
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   851
  {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   852
    cerr << "ERROR: Cannot open " << dllDataFile << " for writing!" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   853
    exit(EXIT_CANNOT_OPEN_FILE);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   854
  }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   855
  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   856
  WriteXMLLineOpeningTag(outputfile,0,"dll_list");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   857
	
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   858
  GetFileNamesFromDirectory(dllPath,filter,resultset);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   859
  vector<string>::iterator dll = resultset.begin();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   860
  for( ; dll != resultset.end(); dll++)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   861
  {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   862
     	string dllname =  getFilename(*dll);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   863
      //consider the dll only if the corresponding library is to be analysed
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   864
      vector<string>::const_iterator i = _lib_files_baseline.begin();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   865
      for(; i != _lib_files_baseline.end(); ++i)   
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   866
      {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   867
        if(StringICmpFileNamesWithoutExtension(getFilename(*i),dllname)==0)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   868
					break;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   869
			}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   870
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   871
      if (i == _lib_files_baseline.end())
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   872
        continue;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   873
                
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   874
      //consider the dll file only once
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   875
      if(count(dlls_done.begin(),dlls_done.end(),dllname)==1)
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   876
      {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   877
        cout<<"Warning: More than one files matches for the given filename '"<<dllname;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   878
        cout<<"' in the "<<type<<" sdk, only the first file is used."<<endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   879
        dlls_done.push_back(dllname);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   880
        continue;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   881
      }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   882
      
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   883
      if(count(dlls_done.begin(),dlls_done.end(),dllname)>1) 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   884
        continue;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   885
      
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   886
      dlls_done.push_back(dllname);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   887
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   888
      
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   889
      WriteXMLLineOpeningTag(outputfile,0,"dll");    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   890
      WriteXMLLineOpenClosed(outputfile,1,"dllname",dllname);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   891
			
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   892
      fstream dllFile((*dll).c_str(),ios::binary | ios::in);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   893
	
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   894
      if(!dllFile.is_open())
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   895
      {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   896
        cerr << "ERROR: Cannot open " << *dll << " for reading!" << endl;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   897
        exit(EXIT_CANNOT_OPEN_FILE);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   898
      }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   899
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   900
      string value;
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   901
      
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   902
      value=HexValueAt(dllFile, UID1_OFFSET); // 0x00 offset of UID1
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   903
      WriteXMLLineOpenClosed(outputfile,1,"uid1",value);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   904
			
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   905
      value=HexValueAt(dllFile, UID2_OFFSET); // 0x04 offset of UID2
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   906
      WriteXMLLineOpenClosed(outputfile,1,"uid2",value);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   907
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   908
      value=HexValueAt(dllFile, UID3_OFFSET); // 0x08 offset of UID3
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   909
      WriteXMLLineOpenClosed(outputfile,1,"uid3",value);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   910
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   911
      value=HexValueAt(dllFile, SID_OFFSET); // 0x80 offset of Secure ID
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   912
      WriteXMLLineOpenClosed(outputfile,1,"sid",value);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   913
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   914
      value=HexValueAt(dllFile, CAPABILITY_OFFSET); // 0x88 offset of Capabilities
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   915
      WriteXMLLineOpenClosed(outputfile,1,"capability",value);
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   916
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   917
      WriteXMLLineClosingTag(outputfile,0,"dll");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   918
			
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   919
      dllFile.close();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   920
  }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   921
  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   922
  WriteXMLLineClosingTag(outputfile,0,"dll_list");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   923
  outputfile.close();
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   924
  
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   925
}
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   926
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   927
// ----------------------------------------------------------------------------------------------------------
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   928
void GetDllDataFiles()
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   929
{
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   930
    if (!_cl_baselinedlldir.empty() && !_cl_currentdlldir.empty() )    
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   931
    {	
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   932
        //if -baselinedlldir value is path, construct the dll data xml file 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   933
        if( _baselinedllfile.empty() )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   934
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   935
            _baselinedllfile = _cl_tempdir + "baselinedlldata.xml";
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   936
            CreateDllDataFile(_baselinedllfile,_dll_dirs_baseline, "baseline");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   937
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   938
        //if -currentdlldir value is path, construct the dll data xml file 
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   939
        if( _currentdllfile.empty() )
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   940
        {
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   941
            _currentdllfile = _cl_tempdir + "currentdlldata.xml";
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   942
            CreateDllDataFile(_currentdllfile,_dll_dirs_current, "current");
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   943
        }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   944
    }
638b9c697799 1. Licenses updated to EPL.
noe\swadi
parents:
diff changeset
   945
}