Warning, /education/marble/src/3rdparty/zlib/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)
0002
0003 set(ZLIB_VERSION "1.2.8")
0004
0005 include(CheckTypeSize)
0006 include(CheckFunctionExists)
0007 include(CheckIncludeFile)
0008 include(CheckCSourceCompiles)
0009
0010 check_include_file(sys/types.h HAVE_SYS_TYPES_H)
0011 check_include_file(stdint.h HAVE_STDINT_H)
0012 check_include_file(stddef.h HAVE_STDDEF_H)
0013
0014 #
0015 # Check to see if we have large file support
0016 #
0017 set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1)
0018 # We add these other definitions here because CheckTypeSize.cmake
0019 # in CMake 2.4.x does not automatically do so and we want
0020 # compatibility with CMake 2.4.x.
0021 if(HAVE_SYS_TYPES_H)
0022 list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H)
0023 endif()
0024 if(HAVE_STDINT_H)
0025 list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDINT_H)
0026 endif()
0027 if(HAVE_STDDEF_H)
0028 list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDDEF_H)
0029 endif()
0030 check_type_size(off64_t OFF64_T)
0031 if(HAVE_OFF64_T)
0032 add_definitions(-D_LARGEFILE64_SOURCE=1)
0033 endif()
0034 set(CMAKE_REQUIRED_DEFINITIONS) # clear variable
0035
0036 #
0037 # Check for fseeko
0038 #
0039 check_function_exists(fseeko HAVE_FSEEKO)
0040 if(NOT HAVE_FSEEKO)
0041 add_definitions(-DNO_FSEEKO)
0042 endif()
0043
0044 #
0045 # Check for unistd.h
0046 #
0047 check_include_file(unistd.h Z_HAVE_UNISTD_H)
0048
0049 if(MSVC)
0050 add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
0051 add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
0052 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
0053 endif()
0054
0055 if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
0056 # If we're doing an out of source build and the user has a zconf.h
0057 # in their source tree...
0058 if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h)
0059 message(STATUS "Renaming")
0060 message(STATUS " ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h")
0061 message(STATUS "to 'zconf.h.included' because this file is included with zlib")
0062 message(STATUS "but CMake generates it automatically in the build directory.")
0063 file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included)
0064 endif()
0065 endif()
0066
0067 set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc)
0068 configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein
0069 ${ZLIB_PC} @ONLY)
0070 configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein
0071 ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY)
0072 include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
0073
0074
0075 #============================================================================
0076 # zlib
0077 #============================================================================
0078
0079 set(ZLIB_PUBLIC_HDRS
0080 ${CMAKE_CURRENT_BINARY_DIR}/zconf.h
0081 zlib.h
0082 )
0083 set(ZLIB_PRIVATE_HDRS
0084 crc32.h
0085 deflate.h
0086 gzguts.h
0087 inffast.h
0088 inffixed.h
0089 inflate.h
0090 inftrees.h
0091 trees.h
0092 zutil.h
0093 )
0094 set(ZLIB_SRCS
0095 adler32.c
0096 compress.c
0097 crc32.c
0098 deflate.c
0099 gzclose.c
0100 gzlib.c
0101 gzread.c
0102 gzwrite.c
0103 inflate.c
0104 infback.c
0105 inftrees.c
0106 inffast.c
0107 trees.c
0108 uncompr.c
0109 zutil.c
0110 )
0111
0112 # parse the full version number from zlib.h and include in ZLIB_FULL_VERSION
0113 file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents)
0114 string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*"
0115 "\\1" ZLIB_FULL_VERSION ${_zlib_h_contents})
0116
0117 add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
0118
0119 if(UNIX)
0120 # On unix-like platforms the library is almost always called libz
0121 set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z)
0122 endif()