1 { 2 /*************************************************************************** 3 basebuildmanager.pas 4 -------------------- 5 6 7 ***************************************************************************/ 8 9 *************************************************************************** 10 * * 11 * This source is free software; you can redistribute it and/or modify * 12 * it under the terms of the GNU General Public License as published by * 13 * the Free Software Foundation; either version 2 of the License, or * 14 * (at your option) any later version. * 15 * * 16 * This code is distributed in the hope that it will be useful, but * 17 * WITHOUT ANY WARRANTY; without even the implied warranty of * 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 19 * General Public License for more details. * 20 * * 21 * A copy of the GNU General Public License is available on the World * 22 * Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also * 23 * obtain it by writing to the Free Software Foundation, * 24 * Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1335, USA. * 25 * * 26 *************************************************************************** 27 } 28 unit BaseBuildManager; 29 30 {$mode objfpc}{$H+} 31 32 interface 33 34 uses 35 Classes, SysUtils, Forms, 36 Project; 37 38 type 39 40 { TBaseBuildManager } 41 42 TBaseBuildManager = class(TComponent) 43 public 44 constructor Create(AOwner: TComponent); override; 45 destructor Destroy; override; 46 47 // methods for building IDE (will be changed when project groups are there) 48 procedure SetBuildTargetProject1; virtual; abstract; 49 procedure SetBuildTargetIDE; virtual; abstract; BuildTargetIDEIsDefaultnull50 function BuildTargetIDEIsDefault: boolean; virtual; abstract; 51 GetBuildMacroOverridenull52 function GetBuildMacroOverride(const MacroName: string): string; virtual; abstract; GetBuildMacroOverridesnull53 function GetBuildMacroOverrides: TStrings; virtual; abstract; GetTargetOSnull54 function GetTargetOS: string; virtual; abstract; GetTargetCPUnull55 function GetTargetCPU: string; virtual; abstract; GetLCLWidgetTypenull56 function GetLCLWidgetType: string; virtual; abstract; GetRunCommandLinenull57 function GetRunCommandLine: string; virtual; abstract; 58 procedure WriteDebug_RunCommandLine; virtual; abstract; 59 GetCompilerFilenamenull60 function GetCompilerFilename: string; virtual; abstract; GetFPCompilerFilenamenull61 function GetFPCompilerFilename: string; virtual; abstract; GetFPCFrontEndOptionsnull62 function GetFPCFrontEndOptions: string; virtual; abstract; GetProjectPublishDirnull63 function GetProjectPublishDir: string; virtual; abstract; GetProjectTargetFilenamenull64 function GetProjectTargetFilename(aProject: TProject): string; virtual; abstract; GetProjectUsesAppBundlenull65 function GetProjectUsesAppBundle: Boolean; virtual; abstract; GetTestUnitFilenamenull66 function GetTestUnitFilename(AnUnitInfo: TUnitInfo): string; virtual; abstract; GetTestBuildDirectorynull67 function GetTestBuildDirectory: string; virtual; abstract; IsTestUnitFilenamenull68 function IsTestUnitFilename(const AFilename: string): boolean; virtual; abstract; GetTargetUnitFilenamenull69 function GetTargetUnitFilename(AnUnitInfo: TUnitInfo): string; virtual; abstract; 70 71 procedure RescanCompilerDefines(ResetBuildTarget, ClearCaches, 72 WaitTillDone, Quiet: boolean); virtual; abstract; CompilerOnDiskChangednull73 function CompilerOnDiskChanged: boolean; virtual; abstract; 74 CheckAmbiguousSourcesnull75 function CheckAmbiguousSources(const AFilename: string; 76 Compiling: boolean): TModalResult; virtual; abstract; DeleteAmbiguousFilesnull77 function DeleteAmbiguousFiles(const Filename:string 78 ): TModalResult; virtual; abstract; CheckUnitPathForAmbiguousPascalFilesnull79 function CheckUnitPathForAmbiguousPascalFiles(const BaseDir, TheUnitPath, 80 CompiledExt, ContextDescription: string 81 ): TModalResult; virtual; abstract; CreateProjectApplicationBundlenull82 function CreateProjectApplicationBundle: Boolean; virtual; abstract; 83 BackupFileForWritenull84 function BackupFileForWrite(const Filename: string): TModalResult; virtual; abstract; 85 UpdateProjectAutomaticFilesnull86 function UpdateProjectAutomaticFiles(TestDir: string): TModalResult; virtual; abstract; 87 end; 88 89 var 90 BuildBoss: TBaseBuildManager = nil; 91 92 implementation 93 94 { TBaseBuildManager } 95 96 constructor TBaseBuildManager.Create(AOwner: TComponent); 97 begin 98 BuildBoss:=Self; 99 inherited Create(AOwner); 100 end; 101 102 destructor TBaseBuildManager.Destroy; 103 begin 104 inherited Destroy; 105 BuildBoss:=nil; 106 end; 107 108 end. 109 110