From f4dda9a30210e55258f7d7925d8d3d9868b8147f Mon Sep 17 00:00:00 2001 From: Aleksander Czajczynski Date: Tue, 21 Oct 2025 13:20:05 +0200 Subject: [PATCH] 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 --- ChangeLog.txt | 13 +++++++++++++ contrib/hbssl/hbssl.hbc | 4 ++-- utils/hbmk2/hbmk2.prg | 31 +++++++++++++++++++++++++++++-- 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index 895dc6f519..adfcb86f23 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -7,6 +7,19 @@ Entries may not always be in chronological/commit order. 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) * contrib/hbssl/hbssl.hbc ! actually lib* prefix should stay on win/msvc platform diff --git a/contrib/hbssl/hbssl.hbc b/contrib/hbssl/hbssl.hbc index 1d70ca2645..e73758a110 100644 --- a/contrib/hbssl/hbssl.hbc +++ b/contrib/hbssl/hbssl.hbc @@ -14,7 +14,7 @@ skip={dos} {!HB_DYNBIND_OPENSSL&unix}libs=ssl crypto {!HB_DYNBIND_OPENSSL&os2}libs=libssl_s libcrypto_s {!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&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 diff --git a/utils/hbmk2/hbmk2.prg b/utils/hbmk2/hbmk2.prg index 834c4db079..d4edb53ab6 100644 --- a/utils/hbmk2/hbmk2.prg +++ b/utils/hbmk2/hbmk2.prg @@ -2283,6 +2283,16 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit 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 CASE hbmk[ _HBMK_cPLAT ] == "vxworks" 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 /* Detect compiler version (where applicable) */ - IF hbmk[ _HBMK_nCOMPVer ] == 0 .AND. ! Empty( cPath_CompC ) DO CASE @@ -2386,8 +2395,23 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit hbmk[ _HBMK_nCOMPVer ] := 1920 CASE "14.3" $ cPath_CompC /* Visual Studio 2022 */ hbmk[ _HBMK_nCOMPVer ] := 1930 + CASE "14.4" $ cPath_CompC /* Visual Studio 2022 */ + hbmk[ _HBMK_nCOMPVer ] := 1940 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 ENDIF ENDCASE @@ -4447,6 +4471,9 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit CASE hbmk[ _HBMK_cCOMP ] == "zig" 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" ) + IF hbmk[ _HBMK_lGUI ] + AAdd( hbmk[ _HBMK_aOPTL ], "-Wl,/subsystem:windows" ) + ENDIF CASE hbmk[ _HBMK_cCOMP ] == "tcc" cBin_CompCPP := "tcc.exe" cBin_CompC := cBin_CompCPP