File: freetype.cmake

package info (click to toggle)
freespace2 25.0.0%2Brepack-1
  • links: PTS, VCS
  • area: non-free
  • in suites: forky, sid
  • size: 47,232 kB
  • sloc: cpp: 657,500; ansic: 22,305; sh: 293; python: 200; makefile: 198; xml: 181
file content (75 lines) | stat: -rw-r--r-- 2,274 bytes parent folder | download
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75

if(PLATFORM_WINDOWS OR PLATFORM_MAC OR CMAKE_CROSSCOMPILING)
	add_library(freetype INTERFACE)

	# We use prebuilt binaries for windows and mac
	get_prebuilt_path(PREBUILT_PATH)
	set(FREETYPE_ROOT_DIR "${PREBUILT_PATH}/freetype")

	message(${PREBUILT_PATH})

	set(SEARCH_PATH "${FREETYPE_ROOT_DIR}/lib")

	if(PLATFORM_WINDOWS OR CMAKE_CROSSCOMPILING)
		set(LIBNAME "freetype*.dll")
	else()
		set(LIBNAME "libfreetype*")
	endif()

	target_include_directories(freetype INTERFACE "${FREETYPE_ROOT_DIR}/include")

	find_library(freetype_LOCATION
		NAMES freetype freetype281
		PATHS "${SEARCH_PATH}"
		NO_DEFAULT_PATH)

	if (${freetype_LOCATION} STREQUAL "freetype_LOCATION-NOTFOUND" AND CMAKE_CROSSCOMPILING)
		#Just try the default here and see if we can make it work.
		set(freetype_LOCATION "${SEARCH_PATH}/freetype281.lib")
	endif()

	file(GLOB freetype_LIBS "${SEARCH_PATH}/${LIBNAME}")

	get_filename_component(FULL_LIB_PATH "${freetype_LOCATION}" REALPATH)
	target_link_libraries(freetype INTERFACE "${FULL_LIB_PATH}")

	add_target_copy_files("${freetype_LIBS}")
else()
	option(FREETYPE_USE_PRECOMPILED "Use precompiled version of Freetype. If disabled the system libraries will be used." OFF)

	include(util)

	set(USING_PREBUILT_LIBS FALSE)
	set(FREETYPE_ROOT_DIR)

	if(FREETYPE_USE_PRECOMPILED)
		get_prebuilt_path(PREBUILT_PATH)
		set(FREETYPE_ROOT_DIR "${PREBUILT_PATH}/freetype")
		set(USING_PREBUILT_LIBS TRUE)
	else()
		find_package(Freetype)

		if(FREETYPE_FOUND)
			ADD_IMPORTED_LIB(freetype "${FREETYPE_INCLUDE_DIRS}" "${FREETYPE_LIBRARIES}")
		else()
			message("Freetype library could not be found. Using prebuilt library...")

			get_prebuilt_path(PREBUILT_PATH)
			set(FREETYPE_ROOT_DIR "${PREBUILT_PATH}/freetype")
			set(USING_PREBUILT_LIBS TRUE)
		endif()
	endif()

	if(USING_PREBUILT_LIBS)
		message(STATUS "Using pre-built Freetype library.")

		unset(FREETYPE_LOCATION CACHE)
		find_library(FREETYPE_LOCATION freetype PATHS "${FREETYPE_ROOT_DIR}/lib" NO_DEFAULT_PATH)

		get_filename_component(FULL_LIB_PATH "${FREETYPE_LOCATION}" REALPATH)
		ADD_IMPORTED_LIB(freetype "${FREETYPE_ROOT_DIR}/include" "${FULL_LIB_PATH}")

		file(GLOB FREETYPE_LIBS "${FREETYPE_ROOT_DIR}/lib/libfreetype*")
		add_target_copy_files("${FREETYPE_LIBS}")
	endif()
endif()