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
|
<unit name="ok_include_environment.pas">
<description><abstract>Test of handling the "<italic>$I or $INCLUDE : Include compiler info</italic>" feature of FPC, see [http://www.freepascal.org/docs-html/prog/progsu38.html].</abstract><detailed> PasDoc bug spotted by Michalis on 2005-12-04 when trying `make htmldocs' on fpc compiler sources, in file version.pas. Notes about how it should be implemented in PasDoc : PasDoc will <italic>not</italic> expand these macros. Instead PasDoc will just explicitly show that e.g. value of MacDATE is %DATE%, value of MacFPCTARGET is %FPCTARGET% etc. Reasons:
<unorderedlist>
<item>For %DATE% and %TIME%, PasDoc could expand them, but it's not sensible. After all, at compilation they will be set to something different. So what PasDoc should do (and will) is to show user that the value of MacDATE is %DATE%. This way user will know that MacDATE's value depends on time of compilation.</item>
<item>For %FPC???% macros, PasDoc couldn't expand them, even if it should. After all, we don't know what FPC version will be used to compile the given unit.</item>
<item>For %environment-variable%: argument like with %FPC???% macros: PasDoc is not able to predict what value $environment-variable will have at compilation time.</item>
<item>Finally, for %FILE% and %LINE%: this is the only case when actually PasDoc could just expand them, just like FPC will. For now, my decision is to not expand them, for consistency with handling all other %xxx%.</item>
</unorderedlist>
</detailed></description>
<constant name="MacDATE = {$I %DATE%};">
<description><detailed>Inserts the current date.</detailed></description>
</constant>
<constant name="MacFPCTARGET = {$I %FPCTARGET%};">
<description><detailed>Inserts the target CPU name. (deprecated, use FPCTARGETCPU)</detailed></description>
</constant>
<constant name="MacFPCTARGETCPU = {$I %FPCTARGETCPU%};">
<description><detailed>Inserts the target CPU name.</detailed></description>
</constant>
<constant name="MacFPCTARGETOS = {$I %FPCTARGETOS%};">
<description><detailed>Inserts the target OS name.</detailed></description>
</constant>
<constant name="MacFPCVERSION = {$I %FPCVERSION%};">
<description><detailed>Current compiler version number.</detailed></description>
</constant>
<constant name="MacFILE = {$I %FILE%};">
<description><detailed>Filename in which the directive is found.</detailed></description>
</constant>
<constant name="MacLINE = {$I %LINE%};">
<description><detailed>Linenumer on which the directive is found.</detailed></description>
</constant>
<constant name="MacTIME = {$I %TIME%};">
<description><detailed>Current time.</detailed></description>
</constant>
<constant name="MacUSEREnv = {$I %USER%};">
<description><detailed>If xxx inside %xxx% is none of the above, then it is assumed to be the name of an environment variable. Its value will be fetched.</detailed></description>
</constant>
<constant name="MacPathEnv = {$I %PATH%};">
</constant>
</unit>
|