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

Reply via email to