@@ -2,24 +2,33 @@ set(FREETYPE_DIR ${DAEMON_DIR}/libs/freetype)
2
2
set (FREETYPE_INCLUDE_DIRS ${FREETYPE_DIR} /include )
3
3
set (FREETYPE_LIBRARIES freetype)
4
4
5
- option (FT_DISABLE_BROTLI "Disable Brotli" ON )
6
- option (FT_DISABLE_BZIP2 "Disable bzip2" ON )
7
- option (FT_DISABLE_HARFBUZZ "Disable HarfBuzz" ON )
8
- option (FT_DISABLE_PNG "Disable PNG" ON )
9
-
10
5
if (PREFER_EXTERNAL_LIBS AND NOT NACL)
11
6
set (FREETYPE_INTERNAL_ZLIB OFF )
12
7
else ()
13
8
set (FREETYPE_INTERNAL_ZLIB ON )
14
9
endif ()
15
10
16
- set (FT_DISABLE_ZLIB ${FREETYPE_INTERNAL_ZLIB} CACHE BOOL "Disable external zlib" FORCE)
11
+ if (NOT ${FREETYPE_INTERNAL_ZLIB} )
12
+ find_package (ZLIB REQUIRED)
13
+ set (FREETYPE_LIBRARIES ${FREETYPE_LIBRARIES} ${ZLIB_LIBRARIES} )
14
+ endif ()
15
+
16
+ # Do not re-add the target if already set to be built.
17
+ # For example both the engine and a native game may request Freetype
18
+ # to be built, but we need to only build once for both.
19
+ if (NOT TARGET freetype)
20
+ option (FT_DISABLE_BROTLI "Disable Brotli" ON )
21
+ option (FT_DISABLE_BZIP2 "Disable bzip2" ON )
22
+ option (FT_DISABLE_HARFBUZZ "Disable HarfBuzz" ON )
23
+ option (FT_DISABLE_PNG "Disable PNG" ON )
24
+ set (FT_DISABLE_ZLIB ${FREETYPE_INTERNAL_ZLIB} CACHE BOOL "Disable external zlib" FORCE)
17
25
18
- add_subdirectory (${FREETYPE_DIR} )
26
+ add_subdirectory (${FREETYPE_DIR} )
19
27
20
- mark_as_advanced (FT_DISABLE_BROTLI)
21
- mark_as_advanced (FT_DISABLE_BZIP2)
22
- mark_as_advanced (FT_DISABLE_HARFBUZZ)
23
- mark_as_advanced (FT_DISABLE_PNG)
24
- mark_as_advanced (FT_DISABLE_ZLIB)
25
- mark_as_advanced (FT_ENABLE_ERROR_STRINGS)
28
+ mark_as_advanced (FT_DISABLE_BROTLI)
29
+ mark_as_advanced (FT_DISABLE_BZIP2)
30
+ mark_as_advanced (FT_DISABLE_HARFBUZZ)
31
+ mark_as_advanced (FT_DISABLE_PNG)
32
+ mark_as_advanced (FT_DISABLE_ZLIB)
33
+ mark_as_advanced (FT_ENABLE_ERROR_STRINGS)
34
+ endif ()
0 commit comments