"Fossies" - the Fresh Open Source Software Archive 
Member "libgd-2.3.3/CMakeLists.txt" (11 Sep 2021, 10344 Bytes) of package /linux/www/libgd-2.3.3.tar.gz:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
1 CMAKE_MINIMUM_REQUIRED(VERSION 3.7 FATAL_ERROR)
2
3 SET(PACKAGE GD)
4 SET(PACKAGE_NAME GD)
5
6 PROJECT(GD)
7
8 SET(CMAKE_MODULE_PATH "${GD_SOURCE_DIR}/cmake/modules")
9
10 include(gd)
11
12 OPTION(ENABLE_GD_FORMATS "Enable GD image formats" 0)
13 OPTION(ENABLE_PNG "Enable PNG support" 0)
14 OPTION(ENABLE_LIQ "Enable libimagequant support" 0)
15 OPTION(ENABLE_JPEG "Enable JPEG support" 0)
16 OPTION(ENABLE_TIFF "Enable TIFF support" 0)
17 OPTION(ENABLE_ICONV "Enable ICONV support" 0)
18 OPTION(ENABLE_XPM "Enable XPM support" 0)
19 OPTION(ENABLE_FREETYPE "Enable Freetype2 support" 0)
20 OPTION(ENABLE_FONTCONFIG "Enable FontConfig support" 0)
21 OPTION(ENABLE_WEBP "Enable WebP support" 0)
22 OPTION(ENABLE_HEIF "Enable HEIF support" 0)
23 OPTION(ENABLE_AVIF "Enable AVIF support" 0)
24 OPTION(ENABLE_RAQM "Enable RAQM support" 0)
25 OPTION(ENABLE_ASAN "Enable (gcc) ASAN support" 0)
26 OPTION(ENABLE_CPP "Enable CPP GD API" 1)
27 OPTION(VERBOSE_MAKEFILE "Enable CMAKE_VERBOSE_MAKEFILE" 0)
28
29 if (VERBOSE_MAKEFILE)
30 set(CMAKE_VERBOSE_MAKEFILE ON)
31 endif (VERBOSE_MAKEFILE)
32
33 if (BUILD_TEST)
34 ENABLE_TESTING()
35 endif(BUILD_TEST)
36
37 # if you would like to pass C flags to the compiler, then just
38 # - specify -DCMAKE_C_FLAGS=... on invocation of cmake, or
39 # - specify CFLAGS=... on invocation of make
40 IF(CMAKE_COMPILER_IS_GNUCC)
41 # Re-enable sanitize once we find a way to filter out errors in external libraries (like HEIF)
42 if (ENABLE_ASAN)
43 SET(CMAKE_C_FLAGS_DEBUG "-g -Wall -Wextra -O0 -fsanitize=address") # will be added to CMAKE_C_FLAGS when CMAKE_BUILD_TYPE is Debug
44 else (ENABLE_ASAN)
45 SET(CMAKE_C_FLAGS_DEBUG "-g -Wall -Wextra -O0 ") # will be added to CMAKE_C_FLAGS when CMAKE_BUILD_TYPE is Debug
46 endif (ENABLE_ASAN)
47 ENDIF(CMAKE_COMPILER_IS_GNUCC)
48 SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY
49 ${PROJECT_BINARY_DIR}/Bin
50 CACHE PATH
51 "Single Directory for all Libraries"
52 )
53
54 # --------- Setup the Executable output Directory -------------
55 SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY
56 ${PROJECT_BINARY_DIR}/Bin
57 CACHE PATH
58 "Single Directory for all Executables."
59 )
60
61 # --------- Setup the Executable output Directory -------------
62 SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY
63 ${PROJECT_BINARY_DIR}/Bin
64 CACHE PATH
65 "Single Directory for all static libraries."
66 )
67
68 SET(PKG_REQUIRES_PRIVATES "")
69
70 if (USE_EXT_GD)
71 message("Using GD at: ${USE_EXT_GD}")
72 INCLUDE_DIRECTORIES(BEFORE ${GD_INCLUDE_DIR})
73 FIND_PACKAGE(GD)
74 if (GD_FOUND)
75 INCLUDE_DIRECTORIES(BEFORE ${GD_INCLUDE_DIR})
76 LINK_DIRECTORIES(${GD_LIBRARIES})
77 SET(GD_LIB ${GD_LIBRARIES})
78 SET(GD_LIBS_DIR ${GD_LIBRARY})
79
80 message("GD libs #: ${GD_LIBRARIES}")
81 message("GD lib #: ${GD_LIBRARY}")
82 message("GD include: ${GD_INCLUDE_DIR}")
83 else (GD_FOUND)
84 message("No gd found")
85 endif (GD_FOUND)
86 else (USE_EXT_GD)
87
88 MACRO(GV VER VAR)
89 execute_process(
90 COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/config/getver.sh ${VER}
91 OUTPUT_VARIABLE ${VAR}
92 )
93 ENDMACRO(GV)
94
95 GV(MAJOR GDLIB_MAJOR)
96 GV(MINOR GDLIB_MINOR)
97 GV(RELEASE GDLIB_REVISION)
98 GV(EXTRA GDLIB_EXTRA)
99 SET(GDLIB_VERSION "${GDLIB_MAJOR}.${GDLIB_MINOR}.${GDLIB_REVISION}${GDLIB_EXTRA}")
100 MESSAGE(STATUS "gd version ${GDLIB_VERSION}")
101
102 MACRO(GV_LT VER VAR)
103 execute_process(
104 COMMAND sh ${CMAKE_CURRENT_SOURCE_DIR}/config/getlib.sh ${VER}
105 OUTPUT_VARIABLE ${VAR}
106 )
107 ENDMACRO(GV_LT)
108
109 GV_LT(SONAME GDLIB_LIB_SOVERSION)
110 GV_LT(VERSION GDLIB_LIB_VERSION)
111 MESSAGE(STATUS "gd shared lib version ${GDLIB_LIB_SOVERSION} (${GDLIB_LIB_VERSION})")
112
113 include(CheckIncludeFiles)
114 include(CheckIncludeFile)
115
116 include(AC_HEADER_STDC)
117 include(CheckPrototypeExists)
118
119 if (ENABLE_CPP)
120 SET(ENABLE_CPP_API 1)
121 endif (ENABLE_CPP)
122
123 if (ENABLE_GD_FORMATS)
124 FIND_PACKAGE(ZLIB REQUIRED)
125 endif (ENABLE_GD_FORMATS)
126
127 if (ENABLE_PNG)
128 FIND_PACKAGE(ZLIB REQUIRED)
129 FIND_PACKAGE(PNG REQUIRED)
130 endif (ENABLE_PNG)
131
132 if (ENABLE_ICONV)
133 FIND_PACKAGE(ICONV REQUIRED)
134 endif (ENABLE_ICONV)
135
136 IF (ENABLE_WEBP)
137 FIND_PACKAGE(WEBP REQUIRED)
138 ENDIF (ENABLE_WEBP)
139
140 IF (ENABLE_HEIF)
141 FIND_PACKAGE(HEIF REQUIRED)
142 ENDIF (ENABLE_HEIF)
143
144 IF (ENABLE_AVIF)
145 FIND_PACKAGE(libavif 0.8.2 REQUIRED CONFIG)
146 SET(HAVE_LIBAVIF 1)
147 SET(AVIF_LIBRARIES avif)
148 SET(AVIF_FOUND 1)
149 ENDIF (ENABLE_AVIF)
150
151 IF (ENABLE_LIQ)
152 FIND_PACKAGE(LIQ REQUIRED)
153 ENDIF (ENABLE_LIQ)
154
155 IF (NOT WIN32)
156 FIND_PACKAGE(PTHREAD)
157 ENDIF (NOT WIN32)
158
159 if (ENABLE_JPEG)
160 FIND_PACKAGE(JPEG REQUIRED)
161 endif (ENABLE_JPEG)
162
163 if (ENABLE_TIFF)
164 FIND_PACKAGE(TIFF REQUIRED)
165 endif (ENABLE_TIFF)
166
167 if (ENABLE_FREETYPE)
168 FIND_PACKAGE(Freetype REQUIRED)
169 endif (ENABLE_FREETYPE)
170
171 if (ENABLE_XPM)
172 FIND_PACKAGE(XPM REQUIRED)
173 endif (ENABLE_XPM)
174
175 if (ENABLE_FONTCONFIG)
176 FIND_PACKAGE(FontConfig REQUIRED)
177 endif (ENABLE_FONTCONFIG)
178
179 if (ENABLE_RAQM)
180 FIND_PACKAGE(RAQM REQUIRED)
181 endif (ENABLE_RAQM)
182
183 SET(ENABLE_GD_FORMATS ${ENABLE_GD_FORMATS})
184
185 if (FREETYPE_FOUND)
186 INCLUDE_DIRECTORIES(${FREETYPE_INCLUDE_DIRS})
187 SET(HAVE_FT2BUILD_H 1)
188 SET(HAVE_LIBFREETYPE 1)
189 LIST(APPEND PKG_REQUIRES_PRIVATES freetype2)
190 ENDIF(FREETYPE_FOUND)
191
192 IF(ZLIB_FOUND)
193 INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
194 SET(HAVE_LIBZ 1)
195 LIST(APPEND PKG_REQUIRES_PRIVATES zlib)
196 ENDIF(ZLIB_FOUND)
197
198 IF(WEBP_FOUND)
199 INCLUDE_DIRECTORIES(${WEBP_INCLUDE_DIR})
200 SET(HAVE_LIBWEBP 1)
201 ENDIF(WEBP_FOUND)
202
203 IF(HEIF_FOUND)
204 INCLUDE_DIRECTORIES(${HEIF_INCLUDE_DIR})
205 SET(HAVE_LIBHEIF 1)
206 ENDIF(HEIF_FOUND)
207
208 IF(PNG_FOUND)
209 INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR})
210 SET(HAVE_LIBPNG 1)
211 LIST(APPEND PKG_REQUIRES_PRIVATES libpng)
212 ENDIF(PNG_FOUND)
213
214 IF(ICONV_FOUND)
215 INCLUDE_DIRECTORIES(${ICONV_INCLUDE_DIR})
216 SET(HAVE_ICONV 1)
217 SET(HAVE_ICONV_H 1)
218 ENDIF(ICONV_FOUND)
219
220 IF(LIQ_FOUND)
221 INCLUDE_DIRECTORIES(${LIQ_INCLUDE_DIR})
222 SET(HAVE_LIBIMAGEQUANT 1)
223 ENDIF(LIQ_FOUND)
224
225 IF(XPM_FOUND)
226 INCLUDE_DIRECTORIES(${XPM_INCLUDE_DIR})
227 SET(HAVE_LIBXPM 1)
228 LIST(APPEND PKG_REQUIRES_PRIVATES xpm)
229 ENDIF(XPM_FOUND)
230
231 IF(JPEG_FOUND)
232 INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR})
233 SET(HAVE_LIBJPEG 1)
234 LIST(APPEND PKG_REQUIRES_PRIVATES libjpeg)
235 ENDIF(JPEG_FOUND)
236
237 IF(TIFF_FOUND)
238 INCLUDE_DIRECTORIES(${TIFF_INCLUDE_DIR})
239 SET(HAVE_LIBTIFF 1)
240 LIST(APPEND PKG_REQUIRES_PRIVATES libtiff-4)
241 ENDIF(TIFF_FOUND)
242
243 IF(FONTCONFIG_FOUND)
244 INCLUDE_DIRECTORIES(${FONTCONFIG_INCLUDE_DIR})
245 SET(HAVE_LIBFONTCONFIG 1)
246 LIST(APPEND PKG_REQUIRES_PRIVATES fontconfig)
247 ELSE (FONTCONFIG_FOUND)
248 SET(FONTCONFIG_LIBRARY "")
249 SET(FONTCONFIG_INCLUDE_DIR "")
250 SET(FONTCONFIG_LIB_DIR "")
251 ENDIF(FONTCONFIG_FOUND)
252
253 IF(RAQM_FOUND)
254 INCLUDE_DIRECTORIES(${RAQM_INCLUDE_DIR})
255 SET(HAVE_RAQM 1)
256 LIST(APPEND PKG_REQUIRES_PRIVAES raqm)
257 ENDIF(RAQM_FOUND)
258
259 string(REPLACE ";" ", " PKG_REQUIRES_PRIVATES "${PKG_REQUIRES_PRIVATES}")
260 SET(HAVE_CONFIG_H 1)
261
262 ADD_DEFINITIONS(-DHAVE_CONFIG_H)
263
264 CHECK_INCLUDE_FILE("stdint.h" HAVE_STDINT_H)
265 CHECK_INCLUDE_FILE("inttypes.h" HAVE_INTTYPES_H)
266
267 CONFIGURE_FILE(${GD_SOURCE_DIR}/src/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/src/config.h ESCAPE_QUOTES)
268 include_directories(${CMAKE_CURRENT_BINARY_DIR}/src)
269
270 option(BUILD_SHARED_LIBS "Build shared libs" ON)
271 option(BUILD_STATIC_LIBS "Build static libs" OFF)
272
273 if (WIN32)
274 SET(GD_LIB libgd)
275 ADD_DEFINITIONS( -DWIN32 -D_WIN32 -DMSWIN32 -DBGDWIN32 -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0600)
276
277 if(NOT MINGW AND MSVC_VERSION GREATER 1399)
278 ADD_DEFINITIONS("/D_CRT_SECURE_NO_DEPRECATE")
279 endif(NOT MINGW AND MSVC_VERSION GREATER 1399)
280 if (MINGW OR MSYS)
281 SET(GD_LIB gd)
282 ADD_DEFINITIONS("-mms-bitfields") # -m32
283 endif (MINGW OR MSYS)
284 else (WIN32)
285 SET(GD_LIB gd)
286 endif (WIN32)
287
288 SET(GD_LIB_STATIC "${GD_LIB}_static")
289
290 IF(PROFILE)
291 add_definitions("-pg")
292 set(CMAKE_EXE_LINKER_FLAGS ${LINK_FLAGS} "-pg")
293 ENDIF(PROFILE)
294
295 SET(GD_INCLUDE_DIR "${GD_SOURCE_DIR}/src" "${GD_SOURCE_DIR}")
296 INCLUDE_DIRECTORIES(before ${FONTCONFIG_INCLUDE_DIR})
297
298 add_subdirectory(src)
299 endif (USE_EXT_GD)
300
301 add_subdirectory(tests)
302 add_subdirectory(examples)
303 add_subdirectory(docs)
304
305 add_custom_target(distclean ${GD_SOURCE_DIR}/cmake/distclean.sh)
306
307 SET(CPACK_PACKAGE_NAME "libgd")
308 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "libGD, powerful and easy to use graphic library")
309 SET(CPACK_PACKAGE_VENDOR "https://www.libgd.org")
310 SET(CPACK_PACKAGE_VERSION_MAJOR ${GDLIB_MAJOR})
311 SET(CPACK_PACKAGE_VERSION_MINOR ${GDLIB_MINOR})
312 SET(CPACK_PACKAGE_VERSION_PATCH ${GDLIB_REVISION}${GDLIB_EXTRA})
313
314 if(WIN32)
315 set(CPACK_GENERATOR ZIP)
316 else(WIN32)
317 set(CPACK_GENERATOR TGZ)
318 endif(WIN32)
319
320
321 INSTALL(FILES docs/INSTALL DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
322 INSTALL(FILES docs/README.JPN DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
323 INSTALL(FILES docs/README.CMAKE DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
324 INSTALL(FILES docs/README.TESTING DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
325 INSTALL(FILES docs/README.TXT DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
326
327
328 INSTALL(FILES examples/arc.c DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
329 INSTALL(FILES examples/copyrotated.c DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
330 INSTALL(FILES examples/crop.c DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
331 INSTALL(FILES examples/flip.c DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
332 INSTALL(FILES examples/gif.c DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
333 INSTALL(FILES examples/nnquant.c DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
334 INSTALL(FILES examples/noIcon.pic DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
335 INSTALL(FILES examples/noIcon.sgi DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
336 INSTALL(FILES examples/noIcon.tga DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
337 INSTALL(FILES examples/noIconAlpha.tga DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
338 INSTALL(FILES examples/test_crop_threshold.png DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
339 INSTALL(FILES examples/tgaread.c DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
340 INSTALL(FILES examples/tiffread.c DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
341 INSTALL(FILES examples/windows.c DESTINATION share/doc/gd-${GDLIB_MAJOR}.${GDLIB_MINOR})
342
343
344 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
345
346 set(CPACK_SOURCE_GENERATOR TGZ)
347 set(CPACK_SOURCE_IGNORE_FILES
348 "~$"
349 "\\\\.swp$"
350 "\\\\.gitignore$"
351 "^${PROJECT_SOURCE_DIR}/debian/"
352 "^${PROJECT_SOURCE_DIR}/old/"
353 "^${PROJECT_SOURCE_DIR}/bld/"
354 )
355 install(FILES ${top_level_DOCFILES} DESTINATION ${DOC_DIR})
356 INCLUDE(CPack)