On 10/22/2010 11:31 PM, Vincent Snijders wrote:
2010/10/22 patspiper<[email protected]>:
The FPC user manual states the compiler will look for a configuration file
fpc.cfg in the following places:
• Under UNIX (such as LINUX)
1. The current directory.
2. Your home directory, it looks for .fpc.cfg.
3. The directory specified in the environment variable PPC_CONFIG_PATH, and
if it is
not set, it will look in the etc directory above the compiler directory.
(For instance, if the
compiler is in /usr/local/bin, it will look in /usr/local/etc)
4. The directory /etc.
• Under all other OSes:
1. The current directory.
2. If it is set, the directory specified in the environment variable
PPC_CONFIG_PATH.
3. The directory where the compiler is.
whereas the IDE looks in the following places:
1. $HOME/.fpc.cfg
2. compiler path + fpc.cfg
3. working directory + fpc.cfg
4. /etc/fpc.cfg (on Unix only)
1. Shouldn't the IDE follow what the FPC user manual states? In particular,
compilerpath/../etc vs compilerpath
The IDE doesn't use the .fpc.cff, the called compiler does. So, it
does follow the FPC user manual as much as it can.
2. I tried to put fpc.cfg in the fpc binary directory, but the IDE did not
detect it. Is that a bug?
Maybe, but then not in Lazarus, but in the compiler. Do you actually
use the fpc binary in the directory of fpc.cfg? Is that compiler set
in the environment options? Does it work if you use that compiler from
the command line yourself?
Vincent
I was experimenting on how to install FPC 2.5.1 alongside of 2.4.0, the
config file of which is /etc/fpc.cfg. Putting fpc.cfg in the fpc binary
directory did not work whereas it worked when placed in the home folder
(.fpc.cfg).
I deduced the sequence above from the following excerpt from
CheckCompilerOpts.pas (part of the IDE):
--------------------------------------------
// check $HOME/.fpc.cfg
Dir:=GetEnvironmentVariableUTF8('HOME');
if Dir<>'' then begin
Filename:=CleanAndExpandDirectory(Dir)+'.fpc.cfg';
AddFile(Filename);
end;
// check compiler path + fpc.cfg
Dir:=ExtractFilePath(CompilerFilename);
Dir:=ReadAllLinks(Dir,false);
if Dir<>'' then begin
Filename:=CleanAndExpandDirectory(Dir)+'fpc.cfg';
AddFile(Filename);
end;
// check working directory + fpc.cfg
Dir:=ExtractFilePath(Options.BaseDirectory);
Dir:=ReadAllLinks(Dir,false);
if Dir<>'' then begin
Filename:=CleanAndExpandDirectory(Dir)+'fpc.cfg';
AddFile(Filename);
end;
// check /etc/fpc.cfg
{$IFDEF Unix}
Dir:=ExtractFilePath(CompilerFilename);
Dir:=GetEnvironmentVariableUTF8('HOME');
if Dir<>'' then begin
Filename:='/etc/fpc.cfg';
AddFile(Filename);
end;
{$ENDIF}
--------------------------------------------
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus