2010-05-31 12:58 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* contrib/hbqt/hbqt.h
  * contrib/hbqt/hbqt_hbqtableview.h
  * contrib/hbqt/hbqt_hbevents.h
  * contrib/hbqt/hbqt_hbdbfmodel.cpp
  * contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
  * contrib/hbqt/hbqt_hbqmainwindow.h
  * contrib/hbqt/hbqt_hbqtableview.cpp
  * contrib/hbqt/hbqt_hbevents.cpp
  * contrib/hbqt/hbqt_hbqplaintextedit.h
  * contrib/hbqt/hbqt_hbdbfmodel.h
  * contrib/hbqt/hbqt_destruct.cpp
  * contrib/hbqt/hbqt_utils.cpp
  * contrib/hbqt/hbqt_hbqsyntaxhighlighter.h
  * contrib/hbqt/hbqt_hbqplaintextedit.cpp
  * contrib/hbqt/hbqt_hbslots.cpp
  * contrib/hbqt/qth/QVariant.qth
  * contrib/hbqt/qth/QCursor.qth
  * contrib/hbqt/qth/QClipboard.qth
  * contrib/hbqt/qth/QApplication.qth
  * contrib/hbqt/qth/QCoreApplication.qth
  * contrib/hbqt/qth/QImage.qth
  * contrib/hbqt/qth/QUrl.qth
  * contrib/hbqt/qth/QAbstractItemModel.qth
  * contrib/hbqt/qth/QImageReader.qth
  * contrib/hbqt/qth/QWebHistoryItem.qth
  * contrib/hbqt/qth/QFont.qth
  * contrib/hbqt/qth/QFontDatabase.qth
    ! Fixed to use '#include <QModule/QName>' format when referring
      to QT headers. This is the official way and it allows to clean
      the include header paths.
    ! Fixed to use '#include <QtCore/qglobal>' instead of
      '#include <qglobal.h>' for the same reason as above.

  * contrib/hbqt/hbqt.h
    + Added '#include "QtCore/QObject"' to make hbmk2 component
      detection happy. This is slight hack as I didn't want to
      introduce parsing of '<>' style system headers just for the
      sake of QT. Anyway it's quite humble hack without side effects.

  * contrib/hbqt/detect.mk
    * Changed to 'QtCore/qglobal.h' as key header name used for
      detection.
    ! Fix to header dir autodetection path on darwin platform.
      (it would have caused potential problem with QT 5.x releases)
    % Simplified header path list for non-darwin platforms.

  + contrib/hbqt/hbqt_common.hbm
  + contrib/hbqt/hbqt.hbp
  + contrib/hbqt/hbqts.hbp
  + contrib/hbqt/hbqtcore.hbp
  + contrib/hbqt/hbqtcores.hbp
  + contrib/hbqt/hbqtgui.hbp
  + contrib/hbqt/hbqtguis.hbp
  + contrib/hbqt/hbqtnetwork.hbp
  + contrib/hbqt/hbqtnetworks.hbp
    + Added hbmk2 make files for HBQT libs.
      Features are equivalent to the GNU Make flavour.
      (only tested on Windows so far)

  + contrib/hbxbp/hbxbp.hbp
    + Added hbmk2 make file for HBXBP lib.

  * contrib/hbfbird/hbfbird.hbp
  * contrib/hbsms/hbsms.hbp
    * Use ${hb_name} instead of ${hb_dirname}.
    + Added -w3 -es3 options.

  * utils/hbmk2/hbmk2.prg
    + Set pathseps to '/' in "-reqheader=' and
      '-reqpkg=' header names.

  - utils/hbmk2/examples/plug_moc.prg
  + contrib/hbqt/plug_moc.prg
    * Moved inside hbqt lib.

  * contrib/hbqt/qtgui/*
  * contrib/hbqt/qtcore/*
    * Regenerated.
This commit is contained in:
Viktor Szakats
2010-05-31 11:04:38 +00:00
parent 5c5d83384d
commit 0b5183a99b
54 changed files with 332 additions and 81 deletions

View File

@@ -1,138 +0,0 @@
/*
* $Id$
*/
/*
* Copyright 2010 Viktor Szakats (harbour.01 syenar.hu)
* www - http://www.harbour-project.org
*
* See COPYING for licensing terms.
*/
#define I_( x ) hb_i18n_gettext( x )
FUNCTION hbmk2_plugin_moc( hbmk2 )
LOCAL cRetVal := ""
LOCAL cMOC_BIN
LOCAL aMOC
LOCAL aMOC_Dst
LOCAL cCommand
LOCAL cDst
LOCAL nError
LOCAL tmp, tmp1, tmp2
LOCAL lBuildIt
SWITCH hbmk2[ "cSTATE" ]
CASE "pre_all"
aMOC_Dst := {}
/* Gather input parameters */
aMOC := {}
FOR EACH tmp IN hbmk2[ "params" ]
IF Lower( hbmk2_FNameExtGet( tmp ) ) == ".h" .OR. ;
Lower( hbmk2_FNameExtGet( tmp ) ) == ".hpp"
AAdd( aMOC, tmp )
ENDIF
NEXT
IF ! Empty( aMOC )
/* Detect 'moc' tool location */
cMOC_BIN := GetEnv( "MOC_BIN" )
IF Empty( cMOC_BIN )
IF Empty( GetEnv( "HB_QT_MOC_BIN" ) )
IF hbmk2[ "cPLAT" ] == "win"
cMOC_BIN := GetEnv( "HB_WITH_QT" ) + "\..\bin\moc.exe"
IF ! hb_FileExists( cMOC_BIN )
hbmk2_OutErr( hbmk2, "HB_WITH_QT points to incomplete QT installation. moc executable not found." )
RETURN NIL
ENDIF
ELSE
cMOC_BIN := hbmk2_FindInPath( "moc", "/opt/qtsdk/qt/bin" )
IF Empty( cMOC_BIN )
cMOC_BIN := hbmk2_FindInPath( "moc-qt4", "/opt/qtsdk/qt/bin" )
IF Empty( cMOC_BIN )
hbmk2_OutErr( hbmk2, "HB_QT_MOC_BIN not set, could not autodetect" )
RETURN NIL
ENDIF
ENDIF
ENDIF
hbmk2_OutStd( hbmk2, "Using QT 'moc' executable: " + cMOC_BIN + " (autodetected)" )
ELSE
IF hb_FileExists( GetEnv( "HB_QT_MOC_BIN" ) )
cMOC_BIN := GetEnv( "HB_QT_MOC_BIN" )
hbmk2_OutStd( hbmk2, "Using QT 'moc' executable: " + cMOC_BIN )
ELSE
hbmk2_OutErr( hbmk2, "HB_QT_MOC_BIN points to non-existent file. Make sure to set it to full path and filename of moc executable." )
RETURN NIL
ENDIF
ENDIF
ENDIF
/* Execute 'moc' commands on input files */
FOR EACH tmp IN aMOC
cDst := hbmk2_FNameDirExtSet( "moc_" + hbmk2_FNameNameGet( tmp ), hbmk2[ "cWorkDir" ], ".cpp" )
IF hbmk2[ "lINC" ] .AND. ! hbmk2[ "lREBUILD" ]
lBuildIt := ! hb_FGetDateTime( cDst, @tmp2 ) .OR. ;
! hb_FGetDateTime( tmp, @tmp1 ) .OR. ;
tmp1 > tmp2
ELSE
lBuildIt := .T.
ENDIF
IF lBuildIt
cCommand := cMOC_BIN +;
" " + hbmk2_FNameEscape( hbmk2_PathSepToTarget( hbmk2, tmp ), hbmk2[ "nCmd_Esc" ] ) +;
" -o " + hbmk2_FNameEscape( hbmk2_PathSepToTarget( hbmk2, cDst ), hbmk2[ "nCmd_Esc" ] )
IF hbmk2[ "lTRACE" ]
IF ! hbmk2[ "lQUIET" ]
hbmk2_OutStd( hbmk2, I_( "'moc' command:" ) )
ENDIF
hbmk2_OutStdRaw( cCommand )
ENDIF
IF ! hbmk2[ "lDONTEXEC" ] .AND. ( nError := hb_processRun( cCommand ) ) != 0
hbmk2_OutErr( hbmk2, hb_StrFormat( I_( "Error: Running 'moc' executable. %1$s" ), hb_ntos( nError ) ) )
IF ! hbmk2[ "lQUIET" ]
hbmk2_OutErrRaw( cCommand )
ENDIF
IF ! hbmk2[ "lIGNOREERROR" ]
cRetVal := "error"
EXIT
ENDIF
ELSE
hbmk2_AddInput_CPP( hbmk2, cDst )
AAdd( aMOC_Dst, cDst )
ENDIF
ELSE
hbmk2_AddInput_CPP( hbmk2, cDst )
AAdd( aMOC_Dst, cDst )
ENDIF
NEXT
ENDIF
hbmk2[ "vars" ][ "aMOC_Dst" ] := aMOC_Dst
EXIT
CASE "post_all"
IF ! hbmk2[ "lINC" ] .OR. hbmk2[ "lCLEAN" ]
AEval( hbmk2[ "vars" ][ "aMOC_Dst" ], {| tmp | FErase( tmp ) } )
ENDIF
EXIT
ENDSWITCH
RETURN cRetVal

