lazarus/packager/pkgregisterbase.pas

126 lines
3.9 KiB
ObjectPascal

{
/***************************************************************************
pkgregisterbase.pas
-------------------
***************************************************************************/
***************************************************************************
* *
* This source is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This code is distributed in the hope that it will be useful, but *
* WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* General Public License for more details. *
* *
* A copy of the GNU General Public License is available on the World *
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
* obtain it by writing to the Free Software Foundation, *
* Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1335, USA. *
* *
***************************************************************************
Author: Mattias Gaertner
Abstract:
Registration of the FCL components used by the IDE.
}
unit PkgRegisterBase;
{$mode objfpc}{$H+}
interface
uses
LazarusPackageIntf,
{$ifdef mswindows}
ServiceManager,
{$endif}
Classes, SysUtils, Process, DB, BufDataset, csvdataset, fpjsondataset, SimpleIPC, XMLConf, EventLog,
UTF8Process, ComponentEditors;
procedure RegisterFCLBaseComponents;
procedure RegisterLazUtilsComponents;
implementation
type
TDatasetRequirements = class(TComponentRequirements)
procedure RequiredUnits(Units: TStrings); override;
end;
procedure TDatasetRequirements.RequiredUnits(Units: TStrings);
begin
{ the DB unit is nearly always required for working comfortably with datasets }
Units.Add('DB');
end;
procedure RegisterDB;
begin // this bites dbflaz
RegisterComponents('Data Access',[TDatasource, TBufDataset, TCSVDataset, TJSONDataset]);
RegisterComponentRequirements([TBufDataset, TCSVDataset], TDatasetRequirements);
end;
procedure RegisterSimpleIPC;
begin
RegisterComponents('System',[TSimpleIPCClient, TSimpleIPCServer]);
end;
procedure RegisterXMLConf;
begin
RegisterComponents('System',[TXMLConfig]);
end;
procedure RegisterEventLog;
begin
RegisterComponents('System',[TEventLog]);
end;
{$ifdef mswindows}
procedure RegisterServiceManager;
begin
RegisterComponents('System',[TServiceManager]);
end;
{$endif mswindows}
procedure RegisterProcess;
begin
RegisterComponents('System',[TProcess]);
end;
procedure RegisterFCLBaseComponents;
begin
RegisterUnit('DB',@RegisterDB);
RegisterUnit('SimpleIPC', @RegisterSimpleIPC);
RegisterUnit('XMLConf',@RegisterXMLConf);
RegisterUnit('EventLog',@RegisterEventLog);
{$ifdef mswindows}
RegisterUnit('ServiceManager',@RegisterServiceManager);
{$endif mswindows}
RegisterUnit('Process',@RegisterProcess);
end;
procedure RegisterUTF8Process;
begin
RegisterComponents('System',[TProcessUTF8]);
end;
procedure RegisterLazUtilsComponents;
begin
RegisterUnit('UTF8Process',@RegisterUTF8Process);
end;
initialization
// register package FCL and LazUtils here to avoid pulling in all units
// and to keep those package clean of designtime code.
RegisterPackage('FCL', @RegisterFCLBaseComponents);
RegisterPackage('LazUtils', @RegisterLazUtilsComponents);
end.