Building the CLX with FPC

From Lazarus wiki
Revision as of 21:29, 26 February 2005 by FPK (talk | contribs) (→‎Howto)
Jump to navigationJump to search

Introduction

There are some efforts to build the (Free)CLX with FPC, here is a short explanation how to build it.

Status

Current status is that all units except the database related units build.

That's 39 of 44 units.

Howto

  • Build and install FPC from CVS sources: How_to_start
  • copy the clx sources to a newly created directory as well as the
    • HelpIntfs.pas from Sources/Common/
    • Win32 only: CommDlg.pas from Source/Rtl/Win/
    • Win32 only: CommCtrl.pas from Source/Rtl/Win/
    • Win32 only: ShlObj.pas from Source/Rtl/Win/
    • Win32 only: RegStr.pas from Source/Rtl/Win/
    • Win32 only: WinInet.pas from Source/Rtl/Win/
    • Win32 only: UrlMon.pas from Source/Rtl/Win/
    • Win32 only: ActiveX.pas from Source/Rtl/Win/
    • Win32 only: WinSpool.pas from Source/Rtl/Win/
    • QButtons.res from Lib/
    • Contnrs.pas from Source/Rtl/Common/
    • IniFiles.pas from Source/Rtl/Common/
    • QFileDialog.res from Lib/
    • QCheckLst.res from Lib/
    • QDialogs.res from Lib/
    • MaskUtils.pas from Source/Rtl/Common/
  • remove all references to *.xfm files, fpc can't handled them yet (fix this!!)
  • remove usage of sysinit namespace in qdialogs.pas; system can be used instead
  • replace all RTLConsts with RTLConst (fix this!!)
  • fix ShlObj.pas: the lines 3554 to 3557 miss a semicolon at the end; FPC won't emulate bugs in the Delphi parser
  • create a dummy unit to build the clx:
unit buildclx;
  interface
    uses
   uses
     BindHelp,   QDBActns,   QFileCtrls,
     QActnList,  QFileDialog,  QSearch,
     QButtons,   QForms,     QStdActns,
     QCheckLst,  QGraphics,  QStdCtrls,
     QClipbrd,   QGrids,     QStyle,
     QComCtrls,  QImgList,   QTypes,
     QConsts,    QDialogs,   QMask,
     QControls,  QExtCtrls,  QMenus,
     Qt,         QPrinters;
  implementation
end.
  • build the CLX with fpc -Sd buildclx

Remark: There is currently a bug in fpc's ppu handling which prevents a make of the clx's units. So do always a rm/del *.ppu before compiling.

Todo

As you might guess, there is also stuff to do:

  • The ClassGrouping functions are only dummies in FPC (StartClassGroup et al.)
  • Delimiter isn't implemented in TStrings of FPC