|
|
|
|
@@ -33,76 +33,67 @@
|
|
|
|
|
|
|
|
|
|
/* ----------------------------------------------------------------------- */
|
|
|
|
|
|
|
|
|
|
/* external libs hosted locally */
|
|
|
|
|
STATIC s_aLibsPass0 := {}
|
|
|
|
|
|
|
|
|
|
STATIC s_aLibsPass1 := {;
|
|
|
|
|
"hbblink/hbblink.hbp" ,;
|
|
|
|
|
"hbbz2/hbbz2.hbp" ,; /* uses: bz2 (external) */
|
|
|
|
|
"hbclipsm/hbclipsm.hbp" ,;
|
|
|
|
|
"hbcomm/hbcomm.hbp" ,;
|
|
|
|
|
"hbct/hbct.hbp" ,;
|
|
|
|
|
"hbfoxpro/hbfoxpro.hbp" ,;
|
|
|
|
|
"hbfship/hbfship.hbp" ,;
|
|
|
|
|
"hbgt/hbgt.hbp" ,;
|
|
|
|
|
"hbmemio/hbmemio.hbp" ,;
|
|
|
|
|
"hbmisc/hbmisc.hbp" ,;
|
|
|
|
|
"hbmzip/hbmzip.hbp" ,; /* uses: minizip (external) */
|
|
|
|
|
"hbnetio/hbnetio.hbp" ,;
|
|
|
|
|
"hbnf/hbnf.hbp" ,;
|
|
|
|
|
"hbodbc/hbodbc.hbp" ,;
|
|
|
|
|
"hbsms/hbsms.hbp" ,;
|
|
|
|
|
"hbsqlit3/hbsqlit3.hbp" ,; /* uses: sqlite3 (external) */
|
|
|
|
|
"hbtpathy/hbtpathy.hbp" ,;
|
|
|
|
|
"hbwin/hbwin.hbp" ,;
|
|
|
|
|
"hbxpp/hbxpp.hbp" ,;
|
|
|
|
|
"rddbmcdx/hbbmcdx.hbp" }
|
|
|
|
|
|
|
|
|
|
STATIC s_aLibsPass2 := {;
|
|
|
|
|
"gtalleg/gtalleg.hbp" ,;
|
|
|
|
|
"gtalleg/gtallegs.hbp" ,;
|
|
|
|
|
"hbblat/hbblat.hbp" ,;
|
|
|
|
|
"hbcairo/hbcairo.hbp" ,;
|
|
|
|
|
"hbcups/hbcups.hbp" ,;
|
|
|
|
|
"hbcurl/hbcurl.hbp" ,;
|
|
|
|
|
"hbcurl/hbcurls.hbp" ,;
|
|
|
|
|
"hbfbird/hbfbird.hbp" ,;
|
|
|
|
|
"hbfimage/hbfimage.hbp" ,;
|
|
|
|
|
"hbgd/hbgd.hbp" ,; /* uses: hbct */
|
|
|
|
|
"hbhpdf/hbhpdf.hbp" ,;
|
|
|
|
|
"hbmysql/hbmysql.hbp" ,;
|
|
|
|
|
"hbpgsql/hbpgsql.hbp" ,;
|
|
|
|
|
"hbqt/hbqt.hbp" ,;
|
|
|
|
|
"hbqt/hbqtcore.hbp" ,;
|
|
|
|
|
"hbqt/hbqtcores.hbp" ,;
|
|
|
|
|
"hbqt/hbqtgui.hbp" ,;
|
|
|
|
|
"hbqt/hbqtguis.hbp" ,;
|
|
|
|
|
"hbqt/hbqtnetwork.hbp" ,;
|
|
|
|
|
"hbqt/hbqtnetworks.hbp" ,;
|
|
|
|
|
"hbqt/hbqts.hbp" ,;
|
|
|
|
|
"hbssl/hbssl.hbp" ,;
|
|
|
|
|
"hbssl/hbssls.hbp" ,;
|
|
|
|
|
"hbxbp/hbxbp.hbp" ,; /* uses: hbqt */
|
|
|
|
|
"rddads/rddads.hbp" ,;
|
|
|
|
|
"rddsql/rddsql.hbp" ,;
|
|
|
|
|
"sddfb/sddfb.hbp" ,; /* uses: rddsql */
|
|
|
|
|
"sddmy/sddmy.hbp" ,; /* uses: rddsql */
|
|
|
|
|
"sddoci/sddoci.hbp" ,; /* uses: rddsql */
|
|
|
|
|
"sddodbc/sddodbc.hbp" ,; /* uses: rddsql */
|
|
|
|
|
"sddpg/sddpg.hbp" ,; /* uses: rddsql */
|
|
|
|
|
"sddsqlt3/sddsqlt3.hbp" } /* uses: rddsql, sqlite3 (external) */
|
|
|
|
|
|
|
|
|
|
STATIC s_aLibsPass3 := {;
|
|
|
|
|
"gtwvg/gtwvg.hbp" ,; /* uses: hbwin */
|
|
|
|
|
"hbtip/hbtip.hbp" ,;
|
|
|
|
|
"hbtip/hbtipssl.hbp" ,; /* uses: hbssl */
|
|
|
|
|
"hbziparc/hbziparc.hbp" ,; /* uses: hbmzip */
|
|
|
|
|
"xhb/xhb.hbp" } /* uses: hbct, hbtip, hbwin */
|
|
|
|
|
|
|
|
|
|
STATIC s_aBins := {;
|
|
|
|
|
"hbdoc2/hbdoc2.hbp" ,;
|
|
|
|
|
"hbnetio/utils/hbnetio.hbp" ,; /* uses: hbnetio */
|
|
|
|
|
"hbide/hbide.hbp" } /* uses: hbxbp, hbqt */
|
|
|
|
|
STATIC s_aList := {;
|
|
|
|
|
{ 1, "hbblink/hbblink.hbp" },;
|
|
|
|
|
{ 1, "hbbz2/hbbz2.hbp" },; /* uses: bz2 (external) */
|
|
|
|
|
{ 1, "hbclipsm/hbclipsm.hbp" },;
|
|
|
|
|
{ 1, "hbcomm/hbcomm.hbp" },;
|
|
|
|
|
{ 1, "hbct/hbct.hbp" },;
|
|
|
|
|
{ 1, "hbfoxpro/hbfoxpro.hbp" },;
|
|
|
|
|
{ 1, "hbfship/hbfship.hbp" },;
|
|
|
|
|
{ 1, "hbgt/hbgt.hbp" },;
|
|
|
|
|
{ 1, "hbmemio/hbmemio.hbp" },;
|
|
|
|
|
{ 1, "hbmisc/hbmisc.hbp" },;
|
|
|
|
|
{ 1, "hbmzip/hbmzip.hbp" },; /* uses: minizip (external) */
|
|
|
|
|
{ 1, "hbnetio/hbnetio.hbp" },;
|
|
|
|
|
{ 1, "hbnf/hbnf.hbp" },;
|
|
|
|
|
{ 1, "hbodbc/hbodbc.hbp" },;
|
|
|
|
|
{ 1, "hbsms/hbsms.hbp" },;
|
|
|
|
|
{ 1, "hbsqlit3/hbsqlit3.hbp" },; /* uses: sqlite3 (external) */
|
|
|
|
|
{ 1, "hbtpathy/hbtpathy.hbp" },;
|
|
|
|
|
{ 1, "hbwin/hbwin.hbp" },;
|
|
|
|
|
{ 1, "hbxpp/hbxpp.hbp" },;
|
|
|
|
|
{ 1, "rddbmcdx/hbbmcdx.hbp" },;
|
|
|
|
|
{ 2, "gtalleg/gtalleg.hbp" },;
|
|
|
|
|
{ 2, "gtalleg/gtallegs.hbp" },;
|
|
|
|
|
{ 2, "hbblat/hbblat.hbp" },;
|
|
|
|
|
{ 2, "hbcairo/hbcairo.hbp" },;
|
|
|
|
|
{ 2, "hbcups/hbcups.hbp" },;
|
|
|
|
|
{ 2, "hbcurl/hbcurl.hbp" },;
|
|
|
|
|
{ 2, "hbcurl/hbcurls.hbp" },;
|
|
|
|
|
{ 2, "hbfbird/hbfbird.hbp" },;
|
|
|
|
|
{ 2, "hbfimage/hbfimage.hbp" },;
|
|
|
|
|
{ 2, "hbgd/hbgd.hbp" },; /* uses: hbct */
|
|
|
|
|
{ 2, "hbhpdf/hbhpdf.hbp" },;
|
|
|
|
|
{ 2, "hbmysql/hbmysql.hbp" },;
|
|
|
|
|
{ 2, "hbpgsql/hbpgsql.hbp" },;
|
|
|
|
|
{ 2, "hbqt/hbqt.hbp" },;
|
|
|
|
|
{ 2, "hbqt/hbqtcore.hbp" },;
|
|
|
|
|
{ 2, "hbqt/hbqtcores.hbp" },;
|
|
|
|
|
{ 2, "hbqt/hbqtgui.hbp" },;
|
|
|
|
|
{ 2, "hbqt/hbqtguis.hbp" },;
|
|
|
|
|
{ 2, "hbqt/hbqtnetwork.hbp" },;
|
|
|
|
|
{ 2, "hbqt/hbqtnetworks.hbp" },;
|
|
|
|
|
{ 2, "hbqt/hbqts.hbp" },;
|
|
|
|
|
{ 2, "hbssl/hbssl.hbp" },;
|
|
|
|
|
{ 2, "hbssl/hbssls.hbp" },;
|
|
|
|
|
{ 2, "hbxbp/hbxbp.hbp" },; /* uses: hbqt */
|
|
|
|
|
{ 2, "rddads/rddads.hbp" },;
|
|
|
|
|
{ 2, "rddsql/rddsql.hbp" },;
|
|
|
|
|
{ 2, "sddfb/sddfb.hbp" },; /* uses: rddsql */
|
|
|
|
|
{ 2, "sddmy/sddmy.hbp" },; /* uses: rddsql */
|
|
|
|
|
{ 2, "sddoci/sddoci.hbp" },; /* uses: rddsql */
|
|
|
|
|
{ 2, "sddodbc/sddodbc.hbp" },; /* uses: rddsql */
|
|
|
|
|
{ 2, "sddpg/sddpg.hbp" },; /* uses: rddsql */
|
|
|
|
|
{ 2, "sddsqlt3/sddsqlt3.hbp" },; /* uses: rddsql, sqlite3 (external) */
|
|
|
|
|
{ 3, "gtwvg/gtwvg.hbp" },; /* uses: hbwin */
|
|
|
|
|
{ 3, "hbtip/hbtip.hbp" },;
|
|
|
|
|
{ 3, "hbtip/hbtipssl.hbp" },; /* uses: hbssl */
|
|
|
|
|
{ 3, "hbziparc/hbziparc.hbp" },; /* uses: hbmzip */
|
|
|
|
|
{ 3, "xhb/xhb.hbp" },; /* uses: hbct, hbtip, hbwin */
|
|
|
|
|
{ 4, "hbdoc2/hbdoc2.hbp" },;
|
|
|
|
|
{ 4, "hbnetio/utils/hbnetio.hbp" },; /* uses: hbnetio */
|
|
|
|
|
{ 4, "hbide/hbide.hbp" }} /* uses: hbxbp, hbqt */
|
|
|
|
|
|
|
|
|
|
STATIC s_aAddons := {}
|
|
|
|
|
|
|
|
|
|
@@ -127,10 +118,10 @@ STATIC hActions := {;
|
|
|
|
|
STATIC s_cBase
|
|
|
|
|
STATIC s_cHome
|
|
|
|
|
STATIC s_cRoot
|
|
|
|
|
|
|
|
|
|
STATIC s_lTest
|
|
|
|
|
|
|
|
|
|
PROCEDURE Main( ... )
|
|
|
|
|
LOCAL tmp
|
|
|
|
|
|
|
|
|
|
s_cBase := ""
|
|
|
|
|
s_cHome := StrTran( hb_DirBase(), hb_ps(), "/" )
|
|
|
|
|
@@ -145,7 +136,11 @@ PROCEDURE Main( ... )
|
|
|
|
|
/* Making sure that user settings do not interfere with the std build process. */
|
|
|
|
|
hb_setenv( "HBMK_OPTIONS" )
|
|
|
|
|
|
|
|
|
|
s_aAddons := hb_ATokens( GetEnv( "HB_BUILD_ADDONS" ),, .T. )
|
|
|
|
|
FOR EACH tmp IN hb_ATokens( GetEnv( "HB_BUILD_ADDONS" ),, .T. )
|
|
|
|
|
IF ! Empty( tmp )
|
|
|
|
|
AAdd( s_aAddons, { 9, StrTran( tmp, "\", "/" ) } )
|
|
|
|
|
ENDIF
|
|
|
|
|
NEXT
|
|
|
|
|
|
|
|
|
|
IF Empty( GetEnv( "HB_HOST_BIN_DIR" ) )
|
|
|
|
|
StandAlone( ... )
|
|
|
|
|
@@ -171,9 +166,11 @@ PROCEDURE StandAlone( ... )
|
|
|
|
|
|
|
|
|
|
LOCAL aFile
|
|
|
|
|
LOCAL cType
|
|
|
|
|
LOCAL cProject
|
|
|
|
|
LOCAL aDept
|
|
|
|
|
|
|
|
|
|
LOCAL cBinDir
|
|
|
|
|
LOCAL cProject
|
|
|
|
|
|
|
|
|
|
LOCAL cBaseOptions
|
|
|
|
|
|
|
|
|
|
LOCAL nAction
|
|
|
|
|
@@ -231,10 +228,14 @@ PROCEDURE StandAlone( ... )
|
|
|
|
|
|
|
|
|
|
cProject := s_cBase + StrTran( aFile[ F_NAME ], "\", "/" )
|
|
|
|
|
|
|
|
|
|
FOR EACH tmp IN call_hbmk2_dept( s_cRoot + "bin" + hb_ps(), cProject, @cType )
|
|
|
|
|
OutStd( cProject + " depends on: " + tmp + hb_eol() )
|
|
|
|
|
NEXT
|
|
|
|
|
OutStd( cProject + " type: " + cType + hb_eol() )
|
|
|
|
|
call_hbmk2_dept( s_cRoot + "bin" + hb_ps(), cProject, @cType, @aDept )
|
|
|
|
|
|
|
|
|
|
OutStd( cProject + " type: " + cType )
|
|
|
|
|
IF ! Empty( aDept )
|
|
|
|
|
OutStd( " depends on: " )
|
|
|
|
|
AEval( aDept, {| tmp | OutStd( tmp ) } )
|
|
|
|
|
ENDIF
|
|
|
|
|
OutStd( hb_eol() )
|
|
|
|
|
|
|
|
|
|
IF cType $ "hbhrb|hbppo"
|
|
|
|
|
LOOP
|
|
|
|
|
@@ -267,11 +268,10 @@ PROCEDURE StandAlone( ... )
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
PROCEDURE GNUMake( ... )
|
|
|
|
|
LOCAL aAll
|
|
|
|
|
LOCAL aList
|
|
|
|
|
LOCAL cType
|
|
|
|
|
|
|
|
|
|
LOCAL cBinDir
|
|
|
|
|
LOCAL aProject
|
|
|
|
|
LOCAL cProject
|
|
|
|
|
LOCAL cProjectDir
|
|
|
|
|
|
|
|
|
|
@@ -284,7 +284,6 @@ PROCEDURE GNUMake( ... )
|
|
|
|
|
LOCAL aParams
|
|
|
|
|
LOCAL aGNUMakeParams
|
|
|
|
|
LOCAL nAction
|
|
|
|
|
LOCAL tmp
|
|
|
|
|
|
|
|
|
|
/* Check if the requirements are met and if we have anything to do */
|
|
|
|
|
|
|
|
|
|
@@ -373,29 +372,25 @@ PROCEDURE GNUMake( ... )
|
|
|
|
|
|
|
|
|
|
cBinDir := GetEnv( "HB_HOST_BIN_DIR" ) + hb_ps()
|
|
|
|
|
|
|
|
|
|
aAll := {;
|
|
|
|
|
s_aLibsPass0,;
|
|
|
|
|
s_aLibsPass1,;
|
|
|
|
|
s_aLibsPass2,;
|
|
|
|
|
s_aLibsPass3,;
|
|
|
|
|
s_aBins,;
|
|
|
|
|
s_aAddons }
|
|
|
|
|
|
|
|
|
|
// OutStd( Len( aAll ) ) ; aAll := { { "rddads/rddads.hbp" } }
|
|
|
|
|
// OutStd( Len( s_aList ) ) ; s_aList := { { 1, "rddads/rddads.hbp" } }
|
|
|
|
|
|
|
|
|
|
OutStd( "! Calculating sorting order for contribs..." + hb_eol() )
|
|
|
|
|
|
|
|
|
|
FOR EACH aList IN aAll
|
|
|
|
|
FOR EACH cProject IN aList
|
|
|
|
|
IF ! Empty( cProject )
|
|
|
|
|
FOR EACH tmp IN call_hbmk2_dept( cBinDir, s_cBase + cProject, @cType )
|
|
|
|
|
OutStd( cProject + " depends on: " + tmp + hb_eol() )
|
|
|
|
|
NEXT
|
|
|
|
|
OutStd( cProject + " type: " + cType + hb_eol() )
|
|
|
|
|
ENDIF
|
|
|
|
|
NEXT
|
|
|
|
|
FOR EACH aProject IN s_aList
|
|
|
|
|
cProject := aProject[ 2 ]
|
|
|
|
|
ASize( aProject, 4 )
|
|
|
|
|
call_hbmk2_dept( cBinDir, s_cBase + cProject, @aProject[ 3 ], @aProject[ 4 ] )
|
|
|
|
|
|
|
|
|
|
// OutStd( cProject + " type: " + aProject[ 3 ] )
|
|
|
|
|
// IF ! Empty( aProject[ 4 ] )
|
|
|
|
|
// OutStd( " depends on: " )
|
|
|
|
|
// AEval( aProject[ 4 ], {| tmp | OutStd( tmp ) } )
|
|
|
|
|
// ENDIF
|
|
|
|
|
// OutStd( hb_eol() )
|
|
|
|
|
NEXT
|
|
|
|
|
|
|
|
|
|
ASort( s_aList, {| tmp, tmp1 | tmp[ 1 ] > tmp1[ 1 ] } )
|
|
|
|
|
|
|
|
|
|
/* Converting build options to hbmk2 options */
|
|
|
|
|
|
|
|
|
|
hb_setenv( "_HB_BUILD_INSTALL" )
|
|
|
|
|
@@ -419,88 +414,83 @@ PROCEDURE GNUMake( ... )
|
|
|
|
|
|
|
|
|
|
OutStd( hb_StrFormat( "! Contribs %1$s...", hActions[ nAction ] ) + hb_eol() )
|
|
|
|
|
|
|
|
|
|
FOR EACH aList IN aAll
|
|
|
|
|
FOR EACH cProject IN aList
|
|
|
|
|
FOR EACH aProject IN s_aList
|
|
|
|
|
|
|
|
|
|
IF ! Empty( cProject )
|
|
|
|
|
cProject := aProject[ 2 ]
|
|
|
|
|
|
|
|
|
|
cProjectDir := StrTran( FNameDirGet( PathSepToSelf( cProject ) ), "\", "/" )
|
|
|
|
|
cProject := s_cBase + StrTran( cProject, "\", "/" )
|
|
|
|
|
cProjectDir := StrTran( FNameDirGet( PathSepToSelf( cProject ) ), "\", "/" )
|
|
|
|
|
cProject := s_cBase + cProject
|
|
|
|
|
|
|
|
|
|
IF Empty( aFilter ) .OR. ;
|
|
|
|
|
iif( lFilterNegative,;
|
|
|
|
|
AScan( aFilter, {| tmp | tmp == cProjectDir } ) == 0,;
|
|
|
|
|
AScan( aFilter, {| tmp | tmp == cProjectDir } ) > 0 )
|
|
|
|
|
IF Empty( aFilter ) .OR. ;
|
|
|
|
|
iif( lFilterNegative,;
|
|
|
|
|
AScan( aFilter, {| tmp | tmp == cProjectDir } ) == 0,;
|
|
|
|
|
AScan( aFilter, {| tmp | tmp == cProjectDir } ) > 0 )
|
|
|
|
|
|
|
|
|
|
cType := get_hbmk2_project_type( cProject )
|
|
|
|
|
cType := get_hbmk2_project_type( cProject )
|
|
|
|
|
|
|
|
|
|
IF cType $ "hbhrb|hbppo"
|
|
|
|
|
LOOP
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
IF GetEnv( "HB_BUILD_PARTS" ) == "lib" .AND. ;
|
|
|
|
|
!( cType $ "hbimplib|hblib" )
|
|
|
|
|
LOOP
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
call_hbmk2( cBinDir, cProject, cBaseOptions, "" )
|
|
|
|
|
|
|
|
|
|
IF hb_FileExists( PathSepToSelf( FNameExtSet( cProject, ".hbi" ) ) )
|
|
|
|
|
call_hbmk2( cBinDir, FNameExtSet( cProject, ".hbi" ), cBaseOptions, "" )
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
/* Highly experimental */
|
|
|
|
|
IF cType == "hblib" .AND. GetEnv( "HB_BUILD_CONTRIB_DLL" ) == "yes" .AND. ;
|
|
|
|
|
!( GetEnv( "HB_BUILD_PARTS" ) == "lib" ) .AND. ;
|
|
|
|
|
hb_FileExists( PathSepToSelf( FNameExtSet( cProject, ".hbc" ) ) )
|
|
|
|
|
|
|
|
|
|
call_hbmk2( cBinDir, cProject, cBaseOptions, " -hbdyn -nohblib- -implib " + FNameExtSet( cProject, ".hbc" ) )
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
IF nAction == _ACT_INC_INST .OR. ;
|
|
|
|
|
nAction == _ACT_INC_REBUILD_INST
|
|
|
|
|
mk_hbd( PathSepToSelf( cProjectDir ) )
|
|
|
|
|
ENDIF
|
|
|
|
|
ELSE
|
|
|
|
|
/* OutStd( hb_StrFormat( "! project '%1$s' skipped", cProject ) + hb_eol() ) */
|
|
|
|
|
ENDIF
|
|
|
|
|
IF cType $ "hbhrb|hbppo"
|
|
|
|
|
LOOP
|
|
|
|
|
ENDIF
|
|
|
|
|
NEXT
|
|
|
|
|
|
|
|
|
|
call_hbmk2( cBinDir, cProject, cBaseOptions, "" )
|
|
|
|
|
|
|
|
|
|
IF hb_FileExists( PathSepToSelf( FNameExtSet( cProject, ".hbi" ) ) )
|
|
|
|
|
call_hbmk2( cBinDir, FNameExtSet( cProject, ".hbi" ), cBaseOptions, "" )
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
/* Highly experimental */
|
|
|
|
|
IF cType == "hblib" .AND. ;
|
|
|
|
|
GetEnv( "HB_BUILD_CONTRIB_DLL" ) == "yes" .AND. ;
|
|
|
|
|
hb_FileExists( PathSepToSelf( FNameExtSet( cProject, ".hbc" ) ) )
|
|
|
|
|
|
|
|
|
|
call_hbmk2( cBinDir, cProject, cBaseOptions, " -hbdyn -nohblib- -implib " + FNameExtSet( cProject, ".hbc" ) )
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
IF nAction == _ACT_INC_INST .OR. ;
|
|
|
|
|
nAction == _ACT_INC_REBUILD_INST
|
|
|
|
|
mk_hbd( PathSepToSelf( cProjectDir ) )
|
|
|
|
|
ENDIF
|
|
|
|
|
ELSE
|
|
|
|
|
/* OutStd( hb_StrFormat( "! project '%1$s' skipped", cProject ) + hb_eol() ) */
|
|
|
|
|
ENDIF
|
|
|
|
|
NEXT
|
|
|
|
|
|
|
|
|
|
ErrorLevel( 0 )
|
|
|
|
|
|
|
|
|
|
RETURN
|
|
|
|
|
|
|
|
|
|
STATIC FUNCTION call_hbmk2_dept( cBinDir, cProject, /* @ */ cType )
|
|
|
|
|
STATIC FUNCTION call_hbmk2_dept( cBinDir, cProject, /* @ */ cType, /* @ */ aDept )
|
|
|
|
|
LOCAL tmp, tmp1
|
|
|
|
|
LOCAL aList := {}
|
|
|
|
|
|
|
|
|
|
cType := ""
|
|
|
|
|
aDept := {}
|
|
|
|
|
|
|
|
|
|
hb_processRun( PathSepToSelf( cBinDir ) + "hbmk2 --hbinfo " + StrTran( cProject, "\", "/" ),, @tmp )
|
|
|
|
|
IF hb_processRun( PathSepToSelf( cBinDir ) + "hbmk2 --hbinfo " + StrTran( cProject, "\", "/" ),, @tmp ) == 0
|
|
|
|
|
|
|
|
|
|
IF ( tmp1 := At( "targettype{{", tmp ) ) > 0
|
|
|
|
|
tmp := SubStr( tmp, tmp1 + Len( "targettype{{" ) )
|
|
|
|
|
IF ( tmp1 := At( "}}", tmp ) ) > 0
|
|
|
|
|
cType := Left( tmp, tmp1 - 1 )
|
|
|
|
|
IF ( tmp1 := At( "targettype{{", tmp ) ) > 0
|
|
|
|
|
tmp := SubStr( tmp, tmp1 + Len( "targettype{{" ) )
|
|
|
|
|
IF ( tmp1 := At( "}}", tmp ) ) > 0
|
|
|
|
|
cType := Left( tmp, tmp1 - 1 )
|
|
|
|
|
ENDIF
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
IF ( tmp1 := At( "hbctree{{", tmp ) ) > 0
|
|
|
|
|
tmp := SubStr( tmp, tmp1 + Len( "hbctree{{" ) )
|
|
|
|
|
IF ( tmp1 := At( "}}", tmp ) ) > 0
|
|
|
|
|
tmp := StrTran( Left( tmp, tmp1 - 1 ), Chr( 13 ) )
|
|
|
|
|
FOR EACH tmp IN hb_ATokens( tmp, Chr( 10 ) )
|
|
|
|
|
IF ! Empty( tmp )
|
|
|
|
|
hb_FNameSplit( tmp,, @tmp1 )
|
|
|
|
|
AAdd( aDept, tmp1 )
|
|
|
|
|
ENDIF
|
|
|
|
|
NEXT
|
|
|
|
|
ENDIF
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
RETURN .T.
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
IF ( tmp1 := At( "hbctree{{", tmp ) ) > 0
|
|
|
|
|
tmp := SubStr( tmp, tmp1 + Len( "hbctree{{" ) )
|
|
|
|
|
IF ( tmp1 := At( "}}", tmp ) ) > 0
|
|
|
|
|
tmp := StrTran( Left( tmp, tmp1 - 1 ), Chr( 13 ) )
|
|
|
|
|
FOR EACH tmp IN hb_ATokens( tmp, Chr( 10 ) )
|
|
|
|
|
IF ! Empty( tmp )
|
|
|
|
|
hb_FNameSplit( tmp,, @tmp1 )
|
|
|
|
|
AAdd( aList, tmp1 )
|
|
|
|
|
ENDIF
|
|
|
|
|
NEXT
|
|
|
|
|
ENDIF
|
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
RETURN aList
|
|
|
|
|
RETURN .F.
|
|
|
|
|
|
|
|
|
|
STATIC FUNCTION call_hbmk2( cBinDir, cProject, cOptionsPre, cOptionsPost )
|
|
|
|
|
LOCAL nErrorLevel
|
|
|
|
|
|