2010-04-12 11:08 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* utils/hbmk2/hbmk2.prg
    + Added feature to allow -inc mode when using harbour compiler
      as preprocessor:
         'hbmk2 -hbraw -inc -p[<path>] -s[<m>] <.prg[s]>'
    + Added dummy handling for rest of '%__APP*__%' OSX macros.
This commit is contained in:
Viktor Szakats
2010-04-12 09:13:03 +00:00
parent 576701d94f
commit acc8da9057
2 changed files with 39 additions and 3 deletions

View File

@@ -17,6 +17,13 @@
past entries belonging to author(s): Viktor Szakats.
*/
2010-04-12 11:08 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
+ Added feature to allow -inc mode when using harbour compiler
as preprocessor:
'hbmk2 -hbraw -inc -p[<path>] -s[<m>] <.prg[s]>'
+ Added dummy handling for rest of '%__APP*__%' OSX macros.
2010-04-11 21:45 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
+ -info parameter will now enable output line with target

View File

@@ -706,6 +706,11 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
LOCAL cMakeImpLibLib := NIL
LOCAL lMakeImpLibMS_bcc := .F.
LOCAL nHarbourPPO := 0
LOCAL cHarbourOutputExt
LOCAL cHarbourOutputDir
LOCAL cHarbourPPODir := ""
LOCAL cWorkDir := NIL
LOCAL aParams
@@ -2029,6 +2034,19 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
IF SubStr( cParamL, 2 ) == "gh"
lStopAfterHarbour := .T.
ENDIF
/* Detect if Harbour is only used as preprocessor (-p + -s options) */
IF SubStr( cParamL, 2 ) == "p"
++nHarbourPPO
tmp := MacroProc( hbmk, ArchCompFilter( hbmk, SubStr( cParam, 3 ) ), aParam[ _PAR_cFileName ] )
IF ! Empty( tmp )
tmp := PathProc( PathSepToSelf( tmp ), aParam[ _PAR_cFileName ] )
hb_FNameSplit( tmp, @cDir, @cName, @cExt )
cHarbourPPODir := cDir
ENDIF
ENDIF
IF SubStr( cParamL, 2 ) == "s"
++nHarbourPPO
ENDIF
AAddNotEmpty( hbmk[ _HBMK_aOPTPRG ], PathSepToTarget( hbmk, cParam, 2 ) )
ENDCASE
@@ -3786,11 +3804,19 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
/* Create incremental file list for .prg files */
IF ! lSkipBuild .AND. ! lStopAfterInit .AND. ! lStopAfterHarbour .AND. hbmk[ _HBMK_nHBMODE ] != _HBMODE_RAW_C
IF ( ! lSkipBuild .AND. ! lStopAfterInit .AND. ! lStopAfterHarbour .AND. hbmk[ _HBMK_nHBMODE ] != _HBMODE_RAW_C ) .OR. ;
( nHarbourPPO >= 2 .AND. lStopAfterHarbour ) /* or in preprocessor mode */
/* Incremental */
IF hbmk[ _HBMK_lINC ] .AND. ! hbmk[ _HBMK_lREBUILD ]
IF nHarbourPPO >= 2 .AND. lStopAfterHarbour /* .ppo files are the dependents in preprocessor mode */
cHarbourOutputExt := ".ppo"
cHarbourOutputDir := cHarbourPPODir
ELSE
cHarbourOutputExt := ".c"
cHarbourOutputDir := cWorkDir
ENDIF
l_aPRG_TODO := {}
FOR EACH tmp IN hbmk[ _HBMK_aPRG ]
IF LEFTEQUAL( tmp, "@" ) .AND. Lower( FN_ExtGet( tmp ) ) == ".clp"
@@ -3800,9 +3826,9 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
ENDIF
IF hbmk[ _HBMK_lDEBUGINC ]
hbmk_OutStd( hbmk, hb_StrFormat( "debuginc: PRG %1$s %2$s",;
tmp3, FN_DirExtSet( tmp3, cWorkDir, ".c" ) ) )
tmp3, FN_DirExtSet( tmp3, cHarbourOutputDir, cHarbourOutputExt ) ) )
ENDIF
IF ! hb_FGetDateTime( FN_DirExtSet( tmp3, cWorkDir, ".c" ), @tmp2 ) .OR. ;
IF ! hb_FGetDateTime( FN_DirExtSet( tmp3, cHarbourOutputDir, cHarbourOutputExt ), @tmp2 ) .OR. ;
! hb_FGetDateTime( tmp3, @tmp1 ) .OR. ;
tmp1 > tmp2 .OR. ;
( hbmk[ _HBMK_nHEAD ] != _HEAD_OFF .AND. FindNewerHeaders( hbmk, tmp, NIL, tmp2, .F., .F., cBin_CompC, NIL, @headstate ) )
@@ -8105,6 +8131,9 @@ STATIC FUNCTION MacOSXFiles( hbmk, nType, cPROGNAME )
cString := StrTran( cString, "%__APPNAME__%", cPROGNAME )
cString := StrTran( cString, "%__APPTYPE__%", "APPL" )
cString := StrTran( cString, "%__APPSIGN__%", PadR( cPROGNAME, 4, "?" ) )
cString := StrTran( cString, "%__APPID__%" ) /* TODO */
cString := StrTran( cString, "%__APPVERSION__%" ) /* TODO */
cString := StrTran( cString, "%__APPCOPYRIGHT__%" ) /* TODO */
IF ! Empty( hbmk[ _HBMK_aICON ] )
cString := StrTran( cString, "%__APPICON__%", FN_NameExtGet( hbmk[ _HBMK_aICON ][ 1 ] ) )
ENDIF