2012-04-04 15:45 UTC+0200 Viktor Szakats (harbour syenar.net)

* contrib/make.hbs
  * contrib/hbpost.hbm
    + use HB_LIB3RD hbmk2 macro instead of rolling custom logic
      to detect and enable unicows lib.

  * utils/hbmk2/hbmk2.prg
    + added HB_LIB3RD internal variable (usable as filter and as macro)
      it's filled when '<hbroot>/lib/3rd/<plat>/<comp>' directory is present
    + added EXPERIMENTAL pseudo-function for filters to detect presence
      of file or directory: {hb_ispath='<file or directory>'}. if the
      value is not an absolute path, it will be meant relative to source
      hbmk2 file.

  * package/harb_win.mft
  * package/harb_win.rc
  * package/mpkg_win.nsi
  * package/mpkg_src_nightly.sh
  * package/winuni/mpkg_win_uni.nsi
    * "Harbour Project" -> "Harbour"
    * "hbrun" shortcut -> "Harbour (Interactive shell)"
This commit is contained in:
Viktor Szakats
2012-04-04 13:46:58 +00:00
parent bad2ea0302
commit 567bef4e20
9 changed files with 242 additions and 208 deletions

View File

@@ -16,13 +16,35 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-04-04 15:45 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/make.hbs
* contrib/hbpost.hbm
+ use HB_LIB3RD hbmk2 macro instead of rolling custom logic
to detect and enable unicows lib.
* utils/hbmk2/hbmk2.prg
+ added HB_LIB3RD internal variable (usable as filter and as macro)
it's filled when '<hbroot>/lib/3rd/<plat>/<comp>' directory is present
+ added EXPERIMENTAL pseudo-function for filters to detect presence
of file or directory: {hb_ispath='<file or directory>'}. if the
value is not an absolute path, it will be meant relative to source
hbmk2 file.
* package/harb_win.mft
* package/harb_win.rc
* package/mpkg_win.nsi
* package/mpkg_src_nightly.sh
* package/winuni/mpkg_win_uni.nsi
* "Harbour Project" -> "Harbour"
* "hbrun" shortcut -> "Harbour (Interactive shell)"
2012-04-03 22:17 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* harbour/contrib/xhb/hboutdbg.c
* eliminated HB_TCHAR_*() macros
2012-04-03 11:26 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbxbp/tests/demoxbp.prg
! Fixed: visibility of sub-menu's was off and thus main menu was
! Fixed: visibility of sub-menu's was off and thus main menu was
not being displayed, reported by Zoran.
2012-04-03 19:02 UTC+0200 Viktor Szakats (harbour syenar.net)
@@ -63,7 +85,7 @@
* contrib/hbformat/utils/hbformat.prg
% changed manual logic to HB_DIRSEPADD() call
! changed SET( _SET_DIRSEPARATOR ) to hb_ps()
! changed SET( _SET_DIRSEPARATOR ) to HB_PS()
2012-04-03 02:28 UTC+0200 Viktor Szakats (harbour syenar.net)
* src/lang/Makefile

View File

@@ -29,7 +29,7 @@
{win&allmsvc&HB_COMP_VER>'1400'}-dflag=-dynamicbase
{allwin}-winuni
{allwin&_HB_UNICOWS_AVAILABLE}-lunicows
{allwin&HB_LIB3RD}-lunicows
{HB_BUILD_DEBUG}-prgflag=-l-
{HB_BUILD_DEBUG}-debug

View File

@@ -347,7 +347,6 @@ PROCEDURE GNUMake( aParams, hProjectList )
hb_setenv( "_HB_INSTALL_MAN", GetEnv( "HB_INSTALL_MAN" ) )
hb_setenv( "_HB_INSTALL_ETC", GetEnv( "HB_INSTALL_ETC" ) )
hb_setenv( "_HB_INSTALL_CONTRIB", GetEnv( "HB_INSTALL_CONTRIB" ) )
hb_setenv( "_HB_UNICOWS_AVAILABLE", iif( hb_DirExists( s_cRoot + "lib" + hb_ps() + "3rd" + hb_ps() + GetEnv( "HB_PLATFORM" ) + hb_ps() + GetEnv( "HB_COMPILER" ) ), "yes", "" ) )
/* Override hbmk2 autodetection. WARNING: Must be in sync with global.mk logic */
hb_setenv( "HB_INSTALL_PREFIX", s_cRoot )

View File

@@ -3,7 +3,7 @@
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="3.1.0.0"
processorArchitecture="*"
name="Harbour Project"
name="Harbour"
type="win32"/>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">

View File

@@ -18,7 +18,7 @@
#define HB_VER_FILEVERSION HB_VER_PRODUCTVERSION
#define HB_VER_FILEVERSION_STR HB_VER_PRODUCTVERSION_STR
#define HB_NAME "Harbour Project\0"
#define HB_NAME "Harbour\0"
#define HB_COPYRIGHT "Copyright \xA9 1999-2012 (see application banner)\0"
/* Version info */

View File

