9f33b387 |
1 | # freetype |
2 | |
3321f684 |
3 | if (NOT DEFINED INSTALL_FREETYPE AND BUILD_SHARED_LIBS) |
316d77d9 |
4 | set (INSTALL_FREETYPE OFF CACHE BOOL "${INSTALL_FREETYPE_DESCR}") |
9f33b387 |
5 | endif() |
6 | |
7 | if (NOT DEFINED 3RDPARTY_FREETYPE_DIR) |
8 | set (3RDPARTY_FREETYPE_DIR "" CACHE PATH "The directory containing freetype") |
9 | endif() |
10 | |
fa0cbe55 |
11 | # include occt macros. compiler_bitness, os_wiht_bit, compiler |
19286d7c |
12 | OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_macros") |
9f33b387 |
13 | |
14 | OCCT_MAKE_COMPILER_SHORT_NAME() |
15 | OCCT_MAKE_COMPILER_BITNESS() |
16 | |
e713baee |
17 | # specify freetype folder in connectin with 3RDPARTY_DIR |
18 | if (3RDPARTY_DIR AND EXISTS "${3RDPARTY_DIR}") |
19 | #CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_DIR 3RDPARTY_FREETYPE_DIR PATH "The directory containing freetype") |
20 | |
21 | if (NOT 3RDPARTY_FREETYPE_DIR OR NOT EXISTS "${3RDPARTY_FREETYPE_DIR}") |
22 | FIND_PRODUCT_DIR ("${3RDPARTY_DIR}" FREETYPE FREETYPE_DIR_NAME) |
9f33b387 |
23 | if (FREETYPE_DIR_NAME) |
24 | set (3RDPARTY_FREETYPE_DIR "${3RDPARTY_DIR}/${FREETYPE_DIR_NAME}" CACHE PATH "The directory containing freetype" FORCE) |
25 | endif() |
26 | endif() |
e713baee |
27 | else() |
28 | #set (3RDPARTY_FREETYPE_DIR "" CACHE PATH "The directory containing freetype" FORCE) |
9f33b387 |
29 | endif() |
30 | |
e713baee |
31 | # define required freetype variables |
9f33b387 |
32 | if (NOT DEFINED 3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build) |
33 | set (3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build "" CACHE FILEPATH "the path of ft2build.h") |
34 | endif() |
35 | |
36 | if (NOT DEFINED 3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2) |
37 | set (3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2 "" CACHE FILEPATH "the path of freetype2") |
38 | endif() |
39 | |
3321f684 |
40 | if (BUILD_SHARED_LIBS) |
41 | if (NOT DEFINED 3RDPARTY_FREETYPE_LIBRARY OR NOT 3RDPARTY_FREETYPE_LIBRARY_DIR OR NOT EXISTS "${3RDPARTY_FREETYPE_LIBRARY_DIR}") |
42 | set (3RDPARTY_FREETYPE_LIBRARY "" CACHE FILEPATH "freetype library" FORCE) |
43 | endif() |
9f33b387 |
44 | |
3321f684 |
45 | if (NOT DEFINED 3RDPARTY_FREETYPE_LIBRARY_DIR) |
46 | set (3RDPARTY_FREETYPE_LIBRARY_DIR "" CACHE PATH "The directory containing freetype library") |
47 | endif() |
9f33b387 |
48 | |
3321f684 |
49 | if (WIN32) |
50 | if (NOT DEFINED 3RDPARTY_FREETYPE_DLL OR NOT 3RDPARTY_FREETYPE_DLL_DIR OR NOT EXISTS "${3RDPARTY_FREETYPE_DLL_DIR}") |
51 | set (3RDPARTY_FREETYPE_DLL "" CACHE FILEPATH "freetype shared library" FORCE) |
52 | endif() |
9f33b387 |
53 | endif() |
9f33b387 |
54 | |
3321f684 |
55 | if (WIN32) |
56 | if (NOT DEFINED 3RDPARTY_FREETYPE_DLL_DIR) |
57 | set (3RDPARTY_FREETYPE_DLL_DIR "" CACHE PATH "The directory containing freetype shared library") |
58 | endif() |
9f33b387 |
59 | endif() |
60 | endif() |
61 | |
e713baee |
62 | # check 3RDPARTY_FREETYPE_ paths for consistency with specified 3RDPARTY_FREETYPE_DIR |
63 | if (3RDPARTY_FREETYPE_DIR AND EXISTS "${3RDPARTY_FREETYPE_DIR}") |
112139f0 |
64 | CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_FREETYPE_DIR 3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build FILEPATH "The directory containing ft2build.h header") |
65 | CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_FREETYPE_DIR 3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2 FILEPATH "The directory containing ftheader.h header") |
3321f684 |
66 | if (BUILD_SHARED_LIBS) |
67 | CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_FREETYPE_DIR 3RDPARTY_FREETYPE_LIBRARY FILEPATH "the path to freetype library") |
9f33b387 |
68 | |
3321f684 |
69 | if (3RDPARTY_FREETYPE_LIBRARY AND EXISTS "${3RDPARTY_FREETYPE_LIBRARY}") |
70 | get_filename_component (3RDPARTY_FREETYPE_LIBRARY_DIR "${3RDPARTY_FREETYPE_LIBRARY}" PATH) |
71 | set (3RDPARTY_FREETYPE_LIBRARY_DIR "${3RDPARTY_FREETYPE_LIBRARY_DIR}" CACHE PATH "The directory containing freetype library" FORCE) |
72 | else() |
73 | CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_FREETYPE_DIR 3RDPARTY_FREETYPE_LIBRARY_DIR PATH "The directory containing freetype library") |
74 | endif() |
9f33b387 |
75 | |
3321f684 |
76 | if (WIN32) |
77 | CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_FREETYPE_DIR 3RDPARTY_FREETYPE_DLL FILEPATH "the path to freetype shared library") |
e713baee |
78 | |
3321f684 |
79 | if (3RDPARTY_FREETYPE_DLL AND EXISTS "${3RDPARTY_FREETYPE_DLL}") |
80 | get_filename_component (3RDPARTY_FREETYPE_DLL_DIR "${3RDPARTY_FREETYPE_DLL}" PATH) |
81 | set (3RDPARTY_FREETYPE_DLL_DIR "${3RDPARTY_FREETYPE_DLL_DIR}" CACHE PATH "The directory containing freetype shared library" FORCE) |
82 | else() |
83 | CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_FREETYPE_DIR 3RDPARTY_FREETYPE_DLL_DIR PATH "The directory containing freetype shared library") |
84 | endif() |
9f33b387 |
85 | endif() |
86 | endif() |
87 | endif() |
88 | |
e713baee |
89 | # the FIRST step in search for freetype library and header folders (built-in search engine) |
90 | |
91 | # execute built-in search engine to seek freetype |
92 | set (IS_BUILTIN_SEARCH_REQUIRED OFF) |
93 | if (NOT 3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build OR NOT EXISTS "${3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build}") |
94 | set (IS_BUILTIN_SEARCH_REQUIRED ON) |
95 | elseif (NOT 3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2 OR NOT EXISTS "${3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2}") |
96 | set (IS_BUILTIN_SEARCH_REQUIRED ON) |
97 | elseif (NOT 3RDPARTY_FREETYPE_LIBRARY OR NOT EXISTS "${3RDPARTY_FREETYPE_LIBRARY}") |
98 | set (IS_BUILTIN_SEARCH_REQUIRED ON) |
99 | #elseif (WIN32) |
100 | #if (NOT 3RDPARTY_FREETYPE_DLL OR NOT EXISTS "${3RDPARTY_FREETYPE_DLL}") |
101 | # set (IS_BUILTIN_SEARCH_REQUIRED ON) |
102 | #endif() |
9f33b387 |
103 | endif() |
104 | |
e713baee |
105 | if (IS_BUILTIN_SEARCH_REQUIRED) |
9f33b387 |
106 | |
e713baee |
107 | # use 3RDPARTY_FREETYPE_DIR if it is specified for freetype search |
108 | if (3RDPARTY_FREETYPE_DIR AND EXISTS "${3RDPARTY_FREETYPE_DIR}") |
109 | set (CACHED_FREETYPE_DIR $ENV{FREETYPE_DIR}) |
110 | set (ENV{FREETYPE_DIR} "${3RDPARTY_FREETYPE_DIR}") |
9f33b387 |
111 | endif() |
9f33b387 |
112 | |
cb77bfc4 |
113 | unset (FREETYPE_LIBRARY_RELEASE) |
e713baee |
114 | find_package(Freetype) |
19286d7c |
115 | |
cb77bfc4 |
116 | # Only for UNIX (not APPLE) |
117 | if ((NOT WIN32) AND (NOT APPLE)) |
118 | # To avoid linker error on Ubuntu 18.04 and others linux distributives we should |
119 | # link with freetype library, compiled as Position Independent Code (PIC), |
120 | # for example, with shared object. |
121 | if ((DEFINED FREETYPE_LIBRARY_RELEASE) AND (NOT "${FREETYPE_LIBRARY_RELEASE}" STREQUAL "") AND (EXISTS "${FREETYPE_LIBRARY_RELEASE}")) |
122 | string (REPLACE "\.a" "\.so" FREETYPE_LIBRARY_RELEASE "${FREETYPE_LIBRARY_RELEASE}") |
123 | endif() |
124 | endif() |
125 | |
e713baee |
126 | # restore ENV{FREETYPE_DIR} |
127 | if (3RDPARTY_FREETYPE_DIR AND EXISTS "${3RDPARTY_FREETYPE_DIR}") |
128 | set (ENV{FREETYPE_DIR} ${CACHED_FREETYPE_DIR}) |
9f33b387 |
129 | endif() |
130 | |
e713baee |
131 | # check the found paths for consistency with specified 3RDPARTY_FREETYPE_DIR |
132 | if (3RDPARTY_FREETYPE_DIR AND EXISTS "${3RDPARTY_FREETYPE_DIR}") |
112139f0 |
133 | CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_FREETYPE_DIR FREETYPE_INCLUDE_DIR_ft2build FILEPATH "The directory containing ft2build.h header") |
134 | CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_FREETYPE_DIR FREETYPE_INCLUDE_DIR_freetype2 FILEPATH "The directory containing ftheader.h header") |
3321f684 |
135 | if (BUILD_SHARED_LIBS) |
cb77bfc4 |
136 | CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_FREETYPE_DIR FREETYPE_LIBRARY_RELEASE FILEPATH "freetype library") |
3321f684 |
137 | endif() |
e713baee |
138 | endif() |
9f33b387 |
139 | |
e713baee |
140 | # assign the found paths to corresponding 3RDPARTY_FREETYPE_ variables |
141 | if (NOT 3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build OR NOT EXISTS "${3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build}") |
142 | if (FREETYPE_INCLUDE_DIR_ft2build AND EXISTS "${FREETYPE_INCLUDE_DIR_ft2build}") |
112139f0 |
143 | set (3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build "${FREETYPE_INCLUDE_DIR_ft2build}" CACHE FILEPATH "The directory containing ft2build.h header" FORCE) |
e713baee |
144 | endif() |
145 | endif() |
9f33b387 |
146 | |
e713baee |
147 | if (NOT 3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2 OR NOT EXISTS "${3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2}") |
148 | if (FREETYPE_INCLUDE_DIR_freetype2 AND EXISTS "${FREETYPE_INCLUDE_DIR_freetype2}") |
112139f0 |
149 | set (3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2 "${FREETYPE_INCLUDE_DIR_freetype2}" CACHE FILEPATH "The directory containing ftheader.h header" FORCE) |
9f33b387 |
150 | endif() |
e713baee |
151 | endif() |
19286d7c |
152 | |
3321f684 |
153 | if (BUILD_SHARED_LIBS) |
154 | if (NOT 3RDPARTY_FREETYPE_LIBRARY OR NOT EXISTS "${3RDPARTY_FREETYPE_LIBRARY}") |
cb77bfc4 |
155 | if (FREETYPE_LIBRARY_RELEASE AND EXISTS "${FREETYPE_LIBRARY_RELEASE}") |
156 | set (3RDPARTY_FREETYPE_LIBRARY "${FREETYPE_LIBRARY_RELEASE}" CACHE FILEPATH "The path to freetype library" FORCE) |
3321f684 |
157 | endif() |
9f33b387 |
158 | endif() |
e713baee |
159 | |
3321f684 |
160 | if (3RDPARTY_FREETYPE_LIBRARY AND EXISTS "${3RDPARTY_FREETYPE_LIBRARY}") |
161 | get_filename_component (3RDPARTY_FREETYPE_LIBRARY_DIR "${3RDPARTY_FREETYPE_LIBRARY}" PATH) |
162 | set (3RDPARTY_FREETYPE_LIBRARY_DIR "${3RDPARTY_FREETYPE_LIBRARY_DIR}" CACHE PATH "The directory containing freetype library" FORCE) |
163 | else() |
164 | set (3RDPARTY_FREETYPE_LIBRARY_DIR "" CACHE PATH "The directory containing freetype library" FORCE) |
165 | endif() |
e713baee |
166 | endif() |
9f33b387 |
167 | endif() |
168 | |
e713baee |
169 | # the SECOND step in search for freetype library and header folders (additional search algorithms) |
9f33b387 |
170 | |
e713baee |
171 | # ft2build.h |
172 | if (NOT 3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build OR NOT EXISTS "${3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build}") |
173 | set (FT2BUILD_NAMES ft2build.h config/ft2build.h freetype/config/ft2build.h) |
9f33b387 |
174 | |
e713baee |
175 | # set 3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build as notfound, otherwise find_library can't assign a new value to 3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build |
112139f0 |
176 | set (3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build "3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build-NOTFOUND" CACHE FILEPATH "The directory containing ft2build.h header" FORCE) |
e713baee |
177 | |
178 | # cmake (version < 3.0) doesn't find ft2build.h of freetype (version is >= 2.5.1) |
179 | # do search taking into account freetype structure of 2.5.1 version |
180 | if (3RDPARTY_FREETYPE_DIR AND EXISTS "${3RDPARTY_FREETYPE_DIR}") |
181 | find_path (3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build NAMES ${FT2BUILD_NAMES} |
182 | PATHS ${3RDPARTY_FREETYPE_DIR} |
183 | PATH_SUFFIXES include freetype2 include/freetype2 |
184 | CMAKE_FIND_ROOT_PATH_BOTH |
185 | NO_DEFAULT_PATH) |
186 | else() |
187 | find_path (3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build NAMES ${FT2BUILD_NAMES} |
188 | PATHS /usr/X11R6 /usr/local/X11R6 /usr/local/X11 /usr/freeware |
189 | PATH_SUFFIXES include/freetype2 include freetype2 |
190 | CMAKE_FIND_ROOT_PATH_BOTH) |
9f33b387 |
191 | endif() |
192 | endif() |
193 | |
e713baee |
194 | if (3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build AND EXISTS "${3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build}") |
9f33b387 |
195 | list (APPEND 3RDPARTY_INCLUDE_DIRS "${3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build}") |
196 | else() |
197 | list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build) |
e713baee |
198 | |
112139f0 |
199 | set (3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build "" CACHE FILEPATH "The directory containing ft2build.h header" FORCE) |
e713baee |
200 | endif() |
201 | |
202 | # ftheader.h |
203 | if (NOT 3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2 OR NOT EXISTS "${3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2}") |
204 | set (FTHEADER_NAMES ftheader.h config/ftheader.h freetype/config/ftheader.h) |
205 | |
206 | # set 3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2 as notfound, otherwise find_library can't assign a new value to 3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2 |
112139f0 |
207 | set (3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2 "3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2-NOTFOUND" CACHE FILEPATH "The directory containing ftheader.h header" FORCE) |
e713baee |
208 | |
209 | if (3RDPARTY_FREETYPE_DIR AND EXISTS "${3RDPARTY_FREETYPE_DIR}") |
210 | find_path (3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2 NAMES ${FTHEADER_NAMES} |
211 | HINTS ${3RDPARTY_FREETYPE_DIR} |
212 | PATH_SUFFIXES include/freetype2 include freetype2 |
213 | CMAKE_FIND_ROOT_PATH_BOTH |
214 | NO_DEFAULT_PATH) |
215 | else() |
216 | find_path (3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2 NAMES ${FTHEADER_NAMES} |
217 | PATHS /usr/X11R6 /usr/local/X11R6 /usr/local/X11 /usr/freeware |
218 | PATH_SUFFIXES include/freetype2 include freetype2 |
219 | CMAKE_FIND_ROOT_PATH_BOTH) |
220 | endif() |
9f33b387 |
221 | endif() |
222 | |
e713baee |
223 | if (3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2 AND EXISTS "${3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2}") |
9f33b387 |
224 | list (APPEND 3RDPARTY_INCLUDE_DIRS "${3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2}") |
225 | else() |
226 | list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2) |
e713baee |
227 | |
112139f0 |
228 | set (3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2 "" CACHE FILEPATH "The directory containing ftheader.h header" FORCE) |
9f33b387 |
229 | endif() |
230 | |
e713baee |
231 | # freetype library |
0553a8ea |
232 | #if (BUILD_SHARED_LIBS) |
3321f684 |
233 | if (NOT 3RDPARTY_FREETYPE_LIBRARY OR NOT EXISTS "${3RDPARTY_FREETYPE_LIBRARY}") |
cb77bfc4 |
234 | set (CMAKE_FIND_LIBRARY_SUFFIXES .lib .so .dylib) |
9f33b387 |
235 | |
3321f684 |
236 | set (FREETYPE_PATH_SUFFIXES lib) |
237 | if (ANDROID) |
238 | set (FREETYPE_PATH_SUFFIXES ${FREETYPE_PATH_SUFFIXES} libs/${ANDROID_ABI}) |
239 | endif() |
e713baee |
240 | |
3321f684 |
241 | # set 3RDPARTY_FREETYPE_LIBRARY as notfound, otherwise find_library can't assign a new value to 3RDPARTY_FREETYPE_LIBRARY |
242 | set (3RDPARTY_FREETYPE_LIBRARY "3RDPARTY_FREETYPE_LIBRARY-NOTFOUND" CACHE FILEPATH "The path to freetype library" FORCE) |
e713baee |
243 | |
244 | if (3RDPARTY_FREETYPE_DIR AND EXISTS "${3RDPARTY_FREETYPE_DIR}") |
4fecc365 |
245 | find_library (3RDPARTY_FREETYPE_LIBRARY ${CSF_FREETYPE} |
3321f684 |
246 | PATHS "${3RDPARTY_FREETYPE_LIBRARY_DIR}" "${3RDPARTY_FREETYPE_DIR}" |
247 | PATH_SUFFIXES ${FREETYPE_PATH_SUFFIXES} |
248 | CMAKE_FIND_ROOT_PATH_BOTH |
249 | NO_DEFAULT_PATH) |
e713baee |
250 | else() |
4fecc365 |
251 | find_library (3RDPARTY_FREETYPE_LIBRARY ${CSF_FREETYPE} |
3321f684 |
252 | PATH_SUFFIXES ${FREETYPE_PATH_SUFFIXES} |
253 | CMAKE_FIND_ROOT_PATH_BOTH) |
e713baee |
254 | endif() |
255 | |
cb77bfc4 |
256 | # Only for UNIX (not APPLE) |
257 | if ((NOT WIN32) AND (NOT APPLE)) |
258 | # To avoid linker error on Ubuntu 18.04 and some others linux distributives we should |
259 | # link with freetype library, compiled as Position Independent Code (PIC), |
260 | # for example, with shared object. |
261 | if ((DEFINED 3RDPARTY_FREETYPE_LIBRARY) AND (NOT "${3RDPARTY_FREETYPE_LIBRARY}" STREQUAL "") AND (EXISTS "${3RDPARTY_FREETYPE_LIBRARY}")) |
262 | string (REPLACE "\.a" "\.so" 3RDPARTY_FREETYPE_LIBRARY "${3RDPARTY_FREETYPE_LIBRARY}") |
263 | endif() |
264 | endif() |
265 | |
3321f684 |
266 | if (3RDPARTY_FREETYPE_LIBRARY AND EXISTS "${3RDPARTY_FREETYPE_LIBRARY}") |
267 | get_filename_component (3RDPARTY_FREETYPE_LIBRARY_DIR "${3RDPARTY_FREETYPE_LIBRARY}" PATH) |
268 | set (3RDPARTY_FREETYPE_LIBRARY_DIR "${3RDPARTY_FREETYPE_LIBRARY_DIR}" CACHE PATH "The directory containing freetype library" FORCE) |
e713baee |
269 | else() |
3321f684 |
270 | set (3RDPARTY_FREETYPE_LIBRARY_DIR "" CACHE PATH "The directory containing freetype library" FORCE) |
e713baee |
271 | endif() |
272 | endif() |
273 | |
3321f684 |
274 | if (3RDPARTY_FREETYPE_LIBRARY_DIR AND EXISTS "${3RDPARTY_FREETYPE_LIBRARY_DIR}") |
275 | list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_FREETYPE_LIBRARY_DIR}") |
94829f84 |
276 | else() |
0553a8ea |
277 | list (APPEND 3RDPARTY_NO_LIBS 3RDPARTY_FREETYPE_LIBRARY_DIR) |
3321f684 |
278 | |
279 | set (3RDPARTY_FREETYPE_LIBRARY "" CACHE FILEPATH "The path to freetype library" FORCE) |
9f33b387 |
280 | endif() |
9f33b387 |
281 | |
3321f684 |
282 | # freetype shared library |
283 | if (WIN32) |
284 | if (NOT 3RDPARTY_FREETYPE_DLL OR NOT EXISTS "${3RDPARTY_FREETYPE_DLL}") |
285 | |
286 | set (CMAKE_FIND_LIBRARY_SUFFIXES .dll) |
e713baee |
287 | |
3321f684 |
288 | # set 3RDPARTY_FREETYPE_DLL as notfound, otherwise find_library can't assign a new value to 3RDPARTY_FREETYPE_DLL |
289 | set (3RDPARTY_FREETYPE_DLL "3RDPARTY_FREETYPE_DLL-NOTFOUND" CACHE FILEPATH "The path to freetype shared library" FORCE) |
096ef695 |
290 | |
3321f684 |
291 | if (3RDPARTY_FREETYPE_DIR AND EXISTS "${3RDPARTY_FREETYPE_DIR}") |
4fecc365 |
292 | find_library (3RDPARTY_FREETYPE_DLL ${CSF_FREETYPE} |
3321f684 |
293 | PATHS "${3RDPARTY_FREETYPE_DIR}" |
294 | PATH_SUFFIXES bin |
295 | NO_DEFAULT_PATH) |
296 | else() |
4fecc365 |
297 | find_library (3RDPARTY_FREETYPE_DLL ${CSF_FREETYPE} |
3321f684 |
298 | PATH_SUFFIXES bin) |
299 | endif() |
300 | |
301 | if (3RDPARTY_FREETYPE_DLL AND EXISTS "${3RDPARTY_FREETYPE_DLL}") |
302 | get_filename_component (3RDPARTY_FREETYPE_DLL_DIR "${3RDPARTY_FREETYPE_DLL}" PATH) |
303 | set (3RDPARTY_FREETYPE_DLL_DIR "${3RDPARTY_FREETYPE_DLL_DIR}" CACHE PATH "The directory containing freetype library" FORCE) |
304 | else() |
305 | set (3RDPARTY_FREETYPE_DLL_DIR "" CACHE PATH "The directory containing freetype shared library" FORCE) |
306 | |
307 | set (3RDPARTY_FREETYPE_DLL "" CACHE FILEPATH "freetype shared library" FORCE) |
308 | endif() |
096ef695 |
309 | endif() |
fa0cbe55 |
310 | |
3321f684 |
311 | if (3RDPARTY_FREETYPE_DLL_DIR OR EXISTS "${3RDPARTY_FREETYPE_DLL_DIR}") |
312 | list (APPEND 3RDPARTY_DLL_DIRS "${3RDPARTY_FREETYPE_DLL_DIR}") |
096ef695 |
313 | else() |
0553a8ea |
314 | list (APPEND 3RDPARTY_NO_DLLS 3RDPARTY_FREETYPE_DLL_DIR) |
096ef695 |
315 | endif() |
9f33b387 |
316 | endif() |
0a66e59d |
317 | |
3321f684 |
318 | # install instructions |
319 | if (INSTALL_FREETYPE) |
320 | OCCT_MAKE_OS_WITH_BITNESS() |
321 | |
322 | if (WIN32) |
323 | if (SINGLE_GENERATOR) |
d26375e2 |
324 | install (FILES "${3RDPARTY_FREETYPE_DLL}" DESTINATION "${INSTALL_DIR_BIN}") |
3321f684 |
325 | else() |
326 | install (FILES "${3RDPARTY_FREETYPE_DLL}" |
327 | CONFIGURATIONS Release |
d26375e2 |
328 | DESTINATION "${INSTALL_DIR_BIN}") |
3321f684 |
329 | install (FILES "${3RDPARTY_FREETYPE_DLL}" |
330 | CONFIGURATIONS RelWithDebInfo |
d26375e2 |
331 | DESTINATION "${INSTALL_DIR_BIN}i") |
3321f684 |
332 | install (FILES "${3RDPARTY_FREETYPE_DLL}" |
333 | CONFIGURATIONS Debug |
d26375e2 |
334 | DESTINATION "${INSTALL_DIR_BIN}d") |
3321f684 |
335 | endif() |
336 | else() |
337 | get_filename_component(3RDPARTY_FREETYPE_LIBRARY_ABS ${3RDPARTY_FREETYPE_LIBRARY} REALPATH) |
338 | get_filename_component(3RDPARTY_FREETYPE_LIBRARY_NAME ${3RDPARTY_FREETYPE_LIBRARY} NAME) |
339 | |
340 | if (SINGLE_GENERATOR) |
341 | install (FILES "${3RDPARTY_FREETYPE_LIBRARY_ABS}" |
d26375e2 |
342 | DESTINATION "${INSTALL_DIR_LIB}" |
3321f684 |
343 | RENAME ${3RDPARTY_FREETYPE_LIBRARY_NAME}.6) |
344 | else() |
345 | install (FILES "${3RDPARTY_FREETYPE_LIBRARY_ABS}" |
346 | CONFIGURATIONS Release |
d26375e2 |
347 | DESTINATION "${INSTALL_DIR_LIB}" |
3321f684 |
348 | RENAME ${3RDPARTY_FREETYPE_LIBRARY_NAME}.6) |
349 | install (FILES "${3RDPARTY_FREETYPE_LIBRARY_ABS}" |
350 | CONFIGURATIONS RelWithDebInfo |
d26375e2 |
351 | DESTINATION "${INSTALL_DIR_LIB}i" |
3321f684 |
352 | RENAME ${3RDPARTY_FREETYPE_LIBRARY_NAME}.6) |
353 | install (FILES "${3RDPARTY_FREETYPE_LIBRARY_ABS}" |
354 | CONFIGURATIONS Debug |
d26375e2 |
355 | DESTINATION "${INSTALL_DIR_LIB}d" |
3321f684 |
356 | RENAME ${3RDPARTY_FREETYPE_LIBRARY_NAME}.6) |
357 | endif() |
358 | endif() |
359 | |
360 | set (USED_3RDPARTY_FREETYPE_DIR "") |
0a66e59d |
361 | else() |
3321f684 |
362 | # the library directory for using by the executable |
363 | if (WIN32) |
364 | set (USED_3RDPARTY_FREETYPE_DIR ${3RDPARTY_FREETYPE_DLL_DIR}) |
365 | else() |
366 | set (USED_3RDPARTY_FREETYPE_DIR ${3RDPARTY_FREETYPE_LIBRARY_DIR}) |
367 | endif() |
0a66e59d |
368 | endif() |
0553a8ea |
369 | #endif() |
9f33b387 |
370 | |
371 | # unset all redundant variables |
372 | OCCT_CHECK_AND_UNSET(FREETYPE_INCLUDE_DIR_ft2build) |
373 | OCCT_CHECK_AND_UNSET(FREETYPE_INCLUDE_DIR_freetype2) |
cb77bfc4 |
374 | OCCT_CHECK_AND_UNSET(FREETYPE_LIBRARY_RELEASE) |
9f33b387 |
375 | |
3321f684 |
376 | if (BUILD_SHARED_LIBS) |
377 | mark_as_advanced (3RDPARTY_FREETYPE_LIBRARY 3RDPARTY_FREETYPE_DLL) |
378 | else() |
379 | OCCT_CHECK_AND_UNSET(3RDPARTY_FREETYPE_DLL) |
380 | OCCT_CHECK_AND_UNSET(3RDPARTY_FREETYPE_DLL_DIR) |
381 | OCCT_CHECK_AND_UNSET(3RDPARTY_FREETYPE_LIBRARY) |
382 | OCCT_CHECK_AND_UNSET(3RDPARTY_FREETYPE_LIBRARY_DIR) |
383 | OCCT_CHECK_AND_UNSET(INSTALL_FREETYPE) |
384 | endif() |