From bb15cd8ac7c434b67cd85c079683b50777c351d4 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sun, 29 Nov 2009 21:08:39 +0000 Subject: [PATCH] 2009-11-29 22:07 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * utils/hbmk2/hbmk2.prg + Added -xbp= option which will attempt to read xbuild project file and save it as .hbp file. This is experimental and I'd like to ask xbuild users to update/extend this converter code as I'm not xbuild user. --- harbour/ChangeLog | 7 ++ harbour/utils/hbmk2/hbmk2.prg | 125 +++++++++++++++++++++++++++++++++- 2 files changed, 131 insertions(+), 1 deletion(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 7feb6cda42..cbbfe46cc2 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,13 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-11-29 22:07 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * utils/hbmk2/hbmk2.prg + + Added -xbp= option which will attempt to + read xbuild project file and save it as .hbp file. + This is experimental and I'd like to ask xbuild users to + update/extend this converter code as I'm not xbuild user. + 2009-11-29 20:44 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * src/compiler/hbmain.c * src/compiler/ppcomp.c diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 05c5e36dbf..fabebd1714 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -827,6 +827,11 @@ FUNCTION hbmk( aArgs, /* @ */ lPause ) convert_hbmake_to_hbp( SubStr( cParam, 9 ) ) RETURN 0 + CASE Left( cParamL, 5 ) == "-xbp=" + + convert_xbp_to_hbp( SubStr( cParam, 6 ) ) + RETURN 0 + CASE cParamL == "--version" ShowHeader( hbmk ) @@ -7382,7 +7387,7 @@ STATIC PROCEDURE convert_hbmake_to_hbp( cSrcName, cDstName ) LOCAL cMAIN := NIL - hbmk_OutStd( hb_StrFormat( I_( "Converting hbmake project file: %1$s" ), cSrcName ) ) + hbmk_OutStd( hb_StrFormat( I_( "Loading hbmake project file: %1$s" ), cSrcName ) ) IF Empty( cDstName ) cDstName := FN_ExtSet( cSrcName, ".hbp" ) @@ -7495,6 +7500,123 @@ STATIC PROCEDURE convert_hbmake_to_hbp( cSrcName, cDstName ) RETURN +STATIC PROCEDURE convert_xbp_to_hbp( cSrcName, cDstName ) + LOCAL cSrc := MemoRead( cSrcName ) + LOCAL cDst + LOCAL aDst := {} + LOCAL tmp + LOCAL cLine + LOCAL cSetting + LOCAL cValue + LOCAL aValue + + LOCAL cMAIN := NIL + + LOCAL lGlobalSection := .T. + + hbmk_OutStd( hb_StrFormat( I_( "Loading xbp project file: %1$s" ), cSrcName ) ) + + IF Empty( cDstName ) + cDstName := FN_ExtSet( cSrcName, ".hbp" ) + ENDIF + + cSrc := StrTran( cSrc, Chr( 13 ) + Chr( 10 ), Chr( 10 ) ) + cSrc := StrTran( cSrc, Chr( 9 ), Chr( 32 ) ) + + FOR EACH cLine IN hb_ATokens( cSrc, Chr( 10 ) ) + IF Left( cLine, 1 ) == "[" .AND. Right( cLine, 1 ) == "]" + lGlobalSection := .F. + AAdd( aDst, SubStr( cLine, 2, Len( cLine ) - 2 ) ) + ELSEIF lGlobalSection + tmp := At( " =", cLine ) + IF tmp > 0 + cSetting := AllTrim( Left( cLine, tmp - 1 ) ) + cValue := AllTrim( SubStr( cLine, tmp + Len( " =" ) ) ) + aValue := hb_ATokens( cValue ) + IF ! Empty( cValue ) + SWITCH cSetting + CASE "LDEBUG" + IF cValue == ".T." + AAdd( aDst, "-debug" ) + ENDIF + EXIT + CASE "LGUI" + IF cValue == ".T." + AAdd( aDst, "-gui" ) + ENDIF + EXIT + CASE "LMT" + IF cValue == ".T." + AAdd( aDst, "-mt" ) + ENDIF + EXIT + CASE "LUSEDLL" + IF cValue == ".T." + AAdd( aDst, "-shared" ) + ENDIF + EXIT + CASE "MAPFILE" + IF ! Empty( cValue ) + AAdd( aDst, "-map" ) + ENDIF + EXIT + CASE "TARGETFOLDER" + IF ! Empty( cValue ) + AAdd( aDst, "-o" + FN_DirGet( cValue ) ) + ENDIF + EXIT + CASE "LIBFOLDERS" + FOR EACH tmp IN aValue + AAdd( aDst, "-L" + tmp ) + NEXT + EXIT + CASE "INCLUDEFOLDERS" + FOR EACH tmp IN aValue + AAdd( aDst, "-incpath=" + tmp ) + NEXT + EXIT + CASE "MYC_FLAGS" + FOR EACH tmp IN aValue + AAdd( aDst, "-cflag=" + tmp ) + NEXT + EXIT + CASE "MYDEFINES" + FOR EACH tmp IN aValue + AAdd( aDst, "-D" + tmp ) + NEXT + EXIT + CASE "MYLINK_FLAGS" + FOR EACH tmp IN aValue + AAdd( aDst, "-ldflag=" + tmp ) + NEXT + EXIT + CASE "MYRC_FLAGS" + FOR EACH tmp IN aValue + AAdd( aDst, "-resflag=" + tmp ) + NEXT + EXIT + CASE "MYPRG_FLAGS" + FOR EACH tmp IN aValue + AAdd( aDst, tmp ) + NEXT + EXIT + ENDSWITCH + ENDIF + ENDIF + ENDIF + NEXT + + cDst := "" + FOR EACH tmp IN aDst + cDst += tmp + hb_osNewLine() + NEXT + + hbmk_OutStd( hb_StrFormat( I_( "Saving as .hbp file: %1$s" ), cDstName ) ) + + hb_MemoWrit( cDstName, cDst ) + + RETURN + STATIC PROCEDURE GetUILangCDP( /* @ */ cLNG, /* @ */ cCDP ) IF Empty( cLNG := GetEnv( "HB_LANG" ) ) @@ -7657,6 +7779,7 @@ STATIC PROCEDURE ShowHelp( lLong ) { "-xhb" , I_( "enable xhb mode (experimental)" ) },; { "-hbc" , I_( "enable pure C mode (experimental)" ) },; { "-hbmake=" , I_( "convert hbmake project file to .hbp file (experimental)" ) },; + { "-xbp=" , I_( "convert .xbp project file to .hbp file (experimental)" ) },; { "-rtlink" , "" },; { "-blinker" , "" },; { "-exospace" , I_( "emulate Clipper compatible linker behavior\ncreate link/copy hbmk2 to rtlink/blinker/exospace for the same effect" ) },;