lazarus/lcl/lclplatformdef.pas
juha a714a91311 LCL: Move TLCLPlatform and related non-GUI code to a new unit to be used without GUI.
Organize uses-sections by package so that dependencies can be easier seen.

git-svn-id: trunk@53711 -
2016-12-17 22:58:08 +00:00

100 lines
1.9 KiB
ObjectPascal

{
*****************************************************************************
This file is part of the Lazarus Component Library (LCL)
See the file COPYING.modifiedLGPL.txt, included in this distribution,
for details about the license.
*****************************************************************************
Contains the non-GUI dependent parts of LCL Platform definition.
}
unit LCLPlatformDef;
{$mode objfpc}{$H+}
interface
uses
SysUtils;
type
TLCLPlatform = (
lpGtk,
lpGtk2,
lpGtk3,
lpWin32,
lpWinCE,
lpCarbon,
lpQT,
lpfpGUI,
lpNoGUI,
lpCocoa,
lpCustomDrawn
);
TLCLPlatforms = set of TLCLPlatform;
function DirNameToLCLPlatform(const ADirName: string): TLCLPlatform;
function GetBuildLCLWidgetType: TLCLPlatform;
const
LCLPlatformDirNames: array[TLCLPlatform] of string = (
'gtk',
'gtk2',
'gtk3',
'win32',
'wince',
'carbon',
'qt',
'fpgui',
'nogui',
'cocoa',
'customdrawn'
);
LCLPlatformDisplayNames: array[TLCLPlatform] of string = (
'gtk (deprecated)',
'gtk 2',
'gtk3 (alpha)',
'win32/win64',
'wince',
'carbon',
'qt',
'fpGUI (alpha)',
'NoGUI',
'cocoa (alpha)',
'customdraw (alpha)'
);
var
// set by lazbuild.lpr and used by GetDefaultLCLWidgetType
BuildLCLWidgetType: TLCLPlatform =
{$IFDEF MSWindows}{$DEFINE WidgetSetDefined}
lpWin32;
{$ENDIF}
{$IFDEF darwin}{$DEFINE WidgetSetDefined}
lpCarbon;
{$ENDIF}
{$IFNDEF WidgetSetDefined}
lpGtk2;
{$ENDIF}
implementation
function DirNameToLCLPlatform(const ADirName: string): TLCLPlatform;
begin
for Result:=Low(TLCLPlatform) to High(TLCLPlatform) do
if CompareText(ADirName,LCLPlatformDirNames[Result])=0 then exit;
Result:=lpGtk2;
end;
function GetBuildLCLWidgetType: TLCLPlatform;
begin
Result:=BuildLCLWidgetType;
end;
end.