<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type"content="text/html; charset=utf-8">
    <link href="../style.css" rel="Stylesheet" type="text/css">
    <title>File set editor</title>
  </head>
  <body>
    <h2>File set editor</h2>
    <p>
      File set editor can be used to edit the details of a single file set. These file sets can be used to 
      group files together to be referenced by other sections of a component.
    </p>
    <p>
        <b>Name</b> is a mandatory identifier for the <i>file set</i>.
    </p>
    <p>
        <b>Display name</b> is an optional and used for a more user-friendly identifier.
    </p>
    <p>
        <b>Description</b> is an optional field for textual description of the <i>file set</i>.
    </p>
    <p>
      <b>Group identifier</b> can be used to describe the function or purpose of the file set with a single
      unbounded word. <i>Group identifiers</i> can contain several identifiers and the number of possible 
      identifiers is not limited. However, the editor suggests the following options:
    </p>
    <ul>
      <li>diagnostics</li>
      <li>documentation</li>
      <li>projectFiles</li>
      <li>simulation</li>
      <li>sourceFiles</li>
    </ul>

    <h3>Files</h3>
    <p>
      Files editor lists the files contained within the file set.
	</p>
	<p>
      Each <i>file</i> has a <b>file name</b> identifying the file. The name is mandatory and it is 
	  determined automatically from the file path.
    </p>
    <p>
      <b>File path</b> is mandatory and defined as relative to the component XML-file, 
	  as an absolute path or as an external URI. If an URI is used, the schema must be explicitly 
	  defined (e.g. http://...).
    </p>
    <p>
      <b>File type</b> is mandatory and helps categorize the file and links files to their build command (see below). 
	  A file can have more than one type.
    </p>
    <p>
      <b>Description</b> is a freely formatted text describing a single file.
    </p>
    <p>
      New files can be added by creating new rows, browsing the files using the context menu option described below
      or by drag-dropping the files onto the editor. If the order of files is important for e.g. compilation then 
      the files should be listed in the required order. The order of the files can be changed by dragging the rows.
    </p>
    <p>
      The files box also contains a context menu (right mouse button) that has the following options:
    </p>
    <ul>
      <li>Add new files to the file set by browsing the file system (Add file(s)...)</li>
      <li>Add new file to the file set (Add row)</li>
      <li>Remove file from file set (Remove row)</li>
      <li>Clear the selected cells</li>
      <li>Copy the contents of the selected cells to clipboard</li>
      <li>Paste the contents of the clipboard to the selected cells</li>
      <li>Import a csv-file to the editor</li>
      <li>Export the contents of the editor to a csv-file</li>	  
    </ul>
    
    <h3>Default build commands</h3>
    <p>
      <b>Default build command</b> defines how to build the files within the file set by e.g. running gcc
      for C files or vcom for VHDL.
    </p>
    <p>
      <b>File type</b> defines which files are build by the given <i>command</i>.
    </p>
    <p>
      <b>Flags</b> define the command line options for the <i>command</i> e.g. -Wall.
    </p>
    <p>
      The defined command can either <b>replace default flags</b> defined in the target <i>file</i> or be 
      appended to it. The value can be given as an expression, but must evaluate to 1 or 0.
    </p>

    <h3>Dependent directories</h3>
    <p>
      <b>Dependent directories</b> can specify a freetext list of paths to directories on which this file
      set depends, e.g. directories of include files.
    </p>

  </body>
</html>