Merge pull request #4655 from bdbaddog/fix_new_ninja_package
[scons.git] / SCons / Tool / f90.xml
blob89c5ddced945b7efb7bd94f16bc85ce5c64bd743
1 <?xml version="1.0"?>
2 <!--
3 SPDX-FileCopyrightText: Copyright The SCons Foundation (https://scons.org)
4 SPDX-License-Identifier: MIT
5 SPDX-FileType: DOCUMENTATION
7 This file is processed by the bin/SConsDoc.py module.
8 -->
10 <!DOCTYPE sconsdoc [
11 <!ENTITY % scons SYSTEM '../../doc/scons.mod'>
12 %scons;
13 <!ENTITY % builders-mod SYSTEM '../../doc/generated/builders.mod'>
14 %builders-mod;
15 <!ENTITY % functions-mod SYSTEM '../../doc/generated/functions.mod'>
16 %functions-mod;
17 <!ENTITY % tools-mod SYSTEM '../../doc/generated/tools.mod'>
18 %tools-mod;
19 <!ENTITY % variables-mod SYSTEM '../../doc/generated/variables.mod'>
20 %variables-mod;
23 <sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
24           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
25           xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">
27 <tool name="f90">
28 <summary>
29 <para>
30 Set construction variables for generic POSIX Fortran 90 compilers.
31 </para>
32 </summary>
33 <sets>
34 <item>F90</item>
35 <item>F90FLAGS</item>
36 <item>F90COM</item>
37 <item>F90PPCOM</item>
38 <item>SHF90</item>
39 <item>SHF90FLAGS</item>
40 <item>SHF90COM</item>
41 <item>SHF90PPCOM</item>
42 <item>_F90INCFLAGS</item>
43 </sets>
44 <uses>
45 <item>F90COMSTR</item>
46 <item>F90PPCOMSTR</item>
47 <item>SHF90COMSTR</item>
48 <item>SHF90PPCOMSTR</item>
49 <item>FORTRANCOMMONFLAGS</item>
50 </uses>
51 </tool>
53 <cvar name="F90">
54 <summary>
55 <para>
56 The Fortran 90 compiler.
57 You should normally set the &cv-link-FORTRAN; variable,
58 which specifies the default Fortran compiler
59 for all Fortran versions.
60 You only need to set &cv-link-F90; if you need to use a specific compiler
61 or compiler version for Fortran 90 files.
62 </para>
63 </summary>
64 </cvar>
66 <cvar name="F90COM">
67 <summary>
68 <para>
69 The command line used to compile a Fortran 90 source file to an object file.
70 You only need to set &cv-link-F90COM; if you need to use a specific
71 command line for Fortran 90 files.
72 You should normally set the &cv-link-FORTRANCOM; variable,
73 which specifies the default command line
74 for all Fortran versions.
75 </para>
76 </summary>
77 </cvar>
79 <cvar name="F90COMSTR">
80 <summary>
81 <para>
82 If set, the string displayed when a Fortran 90 source file
83 is compiled to an object file.
84 If not set, then &cv-link-F90COM; or &cv-link-FORTRANCOM;
85 (the command line) is displayed.
86 </para>
87 </summary>
88 </cvar>
90 <cvar name="F90FILESUFFIXES">
91 <summary>
92 <para>
93 The list of file extensions for which the F90 dialect will be used. By
94 default, this is <literal>['.f90']</literal>
95 </para>
96 </summary>
97 </cvar>
99 <cvar name="F90PPFILESUFFIXES">
100 <summary>
101 <para>
102 The list of file extensions for which the compilation + preprocessor pass for
103 F90 dialect will be used. By default, this is empty.
104 </para>
105 </summary>
106 </cvar>
108 <cvar name="F90FLAGS">
109 <summary>
110 <para>
111 General user-specified options that are passed to the Fortran 90 compiler.
112 Note that this variable does
113 <emphasis>not</emphasis>
114 contain
115 <option>-I</option>
116 (or similar) include search path options
117 that scons generates automatically from &cv-link-F90PATH;.
119 &cv-link-_F90INCFLAGS;
120 below,
121 for the variable that expands to those options.
122 You only need to set &cv-link-F90FLAGS; if you need to define specific
123 user options for Fortran 90 files.
124 You should normally set the &cv-link-FORTRANFLAGS; variable,
125 which specifies the user-specified options
126 passed to the default Fortran compiler
127 for all Fortran versions.
128 </para>
129 </summary>
130 </cvar>
132 <cvar name="_F90INCFLAGS">
133 <summary>
134 <para>
135 An automatically-generated construction variable
136 containing the Fortran 90 compiler command-line options
137 for specifying directories to be searched for include files.
138 The value of &cv-link-_F90INCFLAGS; is created
139 by appending &cv-link-INCPREFIX; and &cv-link-INCSUFFIX;
140 to the beginning and end
141 of each directory in &cv-link-F90PATH;.
142 </para>
143 </summary>
144 </cvar>
146 <cvar name="F90PATH">
147 <summary>
148 <para>
149 The list of directories that the Fortran 90 compiler will search for include
150 directories. The implicit dependency scanner will search these
151 directories for include files. Don't explicitly put include directory
152 arguments in &cv-link-F90FLAGS; because the result will be non-portable
153 and the directories will not be searched by the dependency scanner. Note:
154 directory names in &cv-link-F90PATH; will be looked-up relative to the SConscript
155 directory when they are used in a command. To force
156 &scons;
157 to lookup a directory relative to the root of the source tree, use #:
158 You only need to set &cv-link-F90PATH; if you need to define a specific
159 include path for Fortran 90 files.
160 You should normally set the &cv-link-FORTRANPATH; variable,
161 which specifies the include path
162 for the default Fortran compiler
163 for all Fortran versions.
164 </para>
166 <example_commands>
167 env = Environment(F90PATH='#/include')
168 </example_commands>
170 <para>
171 The directory lookup can also be forced using the
172 &Dir;()
173 function:
174 </para>
176 <example_commands>
177 include = Dir('include')
178 env = Environment(F90PATH=include)
179 </example_commands>
181 <para>
182 The directory list will be added to command lines
183 through the automatically-generated
184 &cv-link-_F90INCFLAGS;
185 construction variable,
186 which is constructed by
187 appending the values of the
188 &cv-link-INCPREFIX; and &cv-link-INCSUFFIX;
189 construction variables
190 to the beginning and end
191 of each directory in &cv-link-F90PATH;.
192 Any command lines you define that need
193 the F90PATH directory list should
194 include &cv-link-_F90INCFLAGS;:
195 </para>
197 <example_commands>
198 env = Environment(F90COM="my_compiler $_F90INCFLAGS -c -o $TARGET $SOURCE")
199 </example_commands>
200 </summary>
201 </cvar>
203 <cvar name="F90PPCOM">
204 <summary>
205 <para>
206 The command line used to compile a Fortran 90 source file to an object file
207 after first running the file through the C preprocessor.
208 Any options specified in the &cv-link-F90FLAGS; and &cv-link-CPPFLAGS; construction variables
209 are included on this command line.
210 You only need to set &cv-link-F90PPCOM; if you need to use a specific
211 C-preprocessor command line for Fortran 90 files.
212 You should normally set the &cv-link-FORTRANPPCOM; variable,
213 which specifies the default C-preprocessor command line
214 for all Fortran versions.
215 </para>
216 </summary>
217 </cvar>
219 <cvar name="F90PPCOMSTR">
220 <summary>
221 <para>
222 If set, the string displayed when a Fortran 90 source file
223 is compiled after first running the file through the C preprocessor.
224 If not set, then &cv-link-F90PPCOM; or &cv-link-FORTRANPPCOM;
225 (the command line) is displayed.
226 </para>
227 </summary>
228 </cvar>
230 <cvar name="SHF90">
231 <summary>
232 <para>
233 The Fortran 90 compiler used for generating shared-library objects.
234 You should normally set the &cv-link-SHFORTRAN; variable,
235 which specifies the default Fortran compiler
236 for all Fortran versions.
237 You only need to set &cv-link-SHF90; if you need to use a specific compiler
238 or compiler version for Fortran 90 files.
239 </para>
240 </summary>
241 </cvar>
243 <cvar name="SHF90COM">
244 <summary>
245 <para>
246 The command line used to compile a Fortran 90 source file
247 to a shared-library object file.
248 You only need to set &cv-link-SHF90COM; if you need to use a specific
249 command line for Fortran 90 files.
250 You should normally set the &cv-link-SHFORTRANCOM; variable,
251 which specifies the default command line
252 for all Fortran versions.
253 </para>
254 </summary>
255 </cvar>
257 <cvar name="SHF90COMSTR">
258 <summary>
259 <para>
260 If set, the string displayed when a Fortran 90 source file
261 is compiled to a shared-library object file.
262 If not set, then &cv-link-SHF90COM; or &cv-link-SHFORTRANCOM;
263 (the command line) is displayed.
264 </para>
265 </summary>
266 </cvar>
268 <cvar name="SHF90FLAGS">
269 <summary>
270 <para>
271 Options that are passed to the Fortran 90 compiler
272 to generated shared-library objects.
273 You only need to set &cv-link-SHF90FLAGS; if you need to define specific
274 user options for Fortran 90 files.
275 You should normally set the &cv-link-FORTRANCOMMONFLAGS; variable,
276 which specifies the user-specified options
277 passed to the default Fortran compiler
278 for all Fortran versions.
279 </para>
280 </summary>
281 </cvar>
283 <cvar name="SHF90PPCOM">
284 <summary>
285 <para>
286 The command line used to compile a Fortran 90 source file to a
287 shared-library object file
288 after first running the file through the C preprocessor.
289 Any options specified in the &cv-link-SHF90FLAGS; and &cv-link-CPPFLAGS; construction variables
290 are included on this command line.
291 You only need to set &cv-link-SHF90PPCOM; if you need to use a specific
292 C-preprocessor command line for Fortran 90 files.
293 You should normally set the &cv-link-SHFORTRANPPCOM; variable,
294 which specifies the default C-preprocessor command line
295 for all Fortran versions.
296 </para>
297 </summary>
298 </cvar>
300 <cvar name="SHF90PPCOMSTR">
301 <summary>
302 <para>
303 If set, the string displayed when a Fortran 90 source file
304 is compiled to a shared-library object file
305 after first running the file through the C preprocessor.
306 If not set, then &cv-link-SHF90PPCOM; or &cv-link-SHFORTRANPPCOM;
307 (the command line) is displayed.
308 </para>
309 </summary>
310 </cvar>
312 </sconsdoc>