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, 36 // LCL 37 Forms, 38 // IDE 39 Project; 40 41 type 42 43 { TBaseBuildManager } 44 45 TBaseBuildManager = class(TComponent) 46 public 47 constructor Create(AOwner: TComponent); override; 48 destructor Destroy; override; 49 50 // methods for building IDE (will be changed when project groups are there) 51 procedure SetBuildTargetProject1; virtual; abstract; 52 procedure SetBuildTargetIDE(aQuiet: boolean = false); virtual; abstract; BuildTargetIDEIsDefaultnull53 function BuildTargetIDEIsDefault: boolean; virtual; abstract; 54 GetBuildMacroOverridenull55 function GetBuildMacroOverride(const MacroName: string): string; virtual; abstract; GetBuildMacroOverridesnull56 function GetBuildMacroOverrides: TStrings; virtual; abstract; GetTargetOSnull57 function GetTargetOS: string; virtual; abstract; GetTargetCPUnull58 function GetTargetCPU: string; virtual; abstract; GetLCLWidgetTypenull59 function GetLCLWidgetType: string; virtual; abstract; GetRunCommandLinenull60 function GetRunCommandLine: string; virtual; abstract; 61 procedure WriteDebug_RunCommandLine; virtual; abstract; 62 GetCompilerFilenamenull63 function GetCompilerFilename: string; virtual; abstract; GetFPCompilerFilenamenull64 function GetFPCompilerFilename: string; virtual; abstract; GetFPCFrontEndOptionsnull65 function GetFPCFrontEndOptions: string; virtual; abstract; GetProjectPublishDirnull66 function GetProjectPublishDir: string; virtual; abstract; GetProjectTargetFilenamenull67 function GetProjectTargetFilename(aProject: TProject): string; virtual; abstract; GetProjectUsesAppBundlenull68 function GetProjectUsesAppBundle: Boolean; virtual; abstract; GetTestUnitFilenamenull69 function GetTestUnitFilename(AnUnitInfo: TUnitInfo): string; virtual; abstract; GetTestBuildDirectorynull70 function GetTestBuildDirectory: string; virtual; abstract; IsTestUnitFilenamenull71 function IsTestUnitFilename(const AFilename: string): boolean; virtual; abstract; GetTargetUnitFilenamenull72 function GetTargetUnitFilename(AnUnitInfo: TUnitInfo): string; virtual; abstract; 73 74 procedure RescanCompilerDefines(ResetBuildTarget, ClearCaches, 75 WaitTillDone, Quiet: boolean); virtual; abstract; CompilerOnDiskChangednull76 function CompilerOnDiskChanged: boolean; virtual; abstract; 77 CheckAmbiguousSourcesnull78 function CheckAmbiguousSources(const AFilename: string; 79 Compiling: boolean): TModalResult; virtual; abstract; DeleteAmbiguousFilesnull80 function DeleteAmbiguousFiles(const Filename:string 81 ): TModalResult; virtual; abstract; CheckUnitPathForAmbiguousPascalFilesnull82 function CheckUnitPathForAmbiguousPascalFiles(const BaseDir, TheUnitPath, 83 CompiledExt, ContextDescription: string 84 ): TModalResult; virtual; abstract; CreateProjectApplicationBundlenull85 function CreateProjectApplicationBundle: Boolean; virtual; abstract; 86 BackupFileForWritenull87 function BackupFileForWrite(const Filename: string): TModalResult; virtual; abstract; 88 UpdateProjectAutomaticFilesnull89 function UpdateProjectAutomaticFiles(TestDir: string): TModalResult; virtual; abstract; 90 end; 91 92 var 93 BuildBoss: TBaseBuildManager = nil; 94 95 implementation 96 97 { TBaseBuildManager } 98 99 constructor TBaseBuildManager.Create(AOwner: TComponent); 100 begin 101 BuildBoss:=Self; 102 inherited Create(AOwner); 103 end; 104 105 destructor TBaseBuildManager.Destroy; 106 begin 107 inherited Destroy; 108 BuildBoss:=nil; 109 end; 110 111 end. 112 113