This file is indexed.

/usr/share/doc/gnat-gps/html/Extending-Projects.html is in gnat-gps-doc 5.0-6.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<html lang="en">
<head>
<title>Extending Projects - Using the GNAT Programming Studio</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using the GNAT Programming Studio">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Project-Handling.html#Project-Handling" title="Project Handling">
<link rel="prev" href="Scenarios-and-Configuration-Variables.html#Scenarios-and-Configuration-Variables" title="Scenarios and Configuration Variables">
<link rel="next" href="Project-View.html#Project-View" title="Project View">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 2002-2010 AdaCore.

This document is free; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This document is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, see `http://www.gnu.org/licenses/'.-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
pre.smallexample {background-color:rgb(240,240,240);
                     font-family: courier new,courier,fixed;
                     font-size: 14px;
                     margin: 0px 40px 0px 40px;
                     border-width: 1px 2px 2px 1px;
                     border-top-style: dotted;
                     border-left-style: dotted;
                     border-right-style: solid;
                     border-bottom-style: solid;
                     border-color: black;}
   code             {color:black;
                     font-family: courier new,courier,fixed;
                     font-size: 14px;}
   body             {font-family: arial,helvetica,sans-serif;
                     font-size: 16px;
                     max-width: 800px;
                     text-align: justify}
   samp             {font-family: courier new,courier,fixed;
                     font-size: 14px}
                    
--></style>
</head>
<body>
<div class="node">
<a name="Extending-Projects"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Project-View.html#Project-View">Project View</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Scenarios-and-Configuration-Variables.html#Scenarios-and-Configuration-Variables">Scenarios and Configuration Variables</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Project-Handling.html#Project-Handling">Project Handling</a>
<hr>
</div>

<h3 class="section">7.4 Extending Projects</h3>

<p><a name="index-projects_002c-extending-352"></a><!--  -->

<h4 class="subsection">7.4.1 Description of extending projects</h4>

<p class="noindent">The project files were designed to support big projects, with several
hundreds or thousands of source files. In such contexts, one developer
will generally work on a subset of the sources. It is also not rare for
such a project to take several hours to fully compile. Most developers
therefore do not need to have the full copy of the project compiled on
their own machine or personal disk space.

   <p>However, it is still useful to be able to access other source files
of the application, for instance to find out whether a subprogram can be
changed and where it is currently called.

   <p>Such a setup can be achieved through extending projects. These are
special types of projects that inherit most of their attributes and source
files from another project, and can have, in their source directories, some
source files that hide/replace those inherited from the original project.

   <p>When compiling such projects, the compiler will put the newly created
project files in the extending project's directory, and will leave the original
untouched. As a result, the original project can be shared read-only among
several developers (for instance, it is usual for this original project to be
the result of a nightly build of the application).

<h4 class="subsection">7.4.2 Creating extending projects</h4>

<p class="noindent">This project wizard allows you to easily create extending projects. You
should select an empty directory (which will be created automatically if
needed), as well as a list of source files you want to work on initially. 
New files can also be added later.

   <p>As a result, GPS will copy the selected source files to the new directory
(if you so decided), and create a number of project files there. It will then
load a new project, which has the same properties as the previous
one, except that some files are found transparently in the new directory,
and object files resulting from the compilation are create into that
directory as opposed to the object directory of the original project.

<h4 class="subsection">7.4.3 Adding files to extending projects</h4>

<p><a name="index-Add-To-Extending-Project-353"></a>
Once you have loaded an extending project in GPS, things work mostly
transparently. If you open a file through the <code>File-&gt;Open From Project</code>
dialog, the files found in the local directory of your extending project
will be picked up first.

   <p>The build actions will create object files in the extending project's
directory, leaving the original project untouched.

   <p>It might happen that you want to start working on a source file that you
had not added in the extending project when it was created. You can of course
edit the file found in the original project, provided you have write access
to it. However, it is generally better to edit it in the context of the
extending project, so that the original project can be shared among
developers.

   <p>This can be done by clicking on the file in the <code>Project View</code>, then
selecting the menu <code>Add To Extending Project</code>. This will popup a
dialog asking whether you want GPS to copy the file to the extending
project's directory for you. GPS might also create some new project files
in that directory if necessary, and automatically reload the project as
needed. From then on, if you use the menu <code>File-&gt;Open From Project</code>,
GPS will first see the file from the extending project.

   <p>Note that open editors will still be editing the same file they were before,
so you should open the new file if needed.

<!--  -->
   </body></html>