aboutsummaryrefslogtreecommitdiffstats
path: root/games/renpy/files/patch-system-fribidi
blob: 56ed9a9b93ac8f5df6aae4d452df4e410ca1209a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Partially revert 4a9efc0cab7d as module/fribidi-src/ is missing from source archive.

gen/_renpybidi.c:564:10: fatal error: 'fribidi.h' file not found
#include "fribidi.h"
         ^

--- module/renpybidicore.c.orig	2019-12-14 15:31:48.000000000 +0000
+++ module/renpybidicore.c	2021-01-01 15:45:23.115935083 +0000
@@ -1,10 +1,6 @@
 #include <Python.h>
 
-#ifdef RENPY_BUILD
 #include <fribidi.h>
-#else
-#include <fribidi-src/lib/fribidi.h>
-#endif
 
 #include <stdlib.h>
 
--- module/setup.py.orig	2018-07-11 04:29:32 UTC
+++ module/setup.py
@@ -92,6 +92,7 @@ has_avresample = library("avresample", optional=True)
 has_swresample = library("swresample", optional=True)
 has_swscale = library("swscale", optional=True)
 library("freetype")
+has_fribidi = include("fribidi.h", directory="fribidi", optional=True) and library("fribidi", optional=True)
 library("z")
 has_libglew = library("GLEW", optional=True)
 has_libglew32 = library("glew32", optional=True)
@@ -105,6 +106,16 @@ else:
     sdl = [ 'SDL2' ]
     png = 'png'
 
+
+if has_fribidi and (not android) and (not ios):
+    try:
+        # Some versions of fribidi require glib, and it doesn't hurt to include it in
+        # our path.
+        glib_flags = subprocess.check_output(["pkg-config", "--cflags", "glib-2.0"])
+        setuplib.extra_compile_args.extend(glib_flags.split())
+    except:
+        pass
+
 steam_sdk = os.environ.get("RENPY_STEAM_SDK", None)
 steam_platform = os.environ.get("RENPY_STEAM_PLATFORM", "")
 
@@ -134,11 +145,12 @@ renpybidicore.c
 """.split()
 cython(
     "_renpybidi",
-    FRIBIDI_SOURCES,
-    includes=[
+    has_fribidi and [ i for i in FRIBIDI_SOURCES if 'fribidi-src' not in i ] or FRIBIDI_SOURCES,
+    includes=has_fribidi and [] or [
         BASE + "/fribidi-src/",
         BASE + "/fribidi-src/lib/",
         ],
+    libs=has_fribidi and ['fribidi'] or [],
     define_macros=[
         ("FRIBIDI_ENTRY", ""),
         ("HAVE_CONFIG_H", "1"),