Hi Pritpal,
If you make such output parsing, make sure to always
use '-lang=en' option when calling hbmk2, otherwise
it won't work in localized (Portuguese and Hungarian
currently) environments.
I've added -width= option, so if you now use it also
when calling hbmk2 ('-width=999' f.e.), it won't
split long lines, so you can simply look for LF char
to find the end of the output filename, instead of
looking for .exe. .exe is not good, because it's
platform dependent.
'-out=' option parsing cannot reliably work, so I'd
suggest to delete it:
---
IF ::lLaunch
cTmp := ::oOutputResult:oWidget:toPlainText()
cExe := ""
IF empty( cExe )
cTkn := "hbmk2: Linking... "
IF ( n := at( cTkn, cTmp ) ) > 0
n1 := hb_at( Chr( 10 ), cTmp, n + len( cTkn ) )
cExe := substr( cTmp, n + len( cTkn ), n1 - n - len( cTkn ) + 1 )
ENDIF
ENDIF
IF empty( cExe )
cTkn := "hbmk2: Target up to date: "
IF ( n := at( cTkn, cTmp ) ) > 0
n1 := hb_at( Chr( 10 ), cTmp, n + len( cTkn ) )
cExe := substr( cTmp, n + len( cTkn ), n1 - n - len( cTkn ) + 1 )
ENDIF
ENDIF
/* This won't work reliably, first because .exe is not a mandatory
part (in fact it should never be used if .hbp file is meant to be
portable), .exe is not portable, and the line may contain various
macros and filters and there may be multiple -opt options with
different filters. */
#if 0
IF empty( cExe )
cTkn := "-out:"
IF ( n := at( cTkn, cTmp ) ) > 0
n1 := hb_at( ".exe", cTmp, n + len( cTkn ) )
cExe := substr( cTmp, n + len( cTkn ), n1 - n - len( cTkn ) + 4 )
ENDIF
ENDIF
#endif
ENDIF
---
Brgds,
Viktor
On 2010 Mar 14, at 22:08, Pritpal Bedi wrote:
>
> Hello Viktor
>
> Currenly I employ the method below to pull executable path
> from compile/link process:
>
> IF ::lLaunch
> cTmp := ::oOutputResult:oWidget:toPlainText()
> cExe := ""
> IF empty( cExe )
> cTkn := "hbmk2: Linking... "
> IF ( n := at( cTkn, cTmp ) ) > 0
> n1 := hb_at( ".exe", cTmp, n + len( cTkn ) )
> cExe := substr( cTmp, n + len( cTkn ), n1 - n - len( cTkn ) + 4
> )
> ENDIF
> ENDIF
> IF empty( cExe )
> cTkn := "hbmk2: Target up to date: "
> IF ( n := at( cTkn, cTmp ) ) > 0
> n1 := hb_at( ".exe", cTmp, n + len( cTkn ) )
> cExe := substr( cTmp, n + len( cTkn ), n1 - n - len( cTkn ) + 4
> )
> ENDIF
> ENDIF
> IF empty( cExe )
> cTkn := "-out:"
> IF ( n := at( cTkn, cTmp ) ) > 0
> n1 := hb_at( ".exe", cTmp, n + len( cTkn ) )
> cExe := substr( cTmp, n + len( cTkn ), n1 - n - len( cTkn ) + 4
> )
> ENDIF
> ENDIF
>
> Can you provide a uniform token, say,
> hbmk2: target path... [C:\dev_projects\harbour\vouch\vouch.exe]
>
>
>
> -----
> enjoy hbIDEing...
> Pritpal Bedi
> _a_student_of_software_analysis_&_design_
> --
> View this message in context:
> http://n2.nabble.com/hbMK2-Uniform-token-to-announce-output-file-tp4733528p4733528.html
> Sent from the harbour-devel mailing list archive at Nabble.com.
> _______________________________________________
> Harbour mailing list (attachment size limit: 40KB)
> [email protected]
> http://lists.harbour-project.org/mailman/listinfo/harbour
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour