@@ -2,24 +2,33 @@ set(FREETYPE_DIR ${DAEMON_DIR}/libs/freetype)
22set (FREETYPE_INCLUDE_DIRS ${FREETYPE_DIR} /include )
33set (FREETYPE_LIBRARIES freetype)
44
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-
105if (PREFER_EXTERNAL_LIBS AND NOT NACL)
116 set (FREETYPE_INTERNAL_ZLIB OFF )
127else ()
138 set (FREETYPE_INTERNAL_ZLIB ON )
149endif ()
1510
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)
1725
18- add_subdirectory (${FREETYPE_DIR} )
26+ add_subdirectory (${FREETYPE_DIR} )
1927
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