<!--  
///////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2000-2018 Ericsson Telecom AB                               //
//                                                                           //
// All rights reserved. This program and the accompanying materials          //
// are made available under the terms of the Eclipse Public License v2.0     //
// which accompanies this distribution, and is available at                  //
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html                                 //
///////////////////////////////////////////////////////////////////////////////
-->
In order to use the project file, you have to define some variables
in the Eclipse workplace.
Select Window - Preferences - General - Workspace - Linked resources.
Than create the following new variables:
- CoreLibraryPath that points to the path of the EPTF_Core_Library_CNL113512 directory,
  probably Z:\TCC_Common\Libraries\EPTF_Core_Library_CNL113512.
- TestPorts that points to the TestPorts directory,
  probably Z:\TCC_Common\TestPorts
- TCCUsefulFunctions that points to the TCCUsefulFunctions_CNL113472 directory,
  probably Z:\TCC_Common\Libraries\TCCUsefulFunctions_CNL113472
You have to set a valid working directory and makefile generationproperties also.
Running the tests yuo must start the runtime GUI with a VALID surface.
