"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)