From 6c4206dd57fd12a5e13f007e91a74d6dd0c9105d Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Tue, 12 May 2009 16:20:15 +0000 Subject: [PATCH] 2009-05-12 18:14 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * utils/hbmk2/hbmk2.prg ! Fixed not recognizing -incpath/-inctrypath ! Removed prioritizing own C compiler when detecting C compiler. This resulted in msvc64 not being recognized when using an MSVC build of hbmk2. + Added -instpath= option to specifiy dirs where target gets copied after a successful build. --- harbour/ChangeLog | 14 +++++++++-- harbour/utils/hbmk2/hbmk2.prg | 47 ++++++++++++++++++++++++----------- 2 files changed, 44 insertions(+), 17 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 32b0b1b7ac..1f7bf7dcc7 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,15 @@ past entries belonging to these authors: Viktor Szakats. */ +2009-05-12 18:14 UTC+0200 Viktor Szakats (harbour.01 syenar hu) + * utils/hbmk2/hbmk2.prg + ! Fixed not recognizing -incpath/-inctrypath + ! Removed prioritizing own C compiler when detecting + C compiler. This resulted in msvc64 not being recognized + when using an MSVC build of hbmk2. + + Added -instpath= option to specifiy dirs where target gets + copied after a successful build. + 2009-05-12 18:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/rtl/filesys.c + added support for millisecond precision in hb_fsGetFileTime()/ @@ -36,7 +45,7 @@ + Added HB_GZPUTC(). * include/hbsetup.ch - - Removed HB_EXTENSION from documented list of build modified macros. + - Removed HB_EXTENSION from documented list of build modifier macros. * source/common/hbverdsp.c - Deleted HB_EXTENSION dependent part. @@ -45,7 +54,7 @@ - Deleted HB_EXTENSION branch. Please modify your program to use Set( _SET_EOL ) instead of passing EOLs explicitly to memo functions. This works also in xhb. - INCOMPATIBLE when for HB_EXTENSION builds. + INCOMPATIBLE for HB_EXTENSION builds. * source/rtl/alert.prg ! Minor in comment. @@ -54,6 +63,7 @@ - Removed SAVESCREEN()/RESTSCREEN() extra "lNoCheck" parameter when HB_EXTENSION is enabled. Please report on the list if you need this functionality. + INCOMPATIBLE for HB_EXTENSION builds. * source/compiler/hbfunchk.c ! Fix to prev: AT() declaration. diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 1847c7d049..9e76d3ffe0 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -297,6 +297,7 @@ FUNCTION hbmk( aArgs ) LOCAL s_aOBJA LOCAL s_aOBJUSER LOCAL s_aCLEAN + LOCAL s_aINSTPATH LOCAL s_lHB_PCRE := .T. LOCAL s_lHB_ZLIB := .T. LOCAL s_cMAIN := NIL @@ -821,22 +822,13 @@ FUNCTION hbmk( aArgs ) ENDIF ELSE IF Empty( s_cCOMP ) .AND. ! Empty( aCOMPDET ) - /* Look for this compiler first */ + /* Check compilers */ FOR tmp := 1 TO Len( aCOMPDET ) - IF aCOMPDET[ tmp ][ _COMPDET_cCOMP ] == cSelfCOMP .AND. Eval( aCOMPDET[ tmp ][ _COMPDET_bBlock ] ) + IF Eval( aCOMPDET[ tmp ][ _COMPDET_bBlock ] ) s_cCOMP := aCOMPDET[ tmp ][ _COMPDET_cCOMP ] EXIT ENDIF NEXT - IF Empty( s_cCOMP ) - /* Check the rest of compilers */ - FOR tmp := 1 TO Len( aCOMPDET ) - IF !( aCOMPDET[ tmp ][ _COMPDET_cCOMP ] == cSelfCOMP ) .AND. Eval( aCOMPDET[ tmp ][ _COMPDET_bBlock ] ) - s_cCOMP := aCOMPDET[ tmp ][ _COMPDET_cCOMP ] - EXIT - ENDIF - NEXT - ENDIF ENDIF IF Empty( s_cCOMP ) .AND. s_cARCH $ "win|wce" /* Autodetect embedded MinGW installation */ @@ -966,6 +958,7 @@ FUNCTION hbmk( aArgs ) s_cHBL := NIL s_cPO := NIL s_aLNG := {} + s_aINSTPATH := {} /* Collect all command line parameters */ aParams := {} @@ -1249,12 +1242,12 @@ FUNCTION hbmk( aArgs ) AAdd( s_aLIBPATH, cParam ) ENDIF - CASE Left( cParamL, 2 ) == "-i" .AND. ; - Len( cParamL ) > 2 + CASE Left( cParamL, Len( "-instpath=" ) ) == "-instpath=" .AND. ; + Len( cParamL ) > Len( "-instpath=" ) - cParam := MacroProc( tmp := ArchCompFilter( SubStr( cParam, 3 ) ), FN_DirGet( aParam[ _PAR_cFileName ] ) ) + cParam := MacroProc( tmp := ArchCompFilter( SubStr( cParam, Len( "-instpath=" ) + 1 ) ), FN_DirGet( aParam[ _PAR_cFileName ] ) ) IF ! Empty( cParam ) - AAdd( s_aINCPATH, PathSepToTarget( cParam ) ) + AAdd( s_aINSTPATH, PathSepToTarget( cParam ) ) ENDIF CASE Left( cParamL, Len( "-incpath=" ) ) == "-incpath=" .AND. ; @@ -1273,6 +1266,14 @@ FUNCTION hbmk( aArgs ) AAdd( s_aINCTRYPATH, PathSepToTarget( cParam ) ) ENDIF + CASE Left( cParamL, 2 ) == "-i" .AND. ; + Len( cParamL ) > 2 + + cParam := MacroProc( tmp := ArchCompFilter( SubStr( cParam, 3 ) ), FN_DirGet( aParam[ _PAR_cFileName ] ) ) + IF ! Empty( cParam ) + AAdd( s_aINCPATH, PathSepToTarget( cParam ) ) + ENDIF + CASE Left( cParamL, Len( "-stop" ) ) == "-stop" cParam := ArchCompFilter( cParam ) @@ -3377,6 +3378,21 @@ FUNCTION hbmk( aArgs ) ENDIF ENDIF ENDIF + + IF ! Empty( s_aINSTPATH ) + FOR EACH tmp IN s_aINSTPATH + IF Empty( FN_NameExtGet( tmp ) ) + tmp1 := DirAddPathSep( PathSepToSelf( tmp ) ) + FN_NameExtGet( s_cPROGNAME ) + ELSE + tmp1 := PathSepToSelf( tmp ) + ENDIF + IF hb_FCopy( s_cPROGNAME, tmp1 ) == F_ERROR + hbmk_OutErr( hb_StrFormat( I_( "Warning: Copying target to %1$s failed with %2$s." ), tmp1, hb_ntos( FError() ) ) ) + ELSEIF s_lInfo + hbmk_OutStd( hb_StrFormat( I_( "Copied target to %1$s" ), tmp1 ) ) + ENDIF + NEXT + ENDIF ENDIF ENDIF @@ -5567,6 +5583,7 @@ STATIC PROCEDURE ShowHelp( lLong ) { "-[no]compr[=lev]" , I_( "compress executable/dynamic lib (needs UPX)\n can be: min, max, def" ) },; { "-[no]run" , I_( "run/don't run output executable" ) },; { "-vcshead=" , I_( "generate .ch header file with local repository information. SVN, Git and Mercurial are currently supported. Generated header will define macro _HBMK_VCS_TYPE_ with the name of detected VCS and _HBMK_VCS_ID_ with the unique ID of local repository" ) },; + { "-instpath=" , I_( "copy target to . if is a directory, it should end with path separator. can be specified multiple times" ) },; { "-nohbp" , I_( "do not process .hbp files in current directory" ) },; { "-stop" , I_( "stop without doing anything" ) },; NIL,;