-
Notifications
You must be signed in to change notification settings - Fork 22
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
Add MingW64 makefile #18
Conversation
The code just needs a few adjustments some are actually corrections:
* Makefile for 64bit compilation * manifest in Clavier.rc * '#ifdef __GNUCC__' for MSVC/MinGW incompatibilities
* Makefile for 64bit compilation * manifest in Clavier.rc * '#ifdef __GNUCC__' for MSVC/MinGW incompatibilities
* Makefile for 64bit compilation * manifest in Clavier.rc * '#ifdef __GNUCC__' for MSVC/MinGW incompatibilities
Thanks for doing all the legwork, this is very helpful! Starting from your patch I was able to achieve full MinGW compatibility, draft in the mingw branch: https://github.com/guilryder/clavier-plus/tree/mingw If it looks good to you I will do another pass on the flags, warnings, etc. and merge the branch into main. Details:
The Makefile doesn't cover the tests and compiles all the files at once therefore is a bit slow (especially without precompiled headers), but that's good enough if not used for iterative development. Tweaks:
|
Very nice, for me it works.
Strangely it does not work with PowerShell not sure why (works with sh and cmd.exe). So you could just add in the comments that the About the .manifest it seems that you do not use dpi-awareness is there a reason for this?
This way I get theme applied plus nice dpi-scaling on non-96dpi monitors plus; thanks to the |
* Makefile for 64bit compilation * manifest in Clavier.rc * '#ifdef __GNUCC__' for MSVC/MinGW incompatibilities
Thanks, it has been a while since I've written a Makefile and it's coming back slowly... The shell executes About the manifest: I simply didn't know about DPI awareness, as I use only 96 DPI displays or configured as such :) I tested with 2 monitors at different DPI. Clavier+ seems to work fine in |
The real improvement on dpi is the per-monitor dpi scaling. On older windows versions dpi scaling has always been a thing (even in Win3.1). However newer Windows assumes that by default your program can only handle 96dpi. Older Windows versions always assumed your program was dpi aware. Back in the Win3x days most programs where careful with dpi because on most monitors pixels where not even square so you had different vertical and horizontal dpi settings, however starting with Windows 95 the default dpi setting for 99% of people was 96dpi. Because it stayed this way for so long Microsoft felt the need to let the program imagine it is in 96dpi and rescale accordingly for the display. I advise you keep the per-monitor v1 fallback, because Windows 8 only supports this one. |
Tested DPI awareness, added in 5477085. |
First I would like to thanks you for this program, it is quite helpful for me!
I wanted to make my own build (I like to have control on the binary), so I tried to build with MinGW64 and encountered very few problems, so I decided to share them.
The code just needed a few adjustments to build on MinGW64 some are actually corrections.
The main limitation is that mingw64 does not have a complete header+lib for the PROPSYS.DLL file. nor for the
CLSID_InternetShortcut
I just made a define in the source to supress inclusion of PROPSYS stuff.hopefully MinGW64 gets his headers and lib files updated at some point...
I think supporting more than one compiler is useful for people to be able to easily help with development as well as giving more options to the users.
Fixes (ctd = C++17)