A Look at the Project Directory
Before we proceed with the facilities of the environment, let's take a look at the way EiffelStudio organizes project files.
With EiffelStudio, you build projects. Most projects yield an executable system, although you can also build a project just to define a library for use by such systems.
Every session is relative to a project; you can start a new project from within EiffelStudio by following the menu path:
File --> New Project
... but please don't select that menu entry now as we have many more things to do with our current project first.
Every project has a project directory which will contain the files generated and managed by EiffelStudio. The project directory may also host some of the source files containing your Eiffel classes, the ECF (eiffel configurationl file), and external software written in other languages. However, it is not required that everything be stored together; the source files and ecf may reside anywhere. Some users, in fact, like to put nothing other than the EiffelStudio-generated files in the project directory; this separates user-managed and system-managed files, and can facilitate configuration management, backups and porting.
In this simple Tour, things have been set up so that all the files of interest, source texts as well as generated ones, will appear in the project directory
$ISE_EIFFEL\examples\studio\tour or the copy that you have made). Go to that project directory using the Windows explorer or a
cd command, and look at its contents (using
ls on Unix/Linux):
The contents of this
YOURDIR directory includes the following:
- First you see a number of files with the extension
.e, for "Eiffel":
invalid.eand others. These are the Eiffel source files, each containing one class. The recommended convention is to store a class of name
CLASS_NAMEinto a file of name
class_nameis the lower-case version of
CLASS_NAME; here, file
heir.econtains the class
HEIRand so on. As you may remember, Eiffel is case-insensitive, but the standard convention for class names is to write them in all upper case. Calling the file
class_name.eis only a recommendation, not an obligation; but you are required to store one class per file. This keeps things simple and facilitates project and configuration management.
- You also notice a file with an
ecfextension. This is the configuration file that specifies this project. As you remember, the ECF file for this example was available as part of the delivery; we used it to compile the project. In most practical cases, however, you won't need to build an ECF; if you use the "Create project" option of EiffelStudio, EiffelStudio will build the ECF for you; if you change the Project Settings during a session, EiffelStudio will update the ECF. ECF files are written in a XML notation.
- You will notice a subdirectory called
EIFGENs, for "
EIFGENsis created and maintained by the compiler to store information about your project, including generated code for execution. EiffelStudio manages your project in such a way that
EIFGENscan always be re-generated if need be; this means in particular that if things go wrong for any reason and you want to make a fresh start you can always delete this directory and recompile your system. This also means that you should not add any files into this directory, or modify any of its files, since a later compilation is free to change or regenerate whatever it chooses in
- Because the demonstration system for the Tour is a Microsoft Windows system, there is a file named
simple.rcin the folder. This is a Windows resource file that was created automatically by EiffelStudio.
Later on, we will see that EiffelStudio may generate three more subdirectories of the project directory:
Diagrams, if you produce graphical system diagrams;
Documentation, if you request system documentation, for example HTML; and
Metrics, if you perform measurements on your system. Other than these directories,
EIFGENs EiffelStudio will not touch anything in the project directory, so you may safely add and change whatever files and subdirectories you like.
You seldom need to look into
EIFGENs, although you should know that it's there. Right now if you check the contents of the project directory
YOURDIR (using the Windows Explorer on Windows, the
ls command on Unix, or some equivalent mechanism), you will see that
EIFGENs has been created, itself with a subdirectory called
classic which is the name of the target and which has some subdirectories, including
W_Code which contains the generated code (
W for "Workbench" -- we'll see the reason later). Feel free to browse through it if you like, but don't change anything.
By the way, we are now done with any platform-specific instructions. Everything in the rest of this Tour, other than the graphical look-and-feel, will work the same across all EiffelStudio platforms.