Difference between revisions of "Building the CLX with FPC"

From Lazarus wiki
Jump to navigationJump to search
Line 34: Line 34:
 
   interface
 
   interface
 
     uses
 
     uses
       BindHelp,  QDBActns,  QFileCtrls, QPrinters,
+
    uses
       QActnList,  QDBConsts,  QFileDialog,  QSearch,
+
       BindHelp,  QDBActns,  QFileCtrls,
       QButtons,  QDBCtrls,  QForms,    QStdActns,
+
       QActnList,  QFileDialog,  QSearch,
       QCheckLst,  QDBGrids,  QGraphics,  QStdCtrls,
+
       QButtons,  QForms,    QStdActns,
       QClipbrd,  QDBLogDlg,  QGrids,    QStyle,
+
       QCheckLst,  QGraphics,  QStdCtrls,
       QComCtrls,  QDBPWDlg,  QImgList,  QTypes,
+
       QClipbrd,  QGrids,    QStyle,
       QConsts,    QDialogs,  QMask,      Qt,
+
       QComCtrls,  QImgList,  QTypes,
       QControls,  QExtCtrls,  QMenus;
+
       QConsts,    QDialogs,  QMask,
 +
       QControls,  QExtCtrls,  QMenus,
 +
      Qt,        QPrinters;
 
   implementation
 
   implementation
 
  end.
 
  end.

Revision as of 21:29, 26 February 2005

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