[fpc-pascal] Use environment variables in configuration file?

Michael Van Canneyt michael at freepascal.org
Wed Jan 29 11:33:20 CET 2014



On Wed, 29 Jan 2014, hinst wrote:

> I want to use an environment variable in FPC configuration file; is this not possible?
> I created sample project which demonstrates the problem. I have one main source file and one unit which is located
> in subdirectory.
> I try to compile my program with this bash script:
>  
> It looks like FPC does not substitute $mvar with meow. It does not compile my program.
> However if I change options variable to this:
> options="@cfg.txt -Mobjfpc pro.pas -Fu$mvar"
> Then my program gets compiled successfully.

Obviously, since the bash interpreter takes care of substitution, FPC never sees $mvar.


> It means that:
>   If I put -Fu$mvar in config file then it does not work
>   If I put -Fu$mvar in bash script then it does work
>  
> Which is strange because in standard config file fpc.cfg I can find not only built-in variables like $FPCVERSION but
> also environment variables like $LOCAL_APPDATA
>  
> Examples:
> -FuD:\Lazarus\fpc\$FPCVERSION/units/$fpctarget/httpd22
> -Fu$LOCAL_APPDATA\FreePascal\fppkg/units/$FPCTARGET/*
> This I do not understand. How come that FPC when reading config file understands $LOCAL_APPDATA, but does not
> substitute variable I specified $mvar

Because there are several standard "placeholders" that FPC understands in the config file. 
These placeholders start with $.
They are not environment variables, despite the notation with $.

Michael.


More information about the fpc-pascal mailing list