From fdd2418df8311b1f4ecf99bff7bb6a7591d906e8 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Wed, 19 May 2010 08:39:51 +0000 Subject: [PATCH] 2010-05-19 10:35 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * utils/hbmk2/hbmk2.pt_BR.po * utils/hbmk2/hbmk2.hu_HU.po * utils/hbmk2/hbmk2.prg + Added .def file support for win|os2/watcom targets in hbmk2. ATM it requires the special file format required by watcom, there is no transparent conversion done by hbmk2. + Enabled .c stub (for -main, -gt, etc features) in -hbdynvm mode. * Disabled linking harbour .dll in '-hbdyn -shared' mode. NOTE: I'm not sure of this move. This way -hbdyn will now never link any Harbour libs (neither static nor dynamic), so at least we should renamed -hbdyn to -hbdynraw and -hbdynvm to -hbdyn, or make some other cleanup in this regard. Specifically I'm not sure if hbmk2 satisfies this use-case now by default (without '-nohblib-' option): "I can use -hbdyn and -static to create self contain DLL which uses it's own private copy of HVM and Harbour RTL library which can be linked statically or loaded dynamically with/from any other applications" * Text "VM" changed to "Harbour VM" ; NOTE 2: I've checked win/watcom -6s option, but it's still not good because it appends '_' to exported symbols, so watcom -shared executables stop working with mingw/msvc Harbour .dll. Any idea how to solve that? --- harbour/ChangeLog | 47 +++++++++--- harbour/utils/hbmk2/hbmk2.hu_HU.po | 2 +- harbour/utils/hbmk2/hbmk2.prg | 112 +++++++++++++++++------------ harbour/utils/hbmk2/hbmk2.pt_BR.po | 2 +- 4 files changed, 103 insertions(+), 60 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index f277eabff2..b754f6986d 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,31 @@ past entries belonging to author(s): Viktor Szakats. */ +2010-05-19 10:35 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * utils/hbmk2/hbmk2.pt_BR.po + * utils/hbmk2/hbmk2.hu_HU.po + * utils/hbmk2/hbmk2.prg + + Added .def file support for win|os2/watcom targets in hbmk2. + ATM it requires the special file format required by watcom, + there is no transparent conversion done by hbmk2. + + Enabled .c stub (for -main, -gt, etc features) in -hbdynvm mode. + * Disabled linking harbour .dll in '-hbdyn -shared' mode. + NOTE: I'm not sure of this move. This way -hbdyn will now + never link any Harbour libs (neither static nor dynamic), + so at least we should renamed -hbdyn to -hbdynraw and + -hbdynvm to -hbdyn, or make some other cleanup in this + regard. Specifically I'm not sure if hbmk2 satisfies + this use-case now by default (without '-nohblib-' option): + "I can use -hbdyn and -static to create self contain DLL + which uses it's own private copy of HVM and Harbour RTL + library which can be linked statically or loaded dynamically + with/from any other applications" + * Text "VM" changed to "Harbour VM" + ; NOTE 2: I've checked win/watcom -6s option, but it's still not + good because it appends '_' to exported symbols, so + watcom -shared executables stop working with mingw/msvc + Harbour .dll. Any idea how to solve that? + 2010-05-18 22:57 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) * contrib/hbqt/doc/en/class_hbqplaintextedit.txt * contrib/hbqt/hbqt_hbqplaintextedit.cpp @@ -30,16 +55,16 @@ * contrib/hbide/ideshortcuts.prg + Implemented: proper hbIDEMap protocol. Now you can keep open - "Source Thumbnail" dock and keep on clicking the tabs. Current - source map will be displayed inside. - + "Source Thumbnail" dock and keep on clicking the tabs. Current + source map will be displayed inside. + hbIDEMap Features: 1. hbIDEMap carries highlighted code lines which are visible in main editing instance window. Navigaing the editor also changes highlighted area corresponding to main instance. 2. All keyboard mappings are active in the map also which implies - that you can exercise copy operations which can be pasted + that you can exercise copy operations which can be pasted in the current code, a very useful feature. 2010-05-18 18:55 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) @@ -51,15 +76,15 @@ * contrib/hbide/ideedit.prg * contrib/hbide/ideeditor.prg * contrib/hbide/ideobject.prg - ! Fixed: selected text when viewed in a narrow window and + ! Fixed: selected text when viewed in a narrow window and using horizontal scrollbars was showing incorrectly. + Implemented: current source's thumbnail view. - It is presented in a right-hand docking widget which + It is presented in a right-hand docking widget which can be activated via menu. it is almost identical with - current editor but with a significant difference that + current editor but with a significant difference that it is loaded from the disk whenever the dock is brought to view. - It contains smaller font and is entirely idependent + It contains smaller font and is entirely idependent of main editing instance. It is just a quick commit. Refinement will follow. @@ -77,10 +102,10 @@ * contrib/hbide/ideedit.prg * contrib/hbide/ideeditor.prg * contrib/hbide/idetags.prg - + Implemented: Context-menu option "Goto Function" looks + + Implemented: Context-menu option "Goto Function" looks for the function/method in the current source first, - and if found, jumps to that, otherwise it rellies on - tagging. It implies that functions in current source + and if found, jumps to that, otherwise it rellies on + tagging. It implies that functions in current source are always can be reached with "Goto Function" option which operates on word under cursor. diff --git a/harbour/utils/hbmk2/hbmk2.hu_HU.po b/harbour/utils/hbmk2/hbmk2.hu_HU.po index cad7143339..7a3c61af4a 100644 --- a/harbour/utils/hbmk2/hbmk2.hu_HU.po +++ b/harbour/utils/hbmk2/hbmk2.hu_HU.po @@ -794,7 +794,7 @@ msgstr "kapcsol #: hbmk2.prg:7850 #, c-format -msgid "link with multi/single-thread VM" +msgid "link with multi/single-thread Harbour VM" msgstr "többszálú/egyszálú virtuális gép használata" #: hbmk2.prg:7941 diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index e9dd675dc8..67f2a42ac0 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -324,39 +324,41 @@ REQUEST hbmk_KEYW #define _HBMK_lCreateDyn 62 #define _HBMK_lCreateImpLib 63 -#define _HBMK_lBLDFLGP 64 -#define _HBMK_lBLDFLGC 65 -#define _HBMK_lBLDFLGL 66 +#define _HBMK_lDynVM 64 -#define _HBMK_cFIRST 67 -#define _HBMK_aPRG 68 -#define _HBMK_aC 69 -#define _HBMK_aCPP 70 -#define _HBMK_aRESSRC 71 -#define _HBMK_aRESCMP 72 -#define _HBMK_aOBJUSER 73 -#define _HBMK_aICON 74 -#define _HBMK_aIMPLIBSRC 75 -#define _HBMK_cDEF 76 -#define _HBMK_hDEPTS 77 +#define _HBMK_lBLDFLGP 65 +#define _HBMK_lBLDFLGC 66 +#define _HBMK_lBLDFLGL 67 -#define _HBMK_aPO 78 -#define _HBMK_cHBL 79 -#define _HBMK_cHBLDir 80 -#define _HBMK_aLNG 81 -#define _HBMK_cPO 82 +#define _HBMK_cFIRST 68 +#define _HBMK_aPRG 69 +#define _HBMK_aC 70 +#define _HBMK_aCPP 71 +#define _HBMK_aRESSRC 72 +#define _HBMK_aRESCMP 73 +#define _HBMK_aOBJUSER 74 +#define _HBMK_aICON 75 +#define _HBMK_aIMPLIBSRC 76 +#define _HBMK_cDEF 77 +#define _HBMK_hDEPTS 78 -#define _HBMK_lDEBUGTIME 83 -#define _HBMK_lDEBUGINC 84 -#define _HBMK_lDEBUGSTUB 85 -#define _HBMK_lDEBUGI18N 86 +#define _HBMK_aPO 79 +#define _HBMK_cHBL 80 +#define _HBMK_cHBLDir 81 +#define _HBMK_aLNG 82 +#define _HBMK_cPO 83 -#define _HBMK_cCCPATH 87 -#define _HBMK_cCCPREFIX 88 -#define _HBMK_cCCPOSTFIX 89 -#define _HBMK_cCCEXT 90 +#define _HBMK_lDEBUGTIME 84 +#define _HBMK_lDEBUGINC 85 +#define _HBMK_lDEBUGSTUB 86 +#define _HBMK_lDEBUGI18N 87 -#define _HBMK_MAX_ 90 +#define _HBMK_cCCPATH 88 +#define _HBMK_cCCPREFIX 89 +#define _HBMK_cCCPOSTFIX 90 +#define _HBMK_cCCEXT 91 + +#define _HBMK_MAX_ 91 #ifndef _HBMK_EMBEDDED_ @@ -744,6 +746,8 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause ) hbmk[ _HBMK_lCreateDyn ] := .F. hbmk[ _HBMK_lCreateImpLib ] := .F. + hbmk[ _HBMK_lDynVM ] := .F. + hbmk[ _HBMK_lQuiet ] := .F. hbmk[ _HBMK_lInfo ] := .F. hbmk[ _HBMK_nMaxCol ] := MaxCol() @@ -1622,8 +1626,8 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause ) CASE cParamL == "-pause" ; lPause := .T. CASE cParamL == "-hbexe" ; hbmk[ _HBMK_lInfo ] := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .F. ; hbmk[ _HBMK_lCreateLib ] := .F. ; hbmk[ _HBMK_lCreateDyn ] := .F. CASE cParamL == "-hblib" ; hbmk[ _HBMK_lInfo ] := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T. ; hbmk[ _HBMK_lCreateLib ] := .T. ; hbmk[ _HBMK_lCreateDyn ] := .F. - CASE cParamL == "-hbdyn" ; hbmk[ _HBMK_lInfo ] := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T. ; hbmk[ _HBMK_lCreateLib ] := .F. ; hbmk[ _HBMK_lCreateDyn ] := .T. ; l_lNOHBLIB := .T. - CASE cParamL == "-hbdynvm" ; hbmk[ _HBMK_lInfo ] := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T. ; hbmk[ _HBMK_lCreateLib ] := .F. ; hbmk[ _HBMK_lCreateDyn ] := .T. ; l_lNOHBLIB := .F. + CASE cParamL == "-hbdyn" ; hbmk[ _HBMK_lInfo ] := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T. ; hbmk[ _HBMK_lCreateLib ] := .F. ; hbmk[ _HBMK_lCreateDyn ] := .T. ; hbmk[ _HBMK_lDynVM ] := .F. ; l_lNOHBLIB := .T. + CASE cParamL == "-hbdynvm" ; hbmk[ _HBMK_lInfo ] := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T. ; hbmk[ _HBMK_lCreateLib ] := .F. ; hbmk[ _HBMK_lCreateDyn ] := .T. ; hbmk[ _HBMK_lDynVM ] := .T. ; l_lNOHBLIB := .F. CASE cParamL == "-hbimplib" ; hbmk[ _HBMK_lInfo ] := .F. ; lStopAfterInit := .T. ; hbmk[ _HBMK_lCreateImpLib ] := .T. ; lAcceptIFlag := .T. CASE cParamL == "-gui" .OR. ; cParamL == "-mwindows" ; hbmk[ _HBMK_lGUI ] := .T. /* Compatibility */ @@ -3094,6 +3098,12 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause ) CASE hbmk[ _HBMK_cPLAT ] == "win" ; cOpt_Dyn := "OP quiet SYS nt_dll {FD} NAME {OD} {LO} {DL} {LL} {LB} {LS}{SCRIPT}" CASE hbmk[ _HBMK_cPLAT ] == "os2" ; cOpt_Dyn := "OP quiet SYS os2v2_dll {FD} NAME {OD} {LO} {DL} {LL} {LB} {LS}{SCRIPT}" ENDCASE + IF hbmk[ _HBMK_cPLAT ] $ "win|os2" .AND. ! Empty( hbmk[ _HBMK_cDEF ] ) + /* TODO: Watcom wlink requires a non-standard layout for .def files. + We will need a converter and implement on-the-fly conversion + to a temp file and pass that via {IM}. */ + AAdd( hbmk[ _HBMK_aOPTD ], "@{IM}" ) + ENDIF IF hbmk[ _HBMK_cPLAT ] == "dos" /* workaround for not included automatically CLIB in pure C mode DOS builds */ AAdd( l_aLIBSYS, "clib3r" ) @@ -4058,7 +4068,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause ) /* HACK: Override entry point requested by user or detected by us, and override the GT if requested by user. */ - IF ! lStopAfterCComp .AND. ; + IF ( ! lStopAfterCComp .OR. hbmk[ _HBMK_lDynVM ] ) .AND. ; ( l_cMAIN != NIL .OR. ; ! Empty( hbmk[ _HBMK_aLIBUSERGT ] ) .OR. ; hbmk[ _HBMK_cGT ] != NIL .OR. ; @@ -4326,17 +4336,22 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause ) /* Library list assembly */ IF hbmk[ _HBMK_lSHARED ] .AND. ! Empty( l_aLIBSHARED ) - l_aLIBHB := AClone( l_aLIBSHAREDPOST ) - /* NOTE: Make sure to add these static libs only if they can be found. - This will ensure that hbmk2 can be used to build shared mode binaries - even when static libs are not installed (typically on *nix systems). - [vszakats] */ - FOR EACH tmp IN ArrayAJoin( { aLIB_BASE_CPLR,; - aLIB_BASE_DEBUG } ) - IF hb_FileExists( _HBLIB_FULLPATH( tmp ) ) - AAdd( l_aLIBHB, tmp ) - ENDIF - NEXT + /* Don't link Harbour dynamic/static libs when in '-hbdyn -shared' mode */ + IF !( hbmk[ _HBMK_lCreateDyn ] .AND. ! hbmk[ _HBMK_lDynVM ] ) + l_aLIBHB := AClone( l_aLIBSHAREDPOST ) + /* NOTE: Make sure to add these static libs only if they can be found. + This will ensure that hbmk2 can be used to build shared mode binaries + even when static libs are not installed (typically on *nix systems). + [vszakats] */ + FOR EACH tmp IN ArrayAJoin( { aLIB_BASE_CPLR,; + aLIB_BASE_DEBUG } ) + IF hb_FileExists( _HBLIB_FULLPATH( tmp ) ) + AAdd( l_aLIBHB, tmp ) + ENDIF + NEXT + ELSE + l_aLIBHB := {} + ENDIF ELSE l_aLIBHB := ArrayAJoin( { aLIB_BASE_EXTERN,; aLIB_BASE_DEBUG,; @@ -4360,8 +4375,11 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause ) l_aLIBA := {} ListCookLib( hbmk, l_aLIB, l_aLIBA, l_aLIBRAW, NIL, cLibExt ) IF hbmk[ _HBMK_lSHARED ] .AND. ! Empty( l_aLIBSHARED ) - l_aLIBRAW := ArrayJoin( l_aLIBSHARED, l_aLIBRAW ) - ListCookLib( hbmk, l_aLIB, l_aLIBA, l_aLIBSHARED, NIL ) + /* Don't link Harbour dynamic/static libs when in '-hbdyn -shared' mode */ + IF !( hbmk[ _HBMK_lCreateDyn ] .AND. ! hbmk[ _HBMK_lDynVM ] ) + l_aLIBRAW := ArrayJoin( l_aLIBSHARED, l_aLIBRAW ) + ListCookLib( hbmk, l_aLIB, l_aLIBA, l_aLIBSHARED, NIL ) + ENDIF ENDIF /* Dress obj names. */ IF cObjExt == NIL @@ -8775,12 +8793,12 @@ STATIC PROCEDURE ShowHelp( hbmk, lLong ) { "-L" , I_( "additional path to search for libraries" ) },; { "-i

|-incpath=

" , I_( "additional path to search for headers" ) },; { "-static|-shared" , I_( "link with static/shared libs" ) },; - { "-mt|-st" , I_( "link with multi/single-thread VM" ) },; + { "-mt|-st" , I_( "link with multi/single-thread Harbour VM" ) },; { "-gt" , I_( "link with GT GT driver, can be repeated to link with more GTs. First one will be the default at runtime" ) },; { "-hbexe" , I_( "create executable (default)" ) },; { "-hblib" , I_( "create static library" ) },; - { "-hbdyn" , I_( "create dynamic library" ) },; - { "-hbdynvm" , I_( "create dynamic library (EXPERIMENTAL)" ) },; + { "-hbdyn" , I_( "create dynamic library (without linked Harbour VM)" ) },; + { "-hbdynvm" , I_( "create dynamic library" ) },; { "-hbimplib" , I_( "create import library" ) }} LOCAL aOpt_Help := {; diff --git a/harbour/utils/hbmk2/hbmk2.pt_BR.po b/harbour/utils/hbmk2/hbmk2.pt_BR.po index d5933a654b..9fe4628f65 100644 --- a/harbour/utils/hbmk2/hbmk2.pt_BR.po +++ b/harbour/utils/hbmk2/hbmk2.pt_BR.po @@ -363,7 +363,7 @@ msgstr "Aten #: hbmk2.prg:7851 #, c-format -msgid "link with multi/single-thread VM" +msgid "link with multi/single-thread Harbour VM" msgstr "linkar com suporte multi ou single-thread na HVM" #: hbmk2.prg:7825