added options to override OS, CPU and LCLWidgetType form Andrew

git-svn-id: trunk@9840 -
This commit is contained in:
mattias 2006-09-08 15:58:08 +00:00
parent 694d469e5e
commit 3e7b2a440d

View File

@ -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;