Difference between revisions of "Building the CLX with FPC"

From Lazarus wiki
Jump to navigationJump to search
Line 26: Line 26:
 
** IniFiles.pas from Source/Rtl/Common
 
** IniFiles.pas from Source/Rtl/Common
 
** QFileDialog.res from Lib/
 
** QFileDialog.res from Lib/
** QDialogs.res freom 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 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
 
* remove usage of sysinit namespace in qdialogs.pas; system can be used instead
Line 35: Line 36:
 
   interface
 
   interface
 
     uses
 
     uses
      BindHelp,  QDBActns,  QFileCtrls, QPrinters.pas
+
      BindHelp,  QDBActns,  QFileCtrls, QPrinters,
      QActnList,  QDBConsts,  QFileDialog.pas QSearch.pas
+
      QActnList,  QDBConsts,  QFileDialog, QSearch,
      QButtons,  QDBCtrls,  QForms,    QStdActns.pas
+
      QButtons,  QDBCtrls,  QForms,    QStdActns,
      QCheckLst,  QDBGrids,  QGraphics,  QStdCtrls.pas
+
      QCheckLst,  QDBGrids,  QGraphics,  QStdCtrls,
      QClipbrd,  QDBLogDlg,  QGrids,    QStyle.pas
+
      QClipbrd,  QDBLogDlg,  QGrids,    QStyle,
      QComCtrls,  QDBPWDlg,  QImgList,  QTypes.pas
+
      QComCtrls,  QDBPWDlg,  QImgList,  QTypes,
      QConsts,    QDialogs,  QMask,      Qt.pas
+
      QConsts,    QDialogs,  QMask,      Qt,
      QControls,  QExtCtrls,  QMenus.pas;
+
      QControls,  QExtCtrls,  QMenus;
 
   implementation
 
   implementation
 
  end.
 
  end.

Revision as of 17:45, 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 not all units build yet, currently build:

ActiveX    Contnrs        QComCtrls      QImgList       ShlObj    
BindHelp   HelpIntfs      QConsts        QStdCtrls      UrlMon    
CommCtrl   QButtons       QExtCtrls      Qt             WinInet    
CommDlg    QClipbrd       QGraphics      RegStr

That's 19 of 42 units or 45%.

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/
    • 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
     BindHelp,   QDBActns,   QFileCtrls, QPrinters,
     QActnList,  QDBConsts,  QFileDialog,  QSearch,
     QButtons,   QDBCtrls,   QForms,     QStdActns,
     QCheckLst,  QDBGrids,   QGraphics,  QStdCtrls,
     QClipbrd,   QDBLogDlg,  QGrids,     QStyle,
     QComCtrls,  QDBPWDlg,   QImgList,   QTypes,
     QConsts,    QDialogs,   QMask,      Qt,
     QControls,  QExtCtrls,  QMenus;
  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