haskellPackages.SDL-ttf: fix build on darwin

SDL_main.h which is included from SDL_ttf.h contains a #define which redefines
main to SDL_main. This has to do with the way SDL binaries are linked and
executed on darwin which is explained here [1]. However this is bad news for
hsc2hs intermediate C sources which in this case only to gather version
information from the headers and not to run a full SDL application.

Thus compilation would fail due to this issue which we can avoid by redefining
main to main again after including the header.

[1]: http://www.ariis.it/link/repos/sdl-bindings/hssdl-image/MACOSX
This commit is contained in:
sternenseemann 2021-08-06 01:40:03 +02:00 committed by sterni
parent 9a39115172
commit 9a32fd5c49
2 changed files with 12 additions and 0 deletions

View file

@ -206,4 +206,7 @@ self: super: {
'' + (drv.postPatch or "");
});
# Work around SDL_main.h redefining main to SDL_main
SDL-ttf = appendPatch super.SDL-ttf ./patches/SDL-ttf-darwin-hsc.patch;
}

View file

@ -0,0 +1,9 @@
--- SDL-ttf-0.6.3.0/Graphics/UI/SDL/TTF/Version.hsc.orig 2021-08-06 01:31:39.000000000 +0200
+++ SDL-ttf-0.6.3.0/Graphics/UI/SDL/TTF/Version.hsc 2021-08-06 01:32:03.000000000 +0200
@@ -1,4 +1,6 @@
#include "SDL_ttf.h"
+-- override SDL_main.h redefining main to SDL_main on darwin
+#define main main
module Graphics.UI.SDL.TTF.Version
( compiledFor
, linkedWith