-
Notifications
You must be signed in to change notification settings - Fork 207
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
harbour -build on Win10 returns wrong platform info #108
Comments
For new Windows versions, all applications must specify that it was taregeted for a set of OS versions. Need to be added to harbour-core\package\harb_win.mft:
Reference Targeting your application for Windows |
Fixes issue harbour#108 by manifesting supported OS versions as per Microsoft documentation GetVersion function https://msdn.microsoft.com/en-us/library/windows/desktop/ms724439(v=vs.85).aspx Targeting your application for Windows https://msdn.microsoft.com/en-us/library/windows/desktop/dn481241(v=vs.85).aspx
This specific case (and other core/contrib binaries) is resolved in the 3.4 fork. General solution is indeed to include the manifest. MSYS2/mingw also does this out of the box (with some side-effects). |
Any problem in using the solution that includes the manifest section for core binaries? The proposed solution don't touch binaries generated through harbour/hbmk2 and should not be a problem. A solution that incorporate correct return for harbour/hbmk2 generated binaries needs more changes, but is doable (and I suggest to be treated as a second issue/feature) |
Including the manifest will resolve the problem (as it's done in 3.4), though the related Win32 API calls used by 3.2 are all deprecated, so it's not the ultimate solution. The goal of these manifests is to inform Windows that the user apps were actually developed to be compatible with the listed Windows versions. hbmk2 is not in the position to decide about that, so I don't think is its job to automatically insert any manifest by default. As stated earlier, MSYS2 will automatically insert a default manifest want it or not, so using its MINGW-W64 C compiler toolchain is one solution to resolve this automatically (by now even binutils have been fixed to deal with the above linked side-effects). The other is to supply the manifest yourself. |
@vszakats the proposal is not to hbmk2 or harbour automatically insert the manifest for end user binaries (I strongly agree with you), but to harbour.exe itself (or any other core binary that shows any OS version information) So the commands harbour -build or hbmk2 -build can show correct OS info. |
@alencar For Harbour's own binaries I definitely agree, 3.4 is doing that exactly: https://github.com/vszakats/harbour-core/blob/4aa1879caeb1d623616c403054ddde2a157a33b8/package/harbour.rc#L59-L109 |
"harbour -build" should be correct after set of changes ending with 8545d4b |
I built Harbour on my Win10.
harbour -build wrongly says that my Platform is Win 8
The text was updated successfully, but these errors were encountered: