* Merging revisions r44281 from trunk:

------------------------------------------------------------------------
    r44281 | michael | 2020-03-07 15:13:51 +0100 (Sat, 07 Mar 2020) | 1 line
    
    * Allow setting compiler options in the fppkg config file
    ------------------------------------------------------------------------

git-svn-id: branches/fixes_3_2@46576 -
This commit is contained in:
michael 2020-08-23 09:09:35 +00:00
parent e64257da96
commit d0e3fb0eb2
2 changed files with 16 additions and 2 deletions

View File

@ -213,7 +213,7 @@ Var
P : TFPPackage; P : TFPPackage;
DepPackage: TFPPackage; DepPackage: TFPPackage;
DepDirList: TStringList; DepDirList: TStringList;
Reason: string; S,Reason: string;
begin begin
Result := True; Result := True;
P:=DeterminePackage; P:=DeterminePackage;
@ -309,6 +309,10 @@ begin
AddOption('-vi'); AddOption('-vi');
AddOption('-O2'); AddOption('-O2');
AddOption('-XXs'); AddOption('-XXs');
if PackageManager.FPMakeCompilerOptions.HasOptions then
for S in PackageManager.FPMakeCompilerOptions.Options do
AddOption(S);
// AddOption(PackageManager.FPMakeCompilerOptions.Options.DelimitedText) ;
// Create fpmkunit.pp if needed // Create fpmkunit.pp if needed
if NeedFPMKUnitSource then if NeedFPMKUnitSource then
begin begin
@ -356,6 +360,7 @@ Var
if OOptions<>'' then if OOptions<>'' then
OOptions:=OOptions+' '; OOptions:=OOptions+' ';
OOptions:=OOptions+maybequoted(s); OOptions:=OOptions+maybequoted(s);
Writeln('Options: >>>>',OOptions,'<<<<');
end; end;
procedure CondAddOption(const Name,Value:string); procedure CondAddOption(const Name,Value:string);

View File

@ -17,7 +17,7 @@ unit pkgoptions;
interface interface
// pkgglobals must be AFTER fpmkunit // pkgglobals must be AFTER fpmkunit
uses Classes, Sysutils, Inifiles, fpTemplate, fpmkunit, pkgglobals, fgl; uses Classes, Sysutils, Inifiles, StrUtils, fpTemplate, fpmkunit, pkgglobals, fgl;
Const Const
UnitConfigFileName = 'fpunits.cfg'; UnitConfigFileName = 'fpunits.cfg';
@ -323,6 +323,7 @@ Const
KeyCompilerOS = 'OS'; KeyCompilerOS = 'OS';
KeyCompilerCPU = 'CPU'; KeyCompilerCPU = 'CPU';
KeyCompilerVersion = 'Version'; KeyCompilerVersion = 'Version';
KeyCompilerOptions = 'CompilerOptions';
{ TFppkgIncludeFilesOptionSection } { TFppkgIncludeFilesOptionSection }
@ -1167,6 +1168,8 @@ end;
procedure TCompilerOptions.LoadCompilerFromFile(const AFileName: String); procedure TCompilerOptions.LoadCompilerFromFile(const AFileName: String);
Var Var
Ini : TMemIniFile; Ini : TMemIniFile;
S,sOptions : UTF8String;
begin begin
Ini:=TMemIniFile.Create(AFileName); Ini:=TMemIniFile.Create(AFileName);
try try
@ -1192,6 +1195,10 @@ begin
FCompiler:=ReadString(SDefaults,KeyCompiler,FCompiler); FCompiler:=ReadString(SDefaults,KeyCompiler,FCompiler);
FCompilerOS:=StringToOS(ReadString(SDefaults,KeyCompilerOS,OSToString(CompilerOS))); FCompilerOS:=StringToOS(ReadString(SDefaults,KeyCompilerOS,OSToString(CompilerOS)));
FCompilerCPU:=StringToCPU(ReadString(SDefaults,KeyCompilerCPU,CPUtoString(CompilerCPU))); FCompilerCPU:=StringToCPU(ReadString(SDefaults,KeyCompilerCPU,CPUtoString(CompilerCPU)));
sOptions:=ReadString(SDefaults,KeyCompilerOptions,'');
if (sOptions<>'') then
for S in SplitCommandline(sOptions) do
self.Options.Add(S);
CompilerVersion:=ReadString(SDefaults,KeyCompilerVersion,FCompilerVersion); CompilerVersion:=ReadString(SDefaults,KeyCompilerVersion,FCompilerVersion);
end; end;
finally finally
@ -1221,6 +1228,8 @@ begin
WriteString(SDefaults,KeyCompilerOS,OSToString(CompilerOS)); WriteString(SDefaults,KeyCompilerOS,OSToString(CompilerOS));
WriteString(SDefaults,KeyCompilerCPU,CPUtoString(CompilerCPU)); WriteString(SDefaults,KeyCompilerCPU,CPUtoString(CompilerCPU));
WriteString(SDefaults,KeyCompilerVersion,FCompilerVersion); WriteString(SDefaults,KeyCompilerVersion,FCompilerVersion);
if HasOptions then
WriteString(SDefaults,KeyCompilerOptions,Self.Options.Text);
FSaveInifileChanges:=False; FSaveInifileChanges:=False;
end; end;
Ini.UpdateFile; Ini.UpdateFile;