2025-10-21 13:20 UTC+0200 Aleksander Czajczynski (hb fki.pl)

* contrib/hbssl/hbssl.hbc
    ! actually target VS 2017 for libcrypto, libssl

  * utils/hbmk2/hbmk2.prg
    ! slight rework of MSVC version detection, so it actually operates
      with empty cPath_CompC variable

    * also try to discover version number of future MSVC releases

    * with Zig building GUI applications on Windows, hbmk2 will
      now pass -Wl,/subsystem:windows to the linker
This commit is contained in:
Aleksander Czajczynski
2025-10-21 13:20:05 +02:00
parent 349a0167d5
commit f4dda9a302
3 changed files with 44 additions and 4 deletions

View File

@@ -7,6 +7,19 @@
Entries may not always be in chronological/commit order. Entries may not always be in chronological/commit order.
See license at the end of file. */ See license at the end of file. */
2025-10-21 13:20 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* contrib/hbssl/hbssl.hbc
! actually target VS 2017 for libcrypto, libssl
* utils/hbmk2/hbmk2.prg
! slight rework of MSVC version detection, so it actually operates
with empty cPath_CompC variable
* also try to discover version number of future MSVC releases
* with Zig building GUI applications on Windows, hbmk2 will
now pass -Wl,/subsystem:windows to the linker
2025-10-20 17:42 UTC+0200 Aleksander Czajczynski (hb fki.pl) 2025-10-20 17:42 UTC+0200 Aleksander Czajczynski (hb fki.pl)
* contrib/hbssl/hbssl.hbc * contrib/hbssl/hbssl.hbc
! actually lib* prefix should stay on win/msvc platform ! actually lib* prefix should stay on win/msvc platform

View File

@@ -14,7 +14,7 @@ skip={dos}
{!HB_DYNBIND_OPENSSL&unix}libs=ssl crypto {!HB_DYNBIND_OPENSSL&unix}libs=ssl crypto
{!HB_DYNBIND_OPENSSL&os2}libs=libssl_s libcrypto_s {!HB_DYNBIND_OPENSSL&os2}libs=libssl_s libcrypto_s
{!HB_DYNBIND_OPENSSL&win&!allmingw&!allmsvc&!clang&!zig}libs=ssleay32 libeay32 {!HB_DYNBIND_OPENSSL&win&!allmingw&!allmsvc&!clang&!zig}libs=ssleay32 libeay32
{!HB_DYNBIND_OPENSSL&allmsvc&HB_COMP_VER<'1401'}libs=ssleay32 libeay32 {!HB_DYNBIND_OPENSSL&allmsvc&HB_COMP_VER<'1910'}libs=ssleay32 libeay32
{!HB_DYNBIND_OPENSSL&win&(allmingw|clang|zig)}libs=ssl crypto {!HB_DYNBIND_OPENSSL&win&(allmingw|clang|zig)}libs=ssl crypto
{!HB_DYNBIND_OPENSSL&allmsvc&HB_COMP_VER>'1400'}libs=libssl libcrypto {!HB_DYNBIND_OPENSSL&allmsvc&HB_COMP_VER>'1909'}libs=libssl libcrypto
{!HB_DYNBIND_OPENSSL&allwin}libs=crypt32 {!HB_DYNBIND_OPENSSL&allwin}libs=crypt32

View File