@@ -42,7 +42,7 @@
# http://sourceforge.net/apps/trac/sourceforge/wiki/SSH%20keys
#
echo Starting Harbour Project nightly source package creation...
echo Starting Harbour nightly source package creation...
rm -f harbour-nightly-src.zip harbour-nightly.tar.bz2 harbour-nightly.tar.gz harbour-nightly.tar.xz
@@ -103,4 +103,4 @@ fi
rm -f harbour-nightly-src.zip harbour-nightly.tar.bz2 harbour-nightly.tar.gz harbour-nightly.tar.xz
echo Ended Harbour Project nightly source package creation.
echo Ended Harbour nightly source package creation.

View File

@@ -6,7 +6,7 @@
; Copyright 2009 Viktor Szakats (harbour syenar.net)
; See COPYING for licensing terms.
;
; Harbour Project Nullsoft installer script (for Windows/DOS)
; Harbour Nullsoft installer script (for Windows/DOS)
; [ Do not try to use this script directly. It won't work. ]
;
; Please read INSTALL for further information.
@@ -30,7 +30,7 @@ CRCCheck on
RequestExecutionLevel user
; The name of the installer
Name "Harbour Project"
Name "Harbour"
; The file to write
OutFile "$%HB_TOP%\$%HB_PKGNAME%.exe"
@@ -97,14 +97,14 @@ Section "Main components" hb_main
File "$%HB_INSTALL_PREFIX%\doc\*.*"
; Write the installation path into the registry
; WriteRegStr HKLM "SOFTWARE\Harbour Project" "InstallDir" "$INSTDIR"
WriteRegStr HKCU "Software\Harbour Project" "InstallDir" "$INSTDIR"
; WriteRegStr HKLM "SOFTWARE\Harbour" "InstallDir" "$INSTDIR"
WriteRegStr HKCU "Software\Harbour" "InstallDir" "$INSTDIR"
; Write the uninstall keys for Windows
; WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour Project" "DisplayName" "Harbour Project"
; WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour Project" "UninstallString" '"$INSTDIR\uninstall.exe"'
; WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour Project" "NoModify" 1
; WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour Project" "NoRepair" 1
; WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour" "DisplayName" "Harbour"
; WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour" "UninstallString" '"$INSTDIR\uninstall.exe"'
; WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour" "NoModify" 1
; WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour" "NoRepair" 1
WriteUninstaller "uninstall.exe"
SectionEnd
@@ -125,18 +125,18 @@ Section "Start Menu and Desktop icons" hb_shortcuts
; this will be the working dir for shortcuts
SetOutPath $INSTDIR
CreateShortCut "$DESKTOP\Harbour Project.lnk" "$INSTDIR" "" "$INSTDIR" 0
CreateDirectory "$SMPROGRAMS\Harbour Project"
CreateShortCut "$SMPROGRAMS\Harbour Project\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$SMPROGRAMS\Harbour Project\Harbour Project (Command line).lnk" "cmd.exe" "/k cd $INSTDIR\bin" "cmd.exe" 0
CreateShortCut "$SMPROGRAMS\Harbour Project\Harbour Project.lnk" "$INSTDIR" "" "$INSTDIR" 0
CreateShortCut "$SMPROGRAMS\Harbour Project\hbrun.lnk" "$INSTDIR\bin\hbrun.exe" "-v" "$INSTDIR\bin\hbrun.exe" 0
CreateDirectory "$SMPROGRAMS\Harbour Project\Links"
WriteINIStr "$SMPROGRAMS\Harbour Project\Links\Homepage.url" "InternetShortcut" "URL" "http://harbour-project.org/"
WriteINIStr "$SMPROGRAMS\Harbour Project\Links\Sourceforge Page.url" "InternetShortcut" "URL" "http://sourceforge.net/projects/harbour-project/"
WriteINIStr "$SMPROGRAMS\Harbour Project\Links\Users' Mailing List.url" "InternetShortcut" "URL" "http://groups.google.com/group/harbour-users/"
WriteINIStr "$SMPROGRAMS\Harbour Project\Links\Developers' Mailing List.url" "InternetShortcut" "URL" "http://groups.google.com/group/harbour-devel/"
WriteINIStr "$SMPROGRAMS\Harbour Project\Links\Development Timeline.url" "InternetShortcut" "URL" "http://sourceforge.net/apps/trac/harbour-project/timeline"
CreateShortCut "$DESKTOP\Harbour.lnk" "$INSTDIR" "" "$INSTDIR" 0
CreateDirectory "$SMPROGRAMS\Harbour"
CreateShortCut "$SMPROGRAMS\Harbour\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$SMPROGRAMS\Harbour\Harbour (Command line).lnk" "cmd.exe" "/k cd $INSTDIR\bin" "cmd.exe" 0
CreateShortCut "$SMPROGRAMS\Harbour\Harbour.lnk" "$INSTDIR" "" "$INSTDIR" 0
CreateShortCut "$SMPROGRAMS\Harbour\Harbour (Interactive shell).lnk" "$INSTDIR\bin\hbrun.exe" "-v" "$INSTDIR\bin\hbrun.exe" 0
CreateDirectory "$SMPROGRAMS\Harbour\Links"
WriteINIStr "$SMPROGRAMS\Harbour\Links\Homepage.url" "InternetShortcut" "URL" "http://harbour-project.org/"
WriteINIStr "$SMPROGRAMS\Harbour\Links\Sourceforge Page.url" "InternetShortcut" "URL" "http://sourceforge.net/projects/harbour-project/"
WriteINIStr "$SMPROGRAMS\Harbour\Links\Users' Mailing List.url" "InternetShortcut" "URL" "http://groups.google.com/group/harbour-users/"
WriteINIStr "$SMPROGRAMS\Harbour\Links\Developers' Mailing List.url" "InternetShortcut" "URL" "http://groups.google.com/group/harbour-devel/"
WriteINIStr "$SMPROGRAMS\Harbour\Links\Development Timeline.url" "InternetShortcut" "URL" "http://sourceforge.net/apps/trac/harbour-project/timeline"
SectionEnd
@@ -164,15 +164,15 @@ Section "Uninstall"
RMDir /r $INSTDIR
; Remove directories used
Delete "$SMPROGRAMS\Harbour Project\Links\*.*"
RMDir "$SMPROGRAMS\Harbour Project\Links"
Delete "$SMPROGRAMS\Harbour Project\*.*"
RMDir "$SMPROGRAMS\Harbour Project"
Delete "$SMPROGRAMS\Harbour\Links\*.*"
RMDir "$SMPROGRAMS\Harbour\Links"
Delete "$SMPROGRAMS\Harbour\*.*"
RMDir "$SMPROGRAMS\Harbour"
RMDir "$INSTDIR"
Delete "$DESKTOP\Harbour Project.lnk"
Delete "$DESKTOP\Harbour.lnk"
; DeleteRegKey HKLM "SOFTWARE\Harbour Project"
DeleteRegKey HKCU "Software\Harbour Project"
; DeleteRegKey HKLM "SOFTWARE\Harbour"
DeleteRegKey HKCU "Software\Harbour"
SectionEnd

View File

@@ -3,7 +3,7 @@
;
; ---------------------------------------------------------------
; NSIS installer script for Harbour Project
; NSIS installer script for Harbour
;
; Copyright 2009 Viktor Szakats (harbour syenar.net)
; See COPYING for licensing terms.
@@ -37,7 +37,7 @@ RequestExecutionLevel user
!define /date NOW "%Y%m%d"
Name "Harbour Project $%HB_VM%"
Name "Harbour $%HB_VM%"
OutFile "$%HB_RT%harbour-$%HB_VF%-win.exe"
InstallDir C:\hb$%HB_VS%
@@ -127,14 +127,14 @@ Section "Main components" hb_main
File "$%HB_ABSROOT%addons\HARBOUR_README_ADDONS"
; Write the installation path into the registry
; WriteRegStr HKLM "SOFTWARE\Harbour Project $%HB_VM%" "InstallDir" "$INSTDIR"
WriteRegStr HKCU "Software\Harbour Project $%HB_VM%" "InstallDir" "$INSTDIR"
; WriteRegStr HKLM "SOFTWARE\Harbour $%HB_VM%" "InstallDir" "$INSTDIR"
WriteRegStr HKCU "Software\Harbour $%HB_VM%" "InstallDir" "$INSTDIR"
; Write the uninstall keys for Windows
; WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour Project $%HB_VM%" "DisplayName" "Harbour Project"
; WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour Project $%HB_VM%" "UninstallString" '"$INSTDIR\uninstall.exe"'
; WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour Project $%HB_VM%" "NoModify" 1
; WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour Project $%HB_VM%" "NoRepair" 1
; WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour $%HB_VM%" "DisplayName" "Harbour"
; WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour $%HB_VM%" "UninstallString" '"$INSTDIR\uninstall.exe"'
; WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour $%HB_VM%" "NoModify" 1
; WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour $%HB_VM%" "NoRepair" 1
WriteUninstaller "uninstall.exe"
SectionEnd
@@ -342,22 +342,22 @@ Section "Start Menu and Desktop icons" hb_shortcuts
; this will be the working dir for shortcuts
SetOutPath $INSTDIR
CreateShortCut "$DESKTOP\Harbour Project $%HB_VM%.lnk" "$INSTDIR" "" "$INSTDIR" 0
CreateDirectory "$SMPROGRAMS\Harbour Project $%HB_VM%"
CreateShortCut "$SMPROGRAMS\Harbour Project $%HB_VM%\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$SMPROGRAMS\Harbour Project $%HB_VM%\Harbour Project (Command line).lnk" "cmd.exe" "/k cd $INSTDIR\bin" "cmd.exe" 0
CreateShortCut "$SMPROGRAMS\Harbour Project $%HB_VM%\Harbour Project.lnk" "$INSTDIR" "" "$INSTDIR" 0
CreateShortCut "$SMPROGRAMS\Harbour Project $%HB_VM%\hbrun.lnk" "$INSTDIR\bin\hbrun.exe" "-v" "$INSTDIR\bin\hbrun.exe" 0
CreateShortCut "$DESKTOP\Harbour $%HB_VM%.lnk" "$INSTDIR" "" "$INSTDIR" 0
CreateDirectory "$SMPROGRAMS\Harbour $%HB_VM%"
CreateShortCut "$SMPROGRAMS\Harbour $%HB_VM%\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$SMPROGRAMS\Harbour $%HB_VM%\Harbour (Command line).lnk" "cmd.exe" "/k cd $INSTDIR\bin" "cmd.exe" 0
CreateShortCut "$SMPROGRAMS\Harbour $%HB_VM%\Harbour.lnk" "$INSTDIR" "" "$INSTDIR" 0
CreateShortCut "$SMPROGRAMS\Harbour $%HB_VM%\Harbout (Interactive shell).lnk" "$INSTDIR\bin\hbrun.exe" "-v" "$INSTDIR\bin\hbrun.exe" 0
; TOFIX: Only create this shortcut, if 'hb_ide' component was enabled at install time (or when the target filename exists)
;!ifndef PKG_NO_IDE
; CreateShortCut "$SMPROGRAMS\Harbour Project $%HB_VM%\hbide.lnk" "$INSTDIR\bin\hbide.exe" "" "$INSTDIR\bin\hbide.exe" 0
; CreateShortCut "$SMPROGRAMS\Harbour $%HB_VM%\hbide.lnk" "$INSTDIR\bin\hbide.exe" "" "$INSTDIR\bin\hbide.exe" 0
;!endif
CreateDirectory "$SMPROGRAMS\Harbour Project $%HB_VM%\Links"
WriteINIStr "$SMPROGRAMS\Harbour Project $%HB_VM%\Links\Homepage.url" "InternetShortcut" "URL" "http://harbour-project.org/"
WriteINIStr "$SMPROGRAMS\Harbour Project $%HB_VM%\Links\Sourceforge Page.url" "InternetShortcut" "URL" "http://sourceforge.net/projects/harbour-project/"
WriteINIStr "$SMPROGRAMS\Harbour Project $%HB_VM%\Links\Users' Mailing List.url" "InternetShortcut" "URL" "http://groups.google.com/group/harbour-users/"
WriteINIStr "$SMPROGRAMS\Harbour Project $%HB_VM%\Links\Developers' Mailing List.url" "InternetShortcut" "URL" "http://groups.google.com/group/harbour-devel/"
WriteINIStr "$SMPROGRAMS\Harbour Project $%HB_VM%\Links\Development Timeline.url" "InternetShortcut" "URL" "http://sourceforge.net/apps/trac/harbour-project/timeline"
CreateDirectory "$SMPROGRAMS\Harbour $%HB_VM%\Links"
WriteINIStr "$SMPROGRAMS\Harbour $%HB_VM%\Links\Homepage.url" "InternetShortcut" "URL" "http://harbour-project.org/"
WriteINIStr "$SMPROGRAMS\Harbour $%HB_VM%\Links\Sourceforge Page.url" "InternetShortcut" "URL" "http://sourceforge.net/projects/harbour-project/"
WriteINIStr "$SMPROGRAMS\Harbour $%HB_VM%\Links\Users' Mailing List.url" "InternetShortcut" "URL" "http://groups.google.com/group/harbour-users/"
WriteINIStr "$SMPROGRAMS\Harbour $%HB_VM%\Links\Developers' Mailing List.url" "InternetShortcut" "URL" "http://groups.google.com/group/harbour-devel/"
WriteINIStr "$SMPROGRAMS\Harbour $%HB_VM%\Links\Development Timeline.url" "InternetShortcut" "URL" "http://sourceforge.net/apps/trac/harbour-project/timeline"
SectionEnd
@@ -511,15 +511,15 @@ Section "Uninstall"
RMDir /r $INSTDIR
; Remove directories used
Delete "$SMPROGRAMS\Harbour Project $%HB_VM%\Links\*.*"
RMDir "$SMPROGRAMS\Harbour Project $%HB_VM%\Links"
Delete "$SMPROGRAMS\Harbour Project $%HB_VM%\*.*"
RMDir "$SMPROGRAMS\Harbour Project $%HB_VM%"
Delete "$SMPROGRAMS\Harbour $%HB_VM%\Links\*.*"
RMDir "$SMPROGRAMS\Harbour $%HB_VM%\Links"
Delete "$SMPROGRAMS\Harbour $%HB_VM%\*.*"
RMDir "$SMPROGRAMS\Harbour $%HB_VM%"
RMDir "$INSTDIR"
Delete "$DESKTOP\Harbour Project $%HB_VM%.lnk"
Delete "$DESKTOP\Harbour $%HB_VM%.lnk"
; DeleteRegKey HKLM "SOFTWARE\Harbour Project $%HB_VM%"
DeleteRegKey HKCU "Software\Harbour Project $%HB_VM%"
; DeleteRegKey HKLM "SOFTWARE\Harbour $%HB_VM%"
DeleteRegKey HKCU "Software\Harbour $%HB_VM%"
SectionEnd

View File

@@ -314,160 +314,161 @@ REQUEST hbmk_KEYW
#define _HBMK_cHB_INSTALL_BIN 12
#define _HBMK_cHB_INSTALL_LIB 13
#define _HBMK_cHB_INSTALL_DYN 14
#define _HBMK_cHB_INSTALL_INC 15
#define _HBMK_cHB_INSTALL_LI3 14
#define _HBMK_cHB_INSTALL_DYN 15
#define _HBMK_cHB_INSTALL_INC 16
#define _HBMK_lGUI 16
#define _HBMK_lMT 17
#define _HBMK_lPIC 18
#define _HBMK_lDEBUG 19
#define _HBMK_nHEAD 20
#define _HBMK_aINCPATH 21
#define _HBMK_lREBUILD 22
#define _HBMK_lCLEAN 23
#define _HBMK_lTRACE 24
#define _HBMK_lDONTEXEC 25
#define _HBMK_nHBMODE 26
#define _HBMK_cUILNG 27
#define _HBMK_cUICDP 28
#define _HBMK_aLIBUSER 29
#define _HBMK_aLIBUSERFWK 30
#define _HBMK_aLIBUSERGT 31
#define _HBMK_aLIBUSERSYS 32
#define _HBMK_aLIBUSERSYSPRE 33
#define _HBMK_aLIBFILTEROUT 34
#define _HBMK_aLIBPATH 35
#define _HBMK_aINSTPATH 36
#define _HBMK_aOPTC 37
#define _HBMK_aOPTCUSER 38
#define _HBMK_aOPTCX 39
#define _HBMK_aOPTCPPX 40
#define _HBMK_aOPTPRG 41
#define _HBMK_aOPTRES 42
#define _HBMK_aOPTL 43
#define _HBMK_aOPTLPOST 44
#define _HBMK_aOPTA 45
#define _HBMK_aOPTD 46
#define _HBMK_aOPTDPOST 47
#define _HBMK_aOPTI 48
#define _HBMK_lCPP 49
#define _HBMK_lSHARED 50
#define _HBMK_lSTATICFULL 51
#define _HBMK_lSHAREDDIST 52
#define _HBMK_lNULRDD 53
#define _HBMK_lMAP 54
#define _HBMK_lBEEP 55
#define _HBMK_lSTRIP 56
#define _HBMK_lOPTIM 57
#define _HBMK_nCOMPR 58
#define _HBMK_nWARN 59
#define _HBMK_lRUN 60
#define _HBMK_lINC 61
#define _HBMK_lREBUILDPO 62
#define _HBMK_lMINIPO 63
#define _HBMK_lWINUNI 64
#define _HBMK_nCONF 65
#define _HBMK_lIGNOREERROR 66
#define _HBMK_lIMPLIB 67
#define _HBMK_lHBCPPMM 68
#define _HBMK_aVAR 69
#define _HBMK_hDEP 70
#define _HBMK_lGUI 17
#define _HBMK_lMT 18
#define _HBMK_lPIC 19
#define _HBMK_lDEBUG 20
#define _HBMK_nHEAD 21
#define _HBMK_aINCPATH 22
#define _HBMK_lREBUILD 23
#define _HBMK_lCLEAN 24
#define _HBMK_lTRACE 25
#define _HBMK_lDONTEXEC 26
#define _HBMK_nHBMODE 27
#define _HBMK_cUILNG 28
#define _HBMK_cUICDP 29
#define _HBMK_aLIBUSER 30
#define _HBMK_aLIBUSERFWK 31
#define _HBMK_aLIBUSERGT 32
#define _HBMK_aLIBUSERSYS 33
#define _HBMK_aLIBUSERSYSPRE 34
#define _HBMK_aLIBFILTEROUT 35
#define _HBMK_aLIBPATH 36
#define _HBMK_aINSTPATH 37
#define _HBMK_aOPTC 38
#define _HBMK_aOPTCUSER 39
#define _HBMK_aOPTCX 40
#define _HBMK_aOPTCPPX 41
#define _HBMK_aOPTPRG 42
#define _HBMK_aOPTRES 43
#define _HBMK_aOPTL 44
#define _HBMK_aOPTLPOST 45
#define _HBMK_aOPTA 46
#define _HBMK_aOPTD 47
#define _HBMK_aOPTDPOST 48
#define _HBMK_aOPTI 49
#define _HBMK_lCPP 50
#define _HBMK_lSHARED 51
#define _HBMK_lSTATICFULL 52
#define _HBMK_lSHAREDDIST 53
#define _HBMK_lNULRDD 54
#define _HBMK_lMAP 55
#define _HBMK_lBEEP 56
#define _HBMK_lSTRIP 57
#define _HBMK_lOPTIM 58
#define _HBMK_nCOMPR 59
#define _HBMK_nWARN 60
#define _HBMK_lRUN 61
#define _HBMK_lINC 62
#define _HBMK_lREBUILDPO 63
#define _HBMK_lMINIPO 64
#define _HBMK_lWINUNI 65
#define _HBMK_nCONF 66
#define _HBMK_lIGNOREERROR 67
#define _HBMK_lIMPLIB 68
#define _HBMK_lHBCPPMM 69
#define _HBMK_aVAR 70
#define _HBMK_hDEP 71
#define _HBMK_lCreateLib 71
#define _HBMK_lCreateDyn 72
#define _HBMK_lCreateImpLib 73
#define _HBMK_lCreatePPO 74
#define _HBMK_lCreateHRB 75
#define _HBMK_lCreateLib 72
#define _HBMK_lCreateDyn 73
#define _HBMK_lCreateImpLib 74
#define _HBMK_lCreatePPO 75
#define _HBMK_lCreateHRB 76
#define _HBMK_lDynVM 76
#define _HBMK_lDynVM 77
#define _HBMK_lBLDFLGP 77
#define _HBMK_lBLDFLGC 78
#define _HBMK_lBLDFLGL 79
#define _HBMK_lBLDFLGL 80
#define _HBMK_cFIRST 80
#define _HBMK_aPRG 81
#define _HBMK_aC 82
#define _HBMK_aCPP 83
#define _HBMK_aRESSRC 84
#define _HBMK_aRESCMP 85
#define _HBMK_aOBJUSER 86
#define _HBMK_aICON 87
#define _HBMK_cMANIFEST 88
#define _HBMK_aIMPLIBSRC 89
#define _HBMK_aDEF 90
#define _HBMK_aINSTFILE 91
#define _HBMK_hDEPTS 92
#define _HBMK_aREQUEST 93
#define _HBMK_cFIRST 81
#define _HBMK_aPRG 82
#define _HBMK_aC 83
#define _HBMK_aCPP 84
#define _HBMK_aRESSRC 85
#define _HBMK_aRESCMP 86
#define _HBMK_aOBJUSER 87
#define _HBMK_aICON 88
#define _HBMK_cMANIFEST 89
#define _HBMK_aIMPLIBSRC 90
#define _HBMK_aDEF 91
#define _HBMK_aINSTFILE 92
#define _HBMK_hDEPTS 93
#define _HBMK_aREQUEST 94
#define _HBMK_aPO 94
#define _HBMK_cHBL 95
#define _HBMK_cHBLDir 96
#define _HBMK_aLNG 97
#define _HBMK_cPO 98
#define _HBMK_aPO 95
#define _HBMK_cHBL 96
#define _HBMK_cHBLDir 97
#define _HBMK_aLNG 98
#define _HBMK_cPO 99
#define _HBMK_hPLUGINHRB 99
#define _HBMK_hPLUGINVars 100
#define _HBMK_aPLUGINPars 101
#define _HBMK_hPLUGINExt 102
#define _HBMK_hPLUGINHRB 100
#define _HBMK_hPLUGINVars 101
#define _HBMK_aPLUGINPars 102
#define _HBMK_hPLUGINExt 103
#define _HBMK_lDEBUGTIME 103
#define _HBMK_lDEBUGINC 104
#define _HBMK_lDEBUGSTUB 105
#define _HBMK_lDEBUGI18N 106
#define _HBMK_lDEBUGDEPD 107
#define _HBMK_lDEBUGPARS 108
#define _HBMK_lDEBUGTIME 104
#define _HBMK_lDEBUGINC 105
#define _HBMK_lDEBUGSTUB 106
#define _HBMK_lDEBUGI18N 107
#define _HBMK_lDEBUGDEPD 108
#define _HBMK_lDEBUGPARS 109
#define _HBMK_cCCPATH 109
#define _HBMK_cCCPREFIX 110
#define _HBMK_cCCPOSTFIX 111
#define _HBMK_cCCEXT 112
#define _HBMK_cCCPATH 110
#define _HBMK_cCCPREFIX 111
#define _HBMK_cCCPOSTFIX 112
#define _HBMK_cCCEXT 113
#define _HBMK_cWorkDir 113
#define _HBMK_cWorkDirDynSub 114
#define _HBMK_nCmd_Esc 115
#define _HBMK_nScr_Esc 116
#define _HBMK_nCmd_FNF 117
#define _HBMK_nScr_FNF 118
#define _HBMK_nErrorLevel 119
#define _HBMK_cWorkDir 114
#define _HBMK_cWorkDirDynSub 115
#define _HBMK_nCmd_Esc 116
#define _HBMK_nScr_Esc 117
#define _HBMK_nCmd_FNF 118
#define _HBMK_nScr_FNF 119
#define _HBMK_nErrorLevel 120
#define _HBMK_cPROGDIR 120
#define _HBMK_cPROGNAME 121
#define _HBMK_cPROGDIR 121
#define _HBMK_cPROGNAME 122
#define _HBMK_hAUTOHBC 122 /* trigger header => .hbc associations */
#define _HBMK_hAUTOHBCFOUND 123 /* trigger headers found */
#define _HBMK_hAUTOHBC 123 /* trigger header => .hbc associations */
#define _HBMK_hAUTOHBCFOUND 124 /* trigger headers found */
#define _HBMK_aDEPTHBC 124 /* .hbc references found */
#define _HBMK_hDEPTSDIR 125 /* Header dirs found for dependencies */
#define _HBMK_aDEPTHBC 125 /* .hbc references found */
#define _HBMK_hDEPTSDIR 126 /* Header dirs found for dependencies */
#define _HBMK_lStopAfterInit 126
#define _HBMK_lStopAfterHarbour 127
#define _HBMK_lStopAfterInit 127
#define _HBMK_lStopAfterHarbour 128
#define _HBMK_nCOMPVer 128
#define _HBMK_lDEPIMPLIB 129 /* Generate import libs configured in dependecy specification */
#define _HBMK_lInstForce 130 /* Force to install target even if was up to date */
#define _HBMK_lAutoHBM 131 /* Toggles processing of hbmk.hbm file in current directory */
#define _HBMK_lContainer 132 /* Target type: container */
#define _HBMK_lShowLevel 133 /* Show project nesting level in all output lines */
#define _HBMK_hFiles 134 /* Cache for the header parser (common for C and Harbour) */
#define _HBMK_cDynLibPrefix 135 /* Dynamic lib filename prefix */
#define _HBMK_cDynLibExt 136 /* Dynamic lib filename extension */
#define _HBMK_aLINK 137 /* Links to be created and pointing to the target */
#define _HBMK_hDEPTMACRO 138 /* Links to be created and pointing to the target */
#define _HBMK_cC 139 /* C dialect */
#define _HBMK_cCPP 140 /* C++ dialect */
#define _HBMK_aLIB_BASE_WARN 141
#define _HBMK_nCOMPVer 129
#define _HBMK_lDEPIMPLIB 130 /* Generate import libs configured in dependecy specification */
#define _HBMK_lInstForce 131 /* Force to install target even if was up to date */
#define _HBMK_lAutoHBM 132 /* Toggles processing of hbmk.hbm file in current directory */
#define _HBMK_lContainer 133 /* Target type: container */
#define _HBMK_lShowLevel 134 /* Show project nesting level in all output lines */
#define _HBMK_hFiles 135 /* Cache for the header parser (common for C and Harbour) */
#define _HBMK_cDynLibPrefix 136 /* Dynamic lib filename prefix */
#define _HBMK_cDynLibExt 137 /* Dynamic lib filename extension */
#define _HBMK_aLINK 138 /* Links to be created and pointing to the target */
#define _HBMK_hDEPTMACRO 139 /* Links to be created and pointing to the target */
#define _HBMK_cC 140 /* C dialect */
#define _HBMK_cCPP 141 /* C++ dialect */
#define _HBMK_aLIB_BASE_WARN 142
#define _HBMK_aArgs 142
#define _HBMK_nArgTarget 143
#define _HBMK_lPause 144
#define _HBMK_nLevel 145
#define _HBMK_aArgs 143
#define _HBMK_nArgTarget 144
#define _HBMK_lPause 145
#define _HBMK_nLevel 146
#define _HBMK_cHBX 146
#define _HBMK_cHBX 147
#define _HBMK_aGT 147
#define _HBMK_aGT 148
#define _HBMK_MAX_ 147
#define _HBMK_MAX_ 148
#define _HBMK_DEP_CTRL_MARKER ".control." /* must be an invalid path */
@@ -786,7 +787,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
LOCAL l_cHB_INSTALL_PREFIX
LOCAL l_cHB_INSTALL_BIN
LOCAL l_cHB_INSTALL_LIB
LOCAL l_cHB_INSTALL_LIB3RD
LOCAL l_cHB_INSTALL_LI3
LOCAL l_cHB_INSTALL_DYN
LOCAL l_cHB_INSTALL_INC
LOCAL l_cHB_INSTALL_ADD
@@ -1918,13 +1919,13 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
l_cHB_INSTALL_LIB := hb_PathNormalize( hb_DirSepAdd( l_cHB_INSTALL_PREFIX ) + "lib" )
ENDIF
ENDIF
IF Empty( l_cHB_INSTALL_LIB3RD )
IF Empty( l_cHB_INSTALL_LI3 )
IF hbmk[ _HBMK_cPLAT ] == "win" .AND. ;
hb_DirExists( tmp := hb_PathNormalize( hb_DirSepAdd( l_cHB_INSTALL_PREFIX ) ) + "lib" +;
hb_ps() + "3rd" +;
hb_ps() + hbmk[ _HBMK_cPLAT ] +;
hb_ps() + hbmk[ _HBMK_cCOMP ] )
l_cHB_INSTALL_LIB3RD := tmp
l_cHB_INSTALL_LI3 := tmp
ENDIF
ENDIF
IF Empty( l_cHB_INSTALL_INC )
@@ -1956,13 +1957,14 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
keep above code parts easier to read. [vszakats] */
hbmk[ _HBMK_cHB_INSTALL_BIN ] := l_cHB_INSTALL_BIN := hb_DirSepDel( PathSepToSelf( l_cHB_INSTALL_BIN ) )
hbmk[ _HBMK_cHB_INSTALL_LIB ] := l_cHB_INSTALL_LIB := hb_DirSepDel( PathSepToSelf( l_cHB_INSTALL_LIB ) )
hbmk[ _HBMK_cHB_INSTALL_LI3 ] := l_cHB_INSTALL_LI3 := hb_DirSepDel( PathSepToSelf( l_cHB_INSTALL_LI3 ) )
hbmk[ _HBMK_cHB_INSTALL_DYN ] := l_cHB_INSTALL_DYN := hb_DirSepDel( PathSepToSelf( l_cHB_INSTALL_DYN ) )
hbmk[ _HBMK_cHB_INSTALL_INC ] := l_cHB_INSTALL_INC := hb_DirSepDel( PathSepToSelf( l_cHB_INSTALL_INC ) )
/* Add main Harbour library dir to lib path list */
AAddNotEmpty( hbmk[ _HBMK_aLIBPATH ], l_cHB_INSTALL_LIB )
/* Locally hosted 3rd party binary libraries */
AAddNotEmpty( hbmk[ _HBMK_aLIBPATH ], l_cHB_INSTALL_LIB3RD )
AAddNotEmpty( hbmk[ _HBMK_aLIBPATH ], l_cHB_INSTALL_LI3 )
IF ! Empty( l_cHB_INSTALL_DYN ) .AND. !( l_cHB_INSTALL_DYN == l_cHB_INSTALL_LIB )
AAddNotEmpty( hbmk[ _HBMK_aLIBPATH ], l_cHB_INSTALL_DYN )
ENDIF
@@ -2128,7 +2130,7 @@ FUNCTION hbmk2( aArgs, nArgTarget, /* @ */ lPause, nLevel )
/* Process command line (2nd pass) */
FOR EACH aParam IN aParams
cParam := ArchCompFilter( hbmk, aParam[ _PAR_cParam ] )
cParam := ArchCompFilter( hbmk, aParam[ _PAR_cParam ], aParam[ _PAR_cFileName ] )
cParamL := Lower( cParam )
DO CASE
@@ -9219,7 +9221,7 @@ STATIC FUNCTION HBC_ProcessOne( hbmk, cFileName, nNestingLevel )
FOR EACH cLine IN hb_ATokens( cFile, _CHR_EOL )
cLine := AllTrim( ArchCompFilter( hbmk, AllTrim( cLine ) ) )
cLine := AllTrim( ArchCompFilter( hbmk, AllTrim( cLine ), cFileName ) )
DO CASE
CASE Lower( Left( cLine, Len( "skip=" ) ) ) == "skip=" ; cLine := SubStr( cLine, Len( "skip=" ) + 1 )
@@ -9921,7 +9923,7 @@ STATIC FUNCTION HBM_Load( hbmk, aParams, cFileName, nNestingLevel, lProcHBP )
{[!][<plat|comp>]['&'|'|'][...]}
*/
STATIC FUNCTION ArchCompFilter( hbmk, cItem )
STATIC FUNCTION ArchCompFilter( hbmk, cItem, cFileName )
LOCAL nStart, nEnd
LOCAL cFilterSrc
LOCAL cFilterHarb
@@ -9934,8 +9936,8 @@ STATIC FUNCTION ArchCompFilter( hbmk, cItem )
LOCAL lSkipQuote
LOCAL cRetVal
LOCAL cExpr := "hbmk_KEYW( hbmk, '%1' )"
LOCAL cExprWithValue := "hbmk_KEYW( hbmk, '%1', '%2', '%3' )"
LOCAL cExpr := "hbmk_KEYW( hbmk, cFileName, '%1' )"
LOCAL cExprWithValue := "hbmk_KEYW( hbmk, cFileName, '%1', '%2', '%3' )"
LOCAL tmp
nEnd := 1
@@ -10027,8 +10029,8 @@ STATIC FUNCTION ArchCompFilter( hbmk, cItem )
/* Evaluate filter */
BEGIN SEQUENCE WITH {| oError | Break( oError ) }
bFilter := &( "{| hbmk |" + cFilterHarb + "}" )
IF hb_isLogical( xResult := Eval( bFilter, hbmk ) ) .AND. xResult
bFilter := &( "{| hbmk, cFileName |" + cFilterHarb + "}" )
IF hb_isLogical( xResult := Eval( bFilter, hbmk, cFileName ) ) .AND. xResult
cRetVal := cItem
ENDIF
RECOVER
@@ -10134,6 +10136,8 @@ STATIC FUNCTION MacroGet( hbmk, cMacro, cFileName )
cMacro := hbmk[ _HBMK_cHB_INSTALL_BIN ] ; EXIT
CASE "HB_LIB"
cMacro := hbmk[ _HBMK_cHB_INSTALL_LIB ] ; EXIT
CASE "HB_LIB3RD"
cMacro := hbmk[ _HBMK_cHB_INSTALL_LI3 ] ; EXIT
CASE "HB_DYN"
cMacro := hbmk[ _HBMK_cHB_INSTALL_DYN ] ; EXIT
CASE "HB_INC"
@@ -11378,7 +11382,7 @@ STATIC FUNCTION hbmk_DYNSUFFIX( hbmk )
RETURN ""
/* Keep this public, it's used from macro. */
FUNCTION hbmk_KEYW( hbmk, cKeyword, cValue, cOperator )
FUNCTION hbmk_KEYW( hbmk, cFileName, cKeyword, cValue, cOperator )
LOCAL tmp
IF cKeyword == hbmk[ _HBMK_cPLAT ] .OR. ;
@@ -11429,6 +11433,15 @@ FUNCTION hbmk_KEYW( hbmk, cKeyword, cValue, cOperator )
"|icc|iccia64|clang|open64|sunpro|diab|pcc" + ;
"|x86|x86_64|ia64|arm|mips|sh" )
/* handle pseudo-functions */
IF cOperator == "=" .AND. cValue != NIL
SWITCH cKeyword
CASE "hb_ispath"
cValue := hb_PathNormalize( PathMakeAbsolute( PathSepToSelf( MacroProc( hbmk, cValue, cFileName ) ), cFileName ) )
RETURN iif( Empty( hb_FNameNameExt( cValue ) ), hb_DirExists( cValue ), hb_FileExists( cValue ) )
ENDSWITCH
ENDIF
tmp := MacroGet( hbmk, cKeyWord, "" )
IF cValue != NIL
SWITCH cOperator