View File

@@ -1975,7 +1975,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
cParam := MacroProc( hbmk, tmp := SubStr( cParam, Len( "-reqheader=" ) + 1 ), aParam[ _PAR_cFileName ] )
IF ! Empty( cParam )
hbmk[ _HBMK_hKEYHEADER ][ cParam ] := NIL
hbmk[ _HBMK_hKEYHEADER ][ StrTran( cParam, "\", "/" ) ] := NIL
ENDIF
CASE Left( cParamL, Len( "-stop" ) ) == "-stop"
@@ -5848,6 +5848,8 @@ STATIC FUNCTION pkg_try_detection( hbmk, cName )
cNameFlavour := hb_StrShrink( cNameFlavour, 1 )
ENDIF
cNameFlavour := StrTran( cNameFlavour, "\", "/" )
IF cNameFlavour $ hbmk[ _HBMK_hKEYHEADER ]
hbmk[ _HBMK_hKEYHEADER ][ cNameFlavour ] := cIncludeDir
ENDIF
@@ -5919,6 +5921,7 @@ STATIC FUNCTION FindHeader( hbmk, cFileName, cParentDir, aINCTRYPATH )
/* Add these dir to include paths */
IF AScan( hbmk[ _HBMK_aINCPATH ], { |tmp| tmp == cDir } ) == 0
AAdd( hbmk[ _HBMK_aINCPATH ], DirDelPathSep( PathSepToSelf( cDir ) ) )
cFileName := StrTran( cFileName, "\", "/" )
IF cFileName $ hbmk[ _HBMK_hKEYHEADER ]
hbmk[ _HBMK_hKEYHEADER ][ cFileName ] := cDir
ENDIF