@@ -2283,6 +2283,16 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
ENDIF ENDIF
ENDIF ENDIF
IF hb_LeftEq( hbmk[ _HBMK_cCOMP ], "msvc" ) .AND. Empty( cPath_CompC )
cPath_CompC := FindInPath( "cl.exe" )
IF Empty( cPath_CompC )
cPath_CompC := FindInPath( "link.exe" )
IF ! Empty( cPath_CompC )
cPath_CompC := hb_FNameDir( cPath_CompC ) + SubStr( hbmk[ _HBMK_cCOMP ], 5 ) + ".exe"
ENDIF
ENDIF
ENDIF
DO CASE DO CASE
CASE hbmk[ _HBMK_cPLAT ] == "vxworks" CASE hbmk[ _HBMK_cPLAT ] == "vxworks"
AAdd( hbmk[ _HBMK_aINCPATH ], hb_DirSepToOS( GetEnv( "WIND_BASE" ) + "/target/usr/h" ) ) AAdd( hbmk[ _HBMK_aINCPATH ], hb_DirSepToOS( GetEnv( "WIND_BASE" ) + "/target/usr/h" ) )
@@ -2311,7 +2321,6 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
ENDIF ENDIF
/* Detect compiler version (where applicable) */ /* Detect compiler version (where applicable) */
IF hbmk[ _HBMK_nCOMPVer ] == 0 .AND. ! Empty( cPath_CompC ) IF hbmk[ _HBMK_nCOMPVer ] == 0 .AND. ! Empty( cPath_CompC )
DO CASE DO CASE
@@ -2386,8 +2395,23 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
hbmk[ _HBMK_nCOMPVer ] := 1920 hbmk[ _HBMK_nCOMPVer ] := 1920
CASE "14.3" $ cPath_CompC /* Visual Studio 2022 */ CASE "14.3" $ cPath_CompC /* Visual Studio 2022 */
hbmk[ _HBMK_nCOMPVer ] := 1930 hbmk[ _HBMK_nCOMPVer ] := 1930
CASE "14.4" $ cPath_CompC /* Visual Studio 2022 */
hbmk[ _HBMK_nCOMPVer ] := 1940
OTHERWISE OTHERWISE
hbmk[ _HBMK_nCOMPVer ] := 1400 /* trying to discover future versions of VS */
IF Empty( tmp := GetEnv( "VCTOOLSVERSION" ) )
IF ! Empty( tmp := GetEnv( "VSINSTALLDIR" ) )
tmp := hb_MemoRead( tmp + "Auxiliary\Build\Microsoft.VCToolsVersion.default.txt" )
ENDIF
ENDIF
tmp := Int( Val( Left( tmp, At( ".", tmp ) ) + StrTran( SubStr( tmp, At( ".", tmp ) ), "." ) ) * 100 )
IF tmp >= 800 .AND. tmp < 1300
hbmk[ _HBMK_nCOMPVer ] := tmp + 600
ELSEIF tmp >= 1400
hbmk[ _HBMK_nCOMPVer ] := tmp + 500
ELSE
hbmk[ _HBMK_nCOMPVer ] := 1400
ENDIF
ENDCASE ENDCASE
ENDIF ENDIF
ENDCASE ENDCASE
@@ -4447,6 +4471,9 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
CASE hbmk[ _HBMK_cCOMP ] == "zig" CASE hbmk[ _HBMK_cCOMP ] == "zig"
cBin_CompCPP := "zig" + hbmk[ _HBMK_cCCEXT ] + " c++" cBin_CompCPP := "zig" + hbmk[ _HBMK_cCCEXT ] + " c++"
cBin_CompC := iif( hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ], cBin_CompCPP, "zig" + hbmk[ _HBMK_cCCEXT ] + " cc" ) cBin_CompC := iif( hbmk[ _HBMK_lCPP ] != NIL .AND. hbmk[ _HBMK_lCPP ], cBin_CompCPP, "zig" + hbmk[ _HBMK_cCCEXT ] + " cc" )
IF hbmk[ _HBMK_lGUI ]
AAdd( hbmk[ _HBMK_aOPTL ], "-Wl,/subsystem:windows" )
ENDIF
CASE hbmk[ _HBMK_cCOMP ] == "tcc" CASE hbmk[ _HBMK_cCOMP ] == "tcc"
cBin_CompCPP := "tcc.exe" cBin_CompCPP := "tcc.exe"
cBin_CompC := cBin_CompCPP cBin_CompC := cBin_CompCPP