diff --git a/packager/packagesystem.pas b/packager/packagesystem.pas index 2d6d5f964b..18064da342 100644 --- a/packager/packagesystem.pas +++ b/packager/packagesystem.pas @@ -270,8 +270,8 @@ type function CheckIfDependenciesNeedCompilation(FirstDependency: TPkgDependency; StateFileAge: longint): TModalResult; function CheckIfPackageNeedsCompilation(APackage: TLazPackage; - const CompilerFilename, CompilerParams, SrcFilename: string - ): TModalResult; + const CompilerFilename, CompilerParams, SrcFilename: string; + var NeedBuildAllFlag: boolean): TModalResult; function PreparePackageOutputDirectory(APackage: TLazPackage; CleanUp: boolean): TModalResult; function CheckAmbiguousPackageUnits(APackage: TLazPackage): TModalResult; @@ -2406,7 +2406,8 @@ begin end; function TLazPackageGraph.CheckIfPackageNeedsCompilation(APackage: TLazPackage; - const CompilerFilename, CompilerParams, SrcFilename: string): TModalResult; + const CompilerFilename, CompilerParams, SrcFilename: string; + var NeedBuildAllFlag: boolean): TModalResult; var StateFilename: String; StateFileAge: Integer; @@ -2414,6 +2415,7 @@ var CurFile: TPkgFile; begin Result:=mrYes; + NeedBuildAllFlag:=true; {$IFDEF VerbosePkgCompile} debugln('TLazPackageGraph.CheckIfPackageNeedsCompilation A ',APackage.IDAsString); {$ENDIF} @@ -2468,6 +2470,10 @@ begin DebugLn(' Now="',CompilerParams,'"'); exit; end; + + // compiler and parameters are the same + // quick compile possible + NeedBuildAllFlag:=false; // check package files if StateFileAge'' then - EffektiveCompilerParams:='-B '+EffektiveCompilerParams + EffectiveCompilerParams:=CompilerParams; + if (pcfCleanCompile in Flags) or NeedBuildAllFlag then begin + if EffectiveCompilerParams<>'' then + EffectiveCompilerParams:='-B '+EffectiveCompilerParams else - EffektiveCompilerParams:='-B'; + EffectiveCompilerParams:='-B'; end; PkgCompileTool:=TIDEExternalToolOptions.Create; @@ -2668,7 +2676,7 @@ begin PkgCompileTool.ScanOutputForMakeMessages:=true; PkgCompileTool.WorkingDirectory:=APackage.Directory; PkgCompileTool.Filename:=CompilerFilename; - PkgCompileTool.CmdLineParams:=EffektiveCompilerParams; + PkgCompileTool.CmdLineParams:=EffectiveCompilerParams; // clear old errors if SourceEditorWindow<>nil then