2010-05-20 11:21 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* utils/hbmk2/hbmk2.prg
    + Added hbmk2 level support for multiple input .def files.
      NOTE: Multiple .def files are only supported by gcc family
            compilers (mingw/cygwin) (and maybe watcom, but I can't 
            tell by looking at the output), so for portable scripts,
            stick to using only one .def file per .dll. bcc,
            msvc, pocc will either ignore some of them, or
            stop with error.

  * ChangeLog
    - Deleted accented (UTF8) char.
    ! Deleted UTF8 file marked added by subsequent committer's editor.

    ; --- Pls remember to use ASCII 7-bit chars in our files ---
This commit is contained in:
Viktor Szakats
2010-05-20 09:35:08 +00:00
parent 273f42e244
commit ca702096d2
2 changed files with 46 additions and 30 deletions

View File

@@ -1,4 +1,4 @@
/*
/*
* $Id$
*/
@@ -17,6 +17,22 @@
past entries belonging to author(s): Viktor Szakats.
*/
2010-05-20 11:21 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* utils/hbmk2/hbmk2.prg
+ Added hbmk2 level support for multiple input .def files.
NOTE: Multiple .def files are only supported by gcc family
compilers (mingw/cygwin) (and maybe watcom, but I can't
tell by looking at the output), so for portable scripts,
stick to using only one .def file per .dll. bcc,
msvc, pocc will either ignore some of them, or
stop with error.
* ChangeLog
- Deleted accented (UTF8) char.
! Deleted UTF8 file marked added by subsequent committer's editor.
; --- Pls remember to use ASCII 7-bit chars in our files ---
2010-05-19 20:45 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbide/ideprojmanager.prg
! Fixed: project location was shown blank. Itamar reported.
@@ -35,19 +51,19 @@
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
% Shifted: all actions which operate on editing instance, to
the micro levels. This implies that ::IdeEdit() object can be
% Shifted: all actions which operate on editing instance, to
the micro levels. This implies that ::IdeEdit() object can be
used independent of interface constraints and hence becomes
eligible to be included in hbXBP as a HBP class.
eligible to be included in hbXBP as a HBP class.
This also implies that hbIDEMap can be manipulated through
Keyboard Mappings macros the same way as main editing instance
with the exception that it cannot be editied. For example,
you can call ::zoom( nPointSizeORKey ) to adjust its size.
You can also use Ctrl+C to copy and can use block operations.
+ Added: <Edit><Format><Replace Spaces with Tabs> option. Tabs
are set to stop at same distance of 3 characters which
makes it possible to modify sources with/without tabs but
+ Added: <Edit><Format><Replace Spaces with Tabs> option. Tabs
are set to stop at same distance of 3 characters which
makes it possible to modify sources with/without tabs but
with same visual display.
2010-05-20 01:42 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
@@ -56,7 +72,7 @@
+ added new C function hb_hashGetCItemPos()
* harbour/src/rtl/hbcom.c
! fixed typo located by Bisz István
! fixed typo located by Bisz Istvan
2010-05-19 10:35 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.pt_BR.po

View File

@@ -339,7 +339,7 @@ REQUEST hbmk_KEYW
#define _HBMK_aOBJUSER 74
#define _HBMK_aICON 75
#define _HBMK_aIMPLIBSRC 76
#define _HBMK_cDEF 77
#define _HBMK_aDEF 77
#define _HBMK_hDEPTS 78
#define _HBMK_aPO 79
@@ -652,6 +652,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
LOCAL cLibLibPrefix := ""
LOCAL cLibObjPrefix
LOCAL cDynObjPrefix := NIL
LOCAL cDynDefPrefix := NIL
LOCAL cLibPathPrefix
LOCAL cLibPathSep
LOCAL cDynLibNamePrefix
@@ -1528,7 +1529,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
hbmk[ _HBMK_aOBJUSER ] := {}
hbmk[ _HBMK_aICON ] := {}
hbmk[ _HBMK_aIMPLIBSRC ] := {}
hbmk[ _HBMK_cDEF ] := ""
hbmk[ _HBMK_aDEF ] := {}
l_aOBJA := {}
l_cPROGDIR := NIL
l_cPROGNAME := NIL
@@ -2165,8 +2166,9 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
cParam := ArchCompFilter( hbmk, cParam )
IF ! Empty( cParam )
cParam := PathProc( cParam, aParam[ _PAR_cFileName ] )
hbmk[ _HBMK_cDEF ] := PathSepToTarget( hbmk, cParam )
FOR EACH cParam IN FN_Expand( PathProc( cParam, aParam[ _PAR_cFileName ] ), Empty( aParam[ _PAR_cFileName ] ) )
AAdd( hbmk[ _HBMK_aDEF ], PathSepToTarget( hbmk, cParam ) )
NEXT
ENDIF
CASE FN_ExtGet( cParamL ) == ".o" .OR. ;
@@ -2709,7 +2711,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
cOpt_CompC += " {LC}"
ENDIF
cBin_Dyn := cBin_CompC
cOpt_Dyn := "-shared -o {OD} {IM} {LO} {FD} {DL} {LS}"
cOpt_Dyn := "-shared -o {OD} {LO} {FD} {IM} {DL} {LS}"
cBin_Link := cBin_CompC
cOpt_Link := "{LO} {LA} {LS} {FL} {DL}"
bBlk_ImpLib := {| cSourceDLL, cTargetLib, cFlags | win_implib_command_gcc( hbmk, hbmk[ _HBMK_cCCPREFIX ] + "dlltool" + hbmk[ _HBMK_cCCPOSTFIX ] + hbmk[ _HBMK_cCCEXT ] + " {FI} -d {ID} -l {OL}", nCmd_Esc, cSourceDLL, cTargetLib, cFlags ) }
@@ -2845,7 +2847,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
cOpt_CompC += " {LC}"
ENDIF
cBin_Dyn := cBin_CompC
cOpt_Dyn := "-shared -o {OD} {IM} {LO} {LL} {LB} {FD} {DL} {LS}"
cOpt_Dyn := "-shared -o {OD} {LO} {LL} {LB} {FD} {IM} {DL} {LS}"
cBin_Link := cBin_CompC
cOpt_Link := "{LO} {LA} {FL} {DL}"
bBlk_ImpLib := {| cSourceDLL, cTargetLib | hb_FCopy( cSourceDLL, cTargetLib ) != F_ERROR }
@@ -3095,14 +3097,14 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
AAdd( hbmk[ _HBMK_aLIBPATH ], PathSepToTarget( hbmk, GetEnv( "WATCOM") + hb_osPathSeparator() + "lib386" ) )
AAdd( hbmk[ _HBMK_aLIBPATH ], PathSepToTarget( hbmk, GetEnv( "WATCOM") + hb_osPathSeparator() + "lib386" + hb_osPathSeparator() + "linux" ) )
ENDIF
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}"
CASE hbmk[ _HBMK_cPLAT ] == "win" ; cOpt_Dyn := "OP quiet SYS nt_dll {FD} {IM} NAME {OD} {LO} {DL} {LL} {LB} {LS}{SCRIPT}"
CASE hbmk[ _HBMK_cPLAT ] == "os2" ; cOpt_Dyn := "OP quiet SYS os2v2_dll {FD} {IM} NAME {OD} {LO} {DL} {LL} {LB} {LS}{SCRIPT}"
ENDCASE
IF hbmk[ _HBMK_cPLAT ] $ "win|os2" .AND. ! Empty( hbmk[ _HBMK_cDEF ] )
IF hbmk[ _HBMK_cPLAT ] $ "win|os2" .AND. ! Empty( hbmk[ _HBMK_aDEF ] )
/* 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}" )
cDynDefPrefix := "@"
ENDIF
IF hbmk[ _HBMK_cPLAT ] == "dos"
/* workaround for not included automatically CLIB in pure C mode DOS builds */
@@ -3332,7 +3334,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
cBin_CompCPP := cBin_CompC
nCmd_Esc := _ESC_DBLQUOTE
cOpt_Lib := "-nologo {FA} -out:{OL} {LO}"
cOpt_Dyn := "{FD} -dll -out:{OD} {DL} {LO} {LL} {LB} {LS}"
cOpt_Dyn := "{FD} {IM} -dll -out:{OD} {DL} {LO} {LL} {LB} {LS}"
cOpt_CompC := "-nologo -c"
IF hbmk[ _HBMK_lOPTIM ]
IF hbmk[ _HBMK_cPLAT ] == "wce"
@@ -3383,7 +3385,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
ENDIF
cOpt_CompC += " {FC} {LC}"
cOptIncMask := "-I{DI}"
cOpt_Link := "-nologo -out:{OE} {LO} {DL} {FL} {LL} {LB} {LS}"
cOpt_Link := "-nologo -out:{OE} {LO} {DL} {FL} {IM} {LL} {LB} {LS}"
SWITCH hbmk[ _HBMK_cCOMP ]
CASE "msvc" ; AAdd( hbmk[ _HBMK_aOPTI ], "-machine:x86" ) ; EXIT
CASE "msvc64" ; AAdd( hbmk[ _HBMK_aOPTI ], "-machine:x64" ) ; EXIT
@@ -3397,9 +3399,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
bBlk_ImpLib := {| cSourceDLL, cTargetLib, cFlags | win_implib_command_msvc( hbmk, cBin_Lib + " -nologo {FI} -def:{ID} -out:{OL}", nCmd_Esc, cSourceDLL, cTargetLib, cFlags ) }
cLibPathPrefix := "-libpath:"
cLibPathSep := " "
IF ! Empty( hbmk[ _HBMK_cDEF ] )
AAdd( hbmk[ _HBMK_aOPTD ], "-def:{IM}" )
ENDIF
cDynDefPrefix := "-def:"
IF hbmk[ _HBMK_lMAP ]
AAdd( hbmk[ _HBMK_aOPTL ], "-map" )
AAdd( hbmk[ _HBMK_aOPTD ], "-map" )
@@ -3512,7 +3512,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
cWorkDir := "."
ENDIF
cOptIncMask := "-I{DI}"
cOpt_Dyn := "{FD} -dll -out:{OD} {DL} {LO} {LL} {LB} {LS}"
cOpt_Dyn := "{FD} {IM} -dll -out:{OD} {DL} {LO} {LL} {LB} {LS}"
bBlk_ImpLib := {| cSourceDLL, cTargetLib, cFlags | win_implib_command( hbmk, cBin_Lib + " {ID} -out:{OL}", nCmd_Esc, cSourceDLL, cTargetLib, cFlags ) }
IF hbmk[ _HBMK_cPLAT ] == "wce"
AAdd( hbmk[ _HBMK_aOPTC ], "-DUNICODE" )
@@ -3544,12 +3544,10 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
IF hbmk[ _HBMK_lMT ]
AAdd( hbmk[ _HBMK_aOPTC ], "-MT" )
ENDIF
cOpt_Link := "-out:{OE} {LO} {DL} {FL} {LL} {LB} {LS}"
cOpt_Link := "-out:{OE} {LO} {DL} {FL} {IM} {LL} {LB} {LS}"
cLibPathPrefix := "-libpath:"
cLibPathSep := " "
IF ! Empty( hbmk[ _HBMK_cDEF ] )
AAdd( hbmk[ _HBMK_aOPTD ], "-def:{IM}" )
ENDIF
cDynDefPrefix := "-def:"
IF hbmk[ _HBMK_lMAP ]
AAdd( hbmk[ _HBMK_aOPTL ], "-map" )
AAdd( hbmk[ _HBMK_aOPTD ], "-map" )
@@ -4920,7 +4918,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
cOpt_Dyn := StrTran( cOpt_Dyn, "{LS}" , ArrayToList( ArrayJoin( ListDirExt( hbmk[ _HBMK_aRESSRC ], cWorkDir, cResExt ), hbmk[ _HBMK_aRESCMP ] ),, nOpt_Esc, cResPrefix ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{LL}" , ArrayToList( l_aLIB,, nOpt_Esc, cLibPrefix ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{LB}" , ArrayToList( l_aLIBA,, nOpt_Esc ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{IM}" , FN_Escape( PathSepToTarget( hbmk, hbmk[ _HBMK_cDEF ] ), nOpt_Esc ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{IM}" , ArrayToList( hbmk[ _HBMK_aDEF ],, nOpt_Esc, cDynDefPrefix ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{OD}" , FN_Escape( PathSepToTarget( hbmk, l_cPROGNAME ), nOpt_Esc ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{OM}" , FN_Escape( PathSepToTarget( hbmk, FN_ExtSet( l_cPROGNAME, ".map" ) ), nOpt_Esc ) )
cOpt_Dyn := StrTran( cOpt_Dyn, "{OI}" , FN_Escape( PathSepToTarget( hbmk, l_cIMPLIBNAME ), nOpt_Esc ) )
@@ -6630,7 +6628,9 @@ STATIC FUNCTION HBC_ProcessOne( hbmk, cFileName, nNestingLevel )
NEXT
ENDIF
CASE FN_ExtGet( cItemL ) == ".def"
hbmk[ _HBMK_cDEF ] := PathSepToSelf( cItem )
FOR EACH tmp IN FN_Expand( cItem )
AAddNew( hbmk[ _HBMK_aDEF ], PathSepToTarget( hbmk, tmp ) )
NEXT
OTHERWISE /* .prg */
IF Empty( FN_ExtGet( cItem ) )
cItem := FN_ExtSet( cItem, ".prg" )