2009-02-20 09:44 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

* utils/hbmk2/hbmk2.prg
    + Added support for build level (or system level if that's
      needed in the future) configuration file for hbmk. Currently
      it will automatically pick the file named hbmkcfg.hbp from
      the dir where hbmk is located. This file can be used to store
      build settings so that they can later be used by hbmk,
      automatically. IOW this is the communication medium
      between the build process and hbmk. We can store here
      the selected GT, extra libraries, PRG flags, C flags, linker
      flags, while keeping hbmk executable free from such burnt-in
      information. For this to work, the build process needs
      to generate hbmkcfg.hbp with appropriate content, and this 
      file needs to be added to standard distribution packages. 
      The format is normal .hbp, described on the hbmk help screen.
This commit is contained in:
Viktor Szakats
2009-02-20 08:52:30 +00:00
parent 54f46513eb
commit 4c3a2582cd
2 changed files with 69 additions and 20 deletions

View File

@@ -8,6 +8,22 @@
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2009-02-20 09:44 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* utils/hbmk2/hbmk2.prg
+ Added support for build level (or system level if that's
needed in the future) configuration file for hbmk. Currently
it will automatically pick the file named hbmkcfg.hbp from
the dir where hbmk is located. This file can be used to store
build settings so that they can later be used by hbmk,
automatically. IOW this is the communication medium
between the build process and hbmk. We can store here
the selected GT, extra libraries, PRG flags, C flags, linker
flags, while keeping hbmk executable free from such burnt-in
information. For this to work, the build process needs
to generate hbmkcfg.hbp with appropriate content, and this
file needs to be added to standard distribution packages.
The format is normal .hbp, described on the hbmk help screen.
2009-02-20 09:26 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* utils/hbmk2/hbmk2.prg
+ Added CCPATH + CCPREFIX support for *nix/gcc|gpp.

View File

@@ -1531,6 +1531,8 @@ STATIC FUNCTION FN_ExtSet( cFileName, cExt )
RETURN hb_FNameMerge( cDir, cName, cExt )
#define HBMK_CFG_NAME "hbmkcfg.hbp"
STATIC PROCEDURE HBP_ProcessAll( /* @ */ aLIBS,;
/* @ */ aLIBPATH,;
/* @ */ aOPTPRG,;
@@ -1546,29 +1548,60 @@ STATIC PROCEDURE HBP_ProcessAll( /* @ */ aLIBS,;
/* @ */ lSTRIP,;
/* @ */ lRUN,;
/* @ */ cGT )
LOCAL aFiles := Directory( "*.hbp" )
LOCAL aFile
LOCAL cDir
LOCAL cFileName
FOR EACH aFile IN aFiles
IF t_lInfo
OutStd( "hbmk: Processing: " + aFile[ F_NAME ] + hb_osNewLine() )
LOCAL aCFGDirs := { DirAddPathSep( hb_DirBase() ) }
FOR EACH cDir IN aCFGDirs
IF hb_FileExists( cFileName := ( cDir + HBMK_CFG_NAME ) )
IF t_lInfo
OutStd( "hbmk: Processing configuration: " + cFileName + hb_osNewLine() )
ENDIF
HBP_ProcessOne( cFileName,;
@aLIBS,;
@aLIBPATH,;
@aOPTPRG,;
@aOPTC,;
@aOPTL,;
@lGUI,;
@lMT,;
@lSHARED,;
@lSTATICFULL,;
@lDEBUG,;
@lNULRDD,;
@lMAP,;
@lSTRIP,;
@lRUN,;
@cGT )
EXIT
ENDIF
NEXT
FOR EACH aFile IN Directory( "*.hbp" )
cFileName := aFile[ F_NAME ]
IF !( cFileName == HBMK_CFG_NAME )
IF t_lInfo
OutStd( "hbmk: Processing: " + cFileName + hb_osNewLine() )
ENDIF
HBP_ProcessOne( cFileName,;
@aLIBS,;
@aLIBPATH,;
@aOPTPRG,;
@aOPTC,;
@aOPTL,;
@lGUI,;
@lMT,;
@lSHARED,;
@lSTATICFULL,;
@lDEBUG,;
@lNULRDD,;
@lMAP,;
@lSTRIP,;
@lRUN,;
@cGT )
ENDIF
HBP_ProcessOne( aFile[ F_NAME ],;
@aLIBS,;
@aLIBPATH,;
@aOPTPRG,;
@aOPTC,;
@aOPTL,;
@lGUI,;
@lMT,;
@lSHARED,;
@lSTATICFULL,;
@lDEBUG,;
@lNULRDD,;
@lMAP,;
@lSTRIP,;
@lRUN,;
@cGT )
NEXT
RETURN