source: CMT/v1r18p20041201/doc/CMTFAQ.html @ 1

Last change on this file since 1 was 1, checked in by arnault, 19 years ago

Import all tags

File size: 7.3 KB
Line 
1<!--
2//-----------------------------------------------------------
3// Copyright Christian Arnault LAL-Orsay CNRS
4// arnault@lal.in2p3.fr
5// See the complete license in cmt_license.txt "http://www.cecill.info".
6//-----------------------------------------------------------
7-->
8
9<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
10<html>
11  <head>
12    <title>FAQ on CMT</title>
13  </head>
14
15  <body>
16    <center><h1>FAQ on CMT</h1></center>
17    <h1>Index</h1>
18
19    <ol>
20      <li><a href="#Providing sourceless documents">Providing sourceless documents</a>
21      <li><a href="#Accessing packages in a sub-directory">Accessing packages in a sub-directory</a>
22    </ol>
23
24    <hr>
25    <h1><a name="Providing sourceless documents"/>Providing sourceless documents</h1>
26
27    <blockquote>
28      <i>
29        I'm always trying to use CMT together with java and I now have
30        problems with the documentation.
31 
32      <p> What I'd like to do is just generating automatically my
33        documentation using javadoc. Since it is not done in cmt, I tried to
34        write a new fragment to define a new document type : javadoc.
35 
36      <p>The problem is that the process of generating the doc is not a
37        file to file process : it does not take a .java file to write a
38        .html. It takes a java package name (which has no associated file)
39        and returns many files.  This is not possible with the current
40        implementation of document. It seems that adding this feature would
41        lead to write some code into cmt_generator.
42       
43      <p>Does anyone see another method to generate my documentation ?
44       
45      <p>Sebastien
46      </i>
47    </blockquote>
48   
49    <p>In fact what you ask for is already available in CMT, it is
50      documented (although likely crypticly ;-) ) as follows :
51     
52    <p>Since your "document generator" does not make use of any source
53      file per se, it's likely that you will provide as the fragments the
54      following files (I use as an example the name "javadoc" for your
55      document type):
56     
57      <font face="courier new, courier" COLOR="#770077"> 
58        <b> 
59        <pre>
60...
61make_fragment javadoc_header
62make_fragment javadoc -header=javadoc_header
63...
64        </pre>   
65      </b> 
66      </font> 
67     
68    <p>  where javadoc is simply ... empty.
69     
70    <p>I remind you that here :
71     
72    <ul>
73      <li> javadoc_header will be instanciated once per document
74      <li> javadoc will be instanciated once per source file (thus never if
75        no source file is specified)
76    </ul>
77   
78    <p>Then a document associated with the javadoc type could be specified
79      as follows, using the <i>unusual</i> feature I mentioned above
80     
81      <font face="courier new, courier" COLOR="#770077"> 
82        <b> 
83        <pre>
84document javadoc MyDoc JAVAPACKAGE=MyPackage
85        </pre>   
86      </b> 
87      </font> 
88     
89    <p>Here the syntax <b>JAVAPACKAGE=MyPackage</b> corresponds to
90      providing user-defined templates in the document's fragments
91     
92      (see the general <a href="CMTDoc.html#kw-constituent-option">syntax</a>)
93     
94      every variable name should then correspond within the fragment to
95      constructs like (appearing anywhere in the fragment)
96     
97      <font face="courier new, courier" COLOR="#770077"> 
98        <b> 
99        <pre>
100...
101... ${JAVAPACKAGE} ...
102...
103        </pre>   
104      </b> 
105      </font> 
106     
107    <blockquote>
108      <i>
109        (please note the <b>${..}</b> syntax with required braces around the
110        variable name)
111      </i>
112    </blockquote>
113       
114    <p>You have probably already understood that CMT provides internal
115      predefined similar <a href="CMTDoc.html#Standard templates for makefile fragments">variable names</a>
116     
117    <p>the typical example being <b>CONSTITUENT</b> which is replaced by the
118      constituent name when the fragment is instanciated.
119     
120    <p>What I'm talking about here consists in adding any number of
121      user-defined variables which value will be specified on the <b>document</b> 
122      statement line using any number of <b>&lt;variable-name&gt;=&lt;value&gt;</b> constructs.
123     
124    <p>You will notice that the all-uppercase convention has been selected
125      for CMT-internal variables (eg. <b>CONSTITUENT</b>). This is why I have used
126      this convention for this example. This is only a convention, any form
127      is possible here. The only constraint being that it should not overlap
128      with a macro name or an env. var name.
129     
130    <hr>
131    <h1><a name="Accessing packages in a sub-directory"/>Accessing packages in a sub-directory</h1>
132
133    <blockquote><i>
134      <p>I tried to use CMT with sub-packages. How does this work? If I
135        have on cvs a structure like
136     
137        <font face="courier new, courier" COLOR="#770077"> 
138          <b> 
139          <pre>
140 Velo/VeloEvent/..
141     /VSicbCnv/..
142          </pre>   
143        </b> 
144        </font>
145       
146      <p>and on disk:
147       
148        <font face="courier new, courier" COLOR="#770077"> 
149          <b> 
150          <pre>
151 Velo/VeloEvent/v3/..
152     /VSicbCnv/v3/..
153          </pre>   
154        </b> 
155        </font>
156       
157      <p> it recognizes the stuff in the use statement, but when I say
158      <b>cmt show packages</b> they are not there...  Hence, the
159      add-in for devstudio fails.
160      </i></blockquote>
161
162    <p>Well this is just a subtle effect :
163
164    <ul>
165      <li> when you are in the context of say <b>VeloEvent/v3</b>,
166      then the path of the current package is implicitly added to the
167      search path, all the used packages that reside in this same root
168      are visible (which explains that the <b>cmt show uses</b>
169      works).
170
171      <li> but, when you ask for <b>cmt show packages</b>, this is
172      performed outside of any context (mainly because it can be done
173      from any location). Then only packages reachable in the search
174      path (ie. <b>CMTPATH</b> or in the <b>CMT\path</b> registry set)
175      are visible.
176    </ul>
177
178    <p>Then in your precise case, you can do one of the following :
179
180    <ol>
181     
182      <li>If you strictly have (as you explained)
183       
184        <font face="courier new, courier" COLOR="#770077"> 
185          <b> 
186          <pre>
187 xxx/Velo/VeloEvent/v3/..
188         /VSicbCnv/v3/..
189          </pre>   
190        </b> 
191        </font>
192       
193        <p>then the <b>CMTPATH</b> should include <b>xxx/Velo</b> in
194        order to make both <b>VeloEvent</b> and <b>VSicbCnv</b>
195        visible.
196         
197      <li> If <b>Velo</b> is itself a package :
198
199        <font face="courier new, courier" COLOR="#770077"> 
200          <b> 
201          <pre>
202 xxx/Velo/VeloEvent/v3/..
203         /VSicbCnv/v3/..
204         /v1/...
205          </pre>   
206        </b> 
207        </font>
208       
209        <p>then the <b>CMTPATH</b> may simply include <b>xxx</b>
210        (although <b>xxx/Velo</b> is possible too but in this case, it
211        is redundent). This makes all packages below <b>Velo</b>
212        visible.
213
214    </ol>
215
216    <p>The difference between 1) and 2) is really the fact that in 2)
217    <b>Velo</b> IS a true <b>CMT</b> package, whereas, in 1)
218    <b>Velo</b> is just a prefix.
219
220    <p>For simple efficiency reasons, <b>CMT</b> does not scan any
221    arbitrary directory tree depth when it looks for all packages, but
222    only the tree of true <b>CMT</b> packages + one level below each
223    package.
224
225    <hr>
226    <address><a href="mailto:arnault@lal.in2p3.fr">Christian Arnault</a></address>
227<!-- Created: Thu Oct 26 09:09:01 MET DST 2000 -->
228<!-- hhmts start -->
229Last modified: Thu Nov  9 15:16:35 MET 2000
230<!-- hhmts end -->
231  </body>
232</html>
Note: See TracBrowser for help on using the repository browser.