mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-08 19:35:59 +02:00
added options to override OS, CPU and LCLWidgetType form Andrew
git-svn-id: trunk@9840 -
This commit is contained in:
parent
694d469e5e
commit
3e7b2a440d
@ -44,9 +44,12 @@ type
|
|||||||
private
|
private
|
||||||
FBuildAll: boolean;
|
FBuildAll: boolean;
|
||||||
FBuildRecursive: boolean;
|
FBuildRecursive: boolean;
|
||||||
|
fCPUOverride: String;
|
||||||
|
fOSOverride: String;
|
||||||
FSkipDependencies: boolean;
|
FSkipDependencies: boolean;
|
||||||
fInitialized: boolean;
|
fInitialized: boolean;
|
||||||
fInitResult: boolean;
|
fInitResult: boolean;
|
||||||
|
fWidgetsetOverride: String;
|
||||||
// external tools
|
// external tools
|
||||||
procedure OnExtToolFreeOutputFilter(OutputFilter: TOutputFilter;
|
procedure OnExtToolFreeOutputFilter(OutputFilter: TOutputFilter;
|
||||||
ErrorOccurred: boolean);
|
ErrorOccurred: boolean);
|
||||||
@ -109,6 +112,10 @@ type
|
|||||||
write FBuildRecursive;
|
write FBuildRecursive;
|
||||||
property SkipDependencies: boolean read FSkipDependencies
|
property SkipDependencies: boolean read FSkipDependencies
|
||||||
write FSkipDependencies;
|
write FSkipDependencies;
|
||||||
|
property WidgetSetOverride: String read fWidgetsetOverride
|
||||||
|
write fWidgetsetOverride;
|
||||||
|
property OSOverride: String read fOSOverride write fOSOverride;
|
||||||
|
property CPUOverride: String read fCPUOverride write fCPUOverride;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
@ -419,6 +426,22 @@ begin
|
|||||||
if Project1.MainUnitInfo=nil then
|
if Project1.MainUnitInfo=nil then
|
||||||
Error(ErrorBuildFailed,'project has no main unit');
|
Error(ErrorBuildFailed,'project has no main unit');
|
||||||
|
|
||||||
|
if WidgetSetOverride <> '' then begin
|
||||||
|
//WriteLn('Overriding TargetWS=',WidgetSetOverride);
|
||||||
|
Project1.CompilerOptions.LCLWidgetType := WidgetSetOverride;
|
||||||
|
Project1.DefineTemplates.UpdateGlobalValues;
|
||||||
|
end;
|
||||||
|
if OSOverride <> '' then begin
|
||||||
|
//WriteLn('Overriding TargetOS=',OSOverride);
|
||||||
|
Project1.CompilerOptions.TargetOS := OSOverride;
|
||||||
|
end;
|
||||||
|
if CPUOverride <> '' then begin
|
||||||
|
//WriteLn('Overriding TargetCPU=',CPUOverride);
|
||||||
|
Project1.CompilerOptions.TargetCPU := CPUOverride;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if not SkipDependencies then begin
|
if not SkipDependencies then begin
|
||||||
// compile required packages
|
// compile required packages
|
||||||
CheckPackageGraphForCompilation(nil,Project1.FirstRequiredDependency);
|
CheckPackageGraphForCompilation(nil,Project1.FirstRequiredDependency);
|
||||||
@ -676,7 +699,7 @@ begin
|
|||||||
If FindLongopt(O) then
|
If FindLongopt(O) then
|
||||||
begin
|
begin
|
||||||
If HaveArg then
|
If HaveArg then
|
||||||
Result:=Format(lisErrNoOptionAllowed,[I,O])
|
//Result:=Format(lisErrNoOptionAllowed,[I,O]) // stops all longoptions with args from working
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin // Required argument
|
begin // Required argument
|
||||||
@ -811,6 +834,11 @@ begin
|
|||||||
LongOptions.Add('build-all');
|
LongOptions.Add('build-all');
|
||||||
LongOptions.Add('recursive');
|
LongOptions.Add('recursive');
|
||||||
LongOptions.Add('skip-dependencies');
|
LongOptions.Add('skip-dependencies');
|
||||||
|
LongOptions.Add('widgetset');
|
||||||
|
LongOptions.Add('ws');
|
||||||
|
LongOptions.Add('operating-system');
|
||||||
|
LongOptions.Add('os');
|
||||||
|
LongOptions.Add('cpu');
|
||||||
ErrorMsg:=RepairedCheckOptions('lBrd',LongOptions,Options,NonOptions);
|
ErrorMsg:=RepairedCheckOptions('lBrd',LongOptions,Options,NonOptions);
|
||||||
if ErrorMsg<>'' then begin
|
if ErrorMsg<>'' then begin
|
||||||
writeln(ErrorMsg);
|
writeln(ErrorMsg);
|
||||||
@ -845,6 +873,23 @@ begin
|
|||||||
BuildRecursive:=true;
|
BuildRecursive:=true;
|
||||||
if HasOption('d','skip-dependencies') then
|
if HasOption('d','skip-dependencies') then
|
||||||
SkipDependencies:=true;
|
SkipDependencies:=true;
|
||||||
|
|
||||||
|
// overides
|
||||||
|
// widgetset
|
||||||
|
if HasOption('ws') then
|
||||||
|
WidgetSetOverride := GetOptionValue('ws')
|
||||||
|
else if HasOption('widgetset') then
|
||||||
|
WidgetSetOverride := GetOptionValue('widgetset');
|
||||||
|
|
||||||
|
// operating system
|
||||||
|
if HasOption('os') then
|
||||||
|
OSOverride := GetOptionValue('os')
|
||||||
|
else if HasOption('operating-system') then
|
||||||
|
OSOverride := GetOptionValue('operating-system');
|
||||||
|
// cpu
|
||||||
|
if HasOption('cpu') then
|
||||||
|
CPUOverride := GetOptionValue('cpu')
|
||||||
|
|
||||||
finally
|
finally
|
||||||
Options.Free;
|
Options.Free;
|
||||||
NonOptions.Free;
|
NonOptions.Free;
|
||||||
@ -879,6 +924,20 @@ begin
|
|||||||
writeln(BreakString(space+lissecondaryConfigDirectoryWhereLazarusSearchesFor,
|
writeln(BreakString(space+lissecondaryConfigDirectoryWhereLazarusSearchesFor,
|
||||||
75, 22), LazConf.GetSecondaryConfigPath);
|
75, 22), LazConf.GetSecondaryConfigPath);
|
||||||
writeln('');
|
writeln('');
|
||||||
|
writeln('--operating-system=<operating-system>');
|
||||||
|
writeln('or --os=<operating-system>');
|
||||||
|
writeln(BreakString(space+'override the project operating system. e.g. win32 linux.',
|
||||||
|
75, 22));
|
||||||
|
writeln('');
|
||||||
|
writeln('--widgetset=<widgetset>');
|
||||||
|
writeln('or --ws=<widgetset>');
|
||||||
|
writeln(BreakString(space+'override the project widgetset. e.g. gtk gtk2 qt win32 carbon.',
|
||||||
|
75, 22));
|
||||||
|
writeln('');
|
||||||
|
writeln('--cpu=<cpu>');
|
||||||
|
writeln(BreakString(space+'override the project cpu. e.g. i386 x86_64 powerpc powerpc_64 etc.',
|
||||||
|
75, 22));
|
||||||
|
writeln('');
|
||||||
writeln(LanguageOpt);
|
writeln(LanguageOpt);
|
||||||
writeln(BreakString(space+lisOverrideLanguage,75, 22));
|
writeln(BreakString(space+lisOverrideLanguage,75, 22));
|
||||||
end;
|
end;
|
||||||
|
Loading…
Reference in New Issue
Block a user