Closed BillKek closed 3 years ago
Initially there was check like this: https://github.com/tsoding/something/pull/154#discussion_r491973117
There should be MINGW32 macro. But when I compile from cmd
there's no such macro.
And when I try to compile from MSYS2 shell, my pkg-config
can't find sdl2.pc. And pacman
installs it in such location that that I couldn't specify it even manually, because it's path starts from C: drive. But maybe I'm doing something wrong...
It's interesting what's your which pkg-config
and echo $PKG_CONFIG_PATH
on Windows MSYS2 shell.
which pkg-config
gives /usr/bin/pkg-config
.
echo $PKG_CONFIG_PATH
gives /usr/lib/pkgconfig:/usr/share/pkgconfig:/lib/pkgconfig
.
echo $OS
gives Windows_NT
.
echo $__MINGW32__
gives empty.
I compile from cmd
with PATH=C:\msys64\mingw32\bin
for 32bits version by mingw32-make
. Also i compile from cmd
with PATH=C:\msys64\mingw64\bin
for 64bits version with success.
pacman installation for 32 bit version is pacman -S git mingw-w64-i686-toolchain mingw32/mingw-w64-i686-SDL2 mingw32/mingw-w64-i686-SDL2_mixer mingw32/mingw-w64-i686-SDL2_image mingw32/mingw-w64-i686-SDL2_ttf mingw32/mingw-w64-i686-SDL2_net mingw32/mingw-w64-i686-cmake make
. Perhaps there was something else.
__MINGW32__
is compile-time pre-defined compiler macro
automatically added by g++.
I did a test insert in source code:
#ifdef __MINGW32__
#warning __MINGW32__AVAIL
#endif
#ifdef __MINGW64__
#warning __MINGW64__AVAIL
#endif
Warning MINGW32 is raised in compile log in any case. Warning MINGW64 is raised in compile log when mingw64 path used.
Thank you for detailed answer! Oh, in source code I have it too. For some reason I thought that it should work in Makefile. Facepalm That explains everything. So it's impossible to get compiler type in Makefile without executing shell command and stuff.
@kolumb @BillKek so, do I merge this PR or not? :D
Yes :)
@BillKek looks good to me and @kolumb! :+1: Thank you for your contribution!
MINGW32 switch not needed. OS automatically defined in windows. addsuffix ".EXE" is for windows apps.
Tested on mingw64_i686 with msys2. Tested on debian.