Fossil SCM

fossil-scm / compat / zlib / contrib / zlib1-dll / CMakeLists.txt
Source Blame History 196 lines
6ea30fb… florian 1 cmake_minimum_required(VERSION 3.12...3.31)
6ea30fb… florian 2
6ea30fb… florian 3 project(
6ea30fb… florian 4 zlib1-dll
6ea30fb… florian 5 LANGUAGES C
6ea30fb… florian 6 VERSION 1.3.2
6ea30fb… florian 7 HOMEPAGE_URL "https://zlib.net/"
6ea30fb… florian 8 DESCRIPTION "zlib1.dll is the legacy DLL with zlib and minizip")
6ea30fb… florian 9
6ea30fb… florian 10 # ============================================================================
6ea30fb… florian 11 # configuration
6ea30fb… florian 12 # ============================================================================
6ea30fb… florian 13
6ea30fb… florian 14 if(NOT WIN32)
6ea30fb… florian 15 message(FATAL_ERROR "This creates zlib1.<DLL>, Nothing else")
6ea30fb… florian 16 endif(NOT WIN32)
6ea30fb… florian 17
6ea30fb… florian 18 option(ENABLE_BZIP2 "Build with bzip2 support" OFF)
6ea30fb… florian 19 set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
6ea30fb… florian 20
6ea30fb… florian 21 include(CheckCSourceCompiles)
6ea30fb… florian 22 include(CheckFunctionExists)
6ea30fb… florian 23 include(CheckIncludeFile)
6ea30fb… florian 24 include(CMakePackageConfigHelpers)
6ea30fb… florian 25 include(CheckTypeSize)
6ea30fb… florian 26 include(CPack)
6ea30fb… florian 27 include(GNUInstallDirs)
6ea30fb… florian 28
6ea30fb… florian 29 if(NOT ZLIB_CONF_WRITTEN)
6ea30fb… florian 30 set(CONF_OUT_FILE ${zlib1-dll_BINARY_DIR}/zconf.h.cmakein)
6ea30fb… florian 31 file(READ ../../zconf.h ZCONF_CONTENT LIMIT 245)
6ea30fb… florian 32 file(WRITE ${CONF_OUT_FILE} ${ZCONF_CONTENT})
6ea30fb… florian 33 file(APPEND ${CONF_OUT_FILE} "#cmakedefine Z_PREFIX 1\n")
6ea30fb… florian 34 file(APPEND ${CONF_OUT_FILE} "#cmakedefine HAVE_STDARG_H 1\n")
6ea30fb… florian 35 file(APPEND ${CONF_OUT_FILE} "#cmakedefine HAVE_UNISTD_H 1\n")
6ea30fb… florian 36 file(READ ../../zconf.h ZCONF_CONTENT OFFSET 244)
6ea30fb… florian 37 set(FIRST_ITEM TRUE)
6ea30fb… florian 38
6ea30fb… florian 39 foreach(item IN LISTS ZCONF_CONTENT)
6ea30fb… florian 40 if(FIRST_ITEM)
6ea30fb… florian 41 string(APPEND OUT_CONTENT ${item})
6ea30fb… florian 42 set(FIRST_ITEM FALSE)
6ea30fb… florian 43 else(FIRST_ITEM)
6ea30fb… florian 44 string(APPEND OUT_CONTENT "\;" ${item})
6ea30fb… florian 45 endif(FIRST_ITEM)
6ea30fb… florian 46 endforeach(item IN LISTS ${ZCONF_CONTENT})
6ea30fb… florian 47
6ea30fb… florian 48 file(APPEND ${CONF_OUT_FILE} ${OUT_CONTENT})
6ea30fb… florian 49 set(ZLIB_CONF_WRITTEN
6ea30fb… florian 50 TRUE
6ea30fb… florian 51 CACHE BOOL "zconf.h.cmakein was created")
6ea30fb… florian 52 mark_as_advanced(ZLIB_CONF_WRITTEN)
6ea30fb… florian 53 endif(NOT ZLIB_CONF_WRITTEN)
6ea30fb… florian 54
6ea30fb… florian 55 if(ENABLE_BZIP2)
6ea30fb… florian 56 find_package(BZip2 REQUIRED)
6ea30fb… florian 57 endif(ENABLE_BZIP2)
6ea30fb… florian 58
6ea30fb… florian 59 #
6ea30fb… florian 60 # Check for fopen64
6ea30fb… florian 61 #
6ea30fb… florian 62 check_function_exists(fopen64 HAVE_FOPEN64)
6ea30fb… florian 63
6ea30fb… florian 64 #
6ea30fb… florian 65 # Check to see if we have large file support
6ea30fb… florian 66 #
6ea30fb… florian 67 set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1)
6ea30fb… florian 68 check_type_size(off64_t OFF64_T)
6ea30fb… florian 69 unset(CMAKE_REQUIRED_DEFINITIONS) # clear variable
6ea30fb… florian 70
6ea30fb… florian 71 #
6ea30fb… florian 72 # Check for fseeko
6ea30fb… florian 73 #
6ea30fb… florian 74 check_function_exists(fseeko HAVE_FSEEKO)
6ea30fb… florian 75
6ea30fb… florian 76 #
6ea30fb… florian 77 # Check for stdarg.h
6ea30fb… florian 78 #
6ea30fb… florian 79 check_include_file(stdarg.h HAVE_STDARG_H)
6ea30fb… florian 80
6ea30fb… florian 81 #
6ea30fb… florian 82 # Check for unistd.h
6ea30fb… florian 83 #
6ea30fb… florian 84 check_include_file(unistd.h HAVE_UNISTD_H)
6ea30fb… florian 85
6ea30fb… florian 86 #
6ea30fb… florian 87 # Check visibility attribute is supported
6ea30fb… florian 88 #
6ea30fb… florian 89 if(MSVC)
6ea30fb… florian 90 set(CMAKE_REQUIRED_FLAGS "-WX")
6ea30fb… florian 91 else(MSVC)
6ea30fb… florian 92 set(CMAKE_REQUIRED_FLAGS "-Werror")
6ea30fb… florian 93 endif(MSVC)
6ea30fb… florian 94
6ea30fb… florian 95 check_c_source_compiles(
6ea30fb… florian 96 "
6ea30fb… florian 97 #include <stdlib.h>
6ea30fb… florian 98 static void f(void) __attribute__ ((visibility(\"hidden\")));
6ea30fb… florian 99 int main(void) {return 0;}
6ea30fb… florian 100 "
6ea30fb… florian 101 HAVE___ATTR__VIS_HIDDEN)
6ea30fb… florian 102
6ea30fb… florian 103 unset(CMAKE_COMPILE_FLAGS)
6ea30fb… florian 104 configure_file(${zlib1-dll_BINARY_DIR}/zconf.h.cmakein ${zlib1-dll_BINARY_DIR}/zconf.h)
6ea30fb… florian 105
6ea30fb… florian 106 # ============================================================================
6ea30fb… florian 107 # zlib1-dll
6ea30fb… florian 108 # ============================================================================
6ea30fb… florian 109 set(ZLIB1-DLL_PUBLIC_HDRS
6ea30fb… florian 110 ${zlib1-dll_BINARY_DIR}/zconf.h
6ea30fb… florian 111 ../../zlib.h
6ea30fb… florian 112 ../minizip/crypt.h
6ea30fb… florian 113 ../minizip/ints.h
6ea30fb… florian 114 ../minizip/ioapi.h
6ea30fb… florian 115 ../minizip/mztools.h
6ea30fb… florian 116 ../minizip/unzip.h
6ea30fb… florian 117 ../minizip/zip.h)
6ea30fb… florian 118
6ea30fb… florian 119 set(ZLIB1-DLL_PRIVATE_HDRS
6ea30fb… florian 120 ../../crc32.h
6ea30fb… florian 121 ../../deflate.h
6ea30fb… florian 122 ../../gzguts.h
6ea30fb… florian 123 ../../inffast.h
6ea30fb… florian 124 ../../inffixed.h
6ea30fb… florian 125 ../../inflate.h
6ea30fb… florian 126 ../../inftrees.h
6ea30fb… florian 127 ../../trees.h
6ea30fb… florian 128 ../../zutil.h)
6ea30fb… florian 129
6ea30fb… florian 130 set(ZLIB1-DLL_SRCS
6ea30fb… florian 131 ../../adler32.c
6ea30fb… florian 132 ../../compress.c
6ea30fb… florian 133 ../../crc32.c
6ea30fb… florian 134 ../../deflate.c
6ea30fb… florian 135 ../../gzclose.c
6ea30fb… florian 136 ../../gzlib.c
6ea30fb… florian 137 ../../gzread.c
6ea30fb… florian 138 ../../gzwrite.c
6ea30fb… florian 139 ../../inflate.c
6ea30fb… florian 140 ../../infback.c
6ea30fb… florian 141 ../../inftrees.c
6ea30fb… florian 142 ../../inffast.c
6ea30fb… florian 143 ../../trees.c
6ea30fb… florian 144 ../../uncompr.c
6ea30fb… florian 145 ../../win32/zlib1.rc
6ea30fb… florian 146 ../../zutil.c
6ea30fb… florian 147 ../minizip/ioapi.c
6ea30fb… florian 148 ../minizip/mztools.c
6ea30fb… florian 149 ../minizip/unzip.c
6ea30fb… florian 150 ../minizip/zip.c)
6ea30fb… florian 151
6ea30fb… florian 152 add_library(zlib1 SHARED ${ZLIB1-DLL_SRCS}
6ea30fb… florian 153 ${ZLIB1-DLL_PUBLIC_HDRS}
6ea30fb… florian 154 ${ZLIB1-DLL_PRIVATE_HDRS})
6ea30fb… florian 155
6ea30fb… florian 156 #taget_include_directories doesn't like relative paths
6ea30fb… florian 157 include_directories(../../
6ea30fb… florian 158 ../minizip
6ea30fb… florian 159 ${CMAKE_CURRENT_BINARY_DIR})
6ea30fb… florian 160
6ea30fb… florian 161 target_compile_definitions(zlib1
6ea30fb… florian 162 PRIVATE ZLIB_BUILD
6ea30fb… florian 163 $<$<BOOL:NOT:${HAVE_FSEEKO}>:NO_FSEEKO>
6ea30fb… florian 164 $<$<BOOL:${HAVE_UNISTD_H}>:HAVE_UNISTD_H=1>
6ea30fb… florian 165 $<$<BOOL:${HAVE___ATTR__VIS_HIDDEN}>:HAVE_HIDDEN>
6ea30fb… florian 166 $<$<BOOL:${MSVC}>:_CRT_SECURE_NO_DEPRECATE>
6ea30fb… florian 167 $<$<BOOL:${MSVC}>:_CRT_NONSTDC_NO_DEPRECATE>
6ea30fb… florian 168 PUBLIC $<$<BOOL:${HAVE_OFF64_T}>:_LARGEFILE64_SOURCE=1>
6ea30fb… florian 169 $<$<BOOL:${BZIP2_FOUND}>:HAVE_BZIP2=1>
6ea30fb… florian 170 $<$<BOOL:NOT:${HAVE_FOPEN64}>:USE_FILE32API=1>)
6ea30fb… florian 171
6ea30fb… florian 172 target_link_libraries(zlib1
6ea30fb… florian 173 PUBLIC $<$<BOOL:${BZIP2_FOUND}>:BZip2::BZip2>)
6ea30fb… florian 174
6ea30fb… florian 175 if(NOT CYGWIN)
6ea30fb… florian 176 set_target_properties(zlib1 PROPERTIES
6ea30fb… florian 177 SOVERSION ${zlib1-dll_VERSION_MAJOR}
6ea30fb… florian 178 VERSION ${zlib1-dll_VERSION})
6ea30fb… florian 179 endif(NOT CYGWIN)
6ea30fb… florian 180
6ea30fb… florian 181 set_target_properties(zlib1 PROPERTIES
6ea30fb… florian 182 DEFINE_SYMBOL ZLIB_DLL)
6ea30fb… florian 183
6ea30fb… florian 184 install(
6ea30fb… florian 185 TARGETS zlib1
6ea30fb… florian 186 ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
6ea30fb… florian 187 RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
6ea30fb… florian 188 LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}")
6ea30fb… florian 189
6ea30fb… florian 190 install(
6ea30fb… florian 191 FILES ${ZLIB1-DLL_PUBLIC_HDRS}
6ea30fb… florian 192 DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
6ea30fb… florian 193
6ea30fb… florian 194 install(
6ea30fb… florian 195 FILES ../../LICENSE
6ea30fb… florian 196 DESTINATION "${CMAKE_INSTALL_DOCDIR}/zlib1-dll")

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button