2012-05-03 12:13 UTC+0200 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
+ added experimental code signing support for win and darwin
using '-sign=<ID> [-signpw=<pw>]' options.
on win, it requires MSVS in path.
This commit is contained in:
@@ -16,6 +16,12 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
2012-05-03 12:13 UTC+0200 Viktor Szakats (harbour syenar.net)
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
+ added experimental code signing support for win and darwin
|
||||
using '-sign=<ID> [-signpw=<pw>]' options.
|
||||
on win, it requires MSVS in path.
|
||||
|
||||
2012-05-02 19:32 UTC+0200 Viktor Szakats (harbour syenar.net)
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
! fixed missed incremental updates in '-inc -head=dep'
|
||||
|
||||
@@ -872,6 +872,10 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
LOCAL nOpt_FNF
|
||||
LOCAL lCHD_Comp := .F.
|
||||
LOCAL cCHD_DirOld
|
||||
LOCAL cBin_Sign
|
||||
LOCAL cOpt_Sign
|
||||
LOCAL cOpt_SignID
|
||||
LOCAL cOpt_SignPass
|
||||
|
||||
LOCAL cCommand
|
||||
LOCAL aCommand
|
||||
@@ -2593,6 +2597,22 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
/* EXPERIMENTAL */
|
||||
CASE Left( cParamL, Len( "-sign=" ) ) == "-sign="
|
||||
|
||||
cParam := MacroProc( hbmk, SubStr( cParam, Len( "-sign=" ) + 1 ), aParam[ _PAR_cFileName ] )
|
||||
IF ! Empty( cParam )
|
||||
cOpt_SignID := cParam
|
||||
ENDIF
|
||||
|
||||
/* EXPERIMENTAL */
|
||||
CASE Left( cParamL, Len( "-signpw=" ) ) == "-signpw="
|
||||
|
||||
cParam := MacroProc( hbmk, SubStr( cParam, Len( "-signpw=" ) + 1 ), aParam[ _PAR_cFileName ] )
|
||||
IF ! Empty( cParam )
|
||||
cOpt_SignPass := cParam
|
||||
ENDIF
|
||||
|
||||
CASE Left( cParamL, Len( "-ln=" ) ) == "-ln="
|
||||
|
||||
cParam := MacroProc( hbmk, SubStr( cParam, Len( "-ln=" ) + 1 ), aParam[ _PAR_cFileName ] )
|
||||
@@ -6779,6 +6799,47 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
/* Setup code signing for host platform */
|
||||
|
||||
IF HBMK_ISPLAT( "win|wce" )
|
||||
/* Requires MSVS */
|
||||
cBin_Sign := "signtool.exe"
|
||||
cOpt_Sign := "sign -f {ID} -p {PW} -t http://timestamp.verisign.com/scripts/timstamp.dll {OB}"
|
||||
ENDIF
|
||||
|
||||
#if defined( __PLATFORM__DARWIN )
|
||||
IF HBMK_ISPLAT( "darwin" )
|
||||
cBin_Sign := "codesign"
|
||||
cOpt_Sign := "-s {ID} -f {OB}"
|
||||
ENDIF
|
||||
#endif
|
||||
|
||||
IF ! Empty( cOpt_SignID ) .AND. ! hbmk[ _HBMK_lCreateLib ] .AND. ! Empty( cBin_Sign )
|
||||
|
||||
/* Code signing */
|
||||
|
||||
cOpt_Sign := StrTran( cOpt_Sign, "{ID}", cOpt_SignID )
|
||||
cOpt_Sign := StrTran( cOpt_Sign, "{OB}", FNameEscape( hbmk[ _HBMK_cPROGNAME ], nOpt_Esc, nOpt_FNF ) )
|
||||
cOpt_Sign := AllTrim( cOpt_Sign )
|
||||
|
||||
cCommand := cBin_Sign + " " + AllTrim( StrTran( cOpt_Sign, "{PW}", cOpt_SignPass ) )
|
||||
tmp := cBin_Sign + " " + AllTrim( StrTran( cOpt_Sign, "{PW}", iif( Empty( cOpt_SignPass ), "", "****" ) ) )
|
||||
|
||||
IF hbmk[ _HBMK_lTRACE ]
|
||||
IF ! hbmk[ _HBMK_lQuiet ]
|
||||
hbmk_OutStd( hbmk, I_( "Code sign command:" ) )
|
||||
ENDIF
|
||||
OutStd( tmp + _OUT_EOL )
|
||||
ENDIF
|
||||
|
||||
IF ! hbmk[ _HBMK_lDONTEXEC ] .AND. ( tmp := hb_processRun( cCommand ) ) != 0
|
||||
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Warning: Running code sign command. %1$s:" ), hb_ntos( tmp ) ) )
|
||||
IF ! hbmk[ _HBMK_lQuiet ]
|
||||
OutStd( tmp + _OUT_EOL )
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF hbmk[ _HBMK_nErrorLevel ] == _ERRLEV_OK .AND. ! hbmk[ _HBMK_lCLEAN ] .AND. ;
|
||||
|
||||
Reference in New Issue
Block a user