Skip to content

Commit 8818de3

Browse files
committed
Merge commit 'a8601d2a1628ebeaa8afb0252b4a55aa20bc57de' as 'libs/zlib'
2 parents b94d0d2 + a8601d2 commit 8818de3

File tree

243 files changed

+80565
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

243 files changed

+80565
-0
lines changed

libs/zlib/.gitignore

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
*.diff
2+
*.patch
3+
*.orig
4+
*.rej
5+
6+
*~
7+
*.a
8+
*.lo
9+
*.o
10+
*.dylib
11+
12+
*.gcda
13+
*.gcno
14+
*.gcov
15+
16+
/example
17+
/example64
18+
/examplesh
19+
/libz.so*
20+
/minigzip
21+
/minigzip64
22+
/minigzipsh
23+
/zlib.pc
24+
/configure.log
25+
26+
.DS_Store

libs/zlib/CMakeLists.txt

Lines changed: 249 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,249 @@
1+
cmake_minimum_required(VERSION 2.4.4)
2+
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)
3+
4+
project(zlib C)
5+
6+
set(VERSION "1.2.12")
7+
8+
option(ASM686 "Enable building i686 assembly implementation")
9+
option(AMD64 "Enable building amd64 assembly implementation")
10+
11+
set(INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
12+
set(INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
13+
set(INSTALL_INC_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
14+
set(INSTALL_MAN_DIR "${CMAKE_INSTALL_PREFIX}/share/man" CACHE PATH "Installation directory for manual pages")
15+
set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/share/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
16+
17+
include(CheckTypeSize)
18+
include(CheckFunctionExists)
19+
include(CheckIncludeFile)
20+
include(CheckCSourceCompiles)
21+
enable_testing()
22+
23+
check_include_file(sys/types.h HAVE_SYS_TYPES_H)
24+
check_include_file(stdint.h HAVE_STDINT_H)
25+
check_include_file(stddef.h HAVE_STDDEF_H)
26+
27+
#
28+
# Check to see if we have large file support
29+
#
30+
set(CMAKE_REQUIRED_DEFINITIONS -D_LARGEFILE64_SOURCE=1)
31+
# We add these other definitions here because CheckTypeSize.cmake
32+
# in CMake 2.4.x does not automatically do so and we want
33+
# compatibility with CMake 2.4.x.
34+
if(HAVE_SYS_TYPES_H)
35+
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_SYS_TYPES_H)
36+
endif()
37+
if(HAVE_STDINT_H)
38+
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDINT_H)
39+
endif()
40+
if(HAVE_STDDEF_H)
41+
list(APPEND CMAKE_REQUIRED_DEFINITIONS -DHAVE_STDDEF_H)
42+
endif()
43+
check_type_size(off64_t OFF64_T)
44+
if(HAVE_OFF64_T)
45+
add_definitions(-D_LARGEFILE64_SOURCE=1)
46+
endif()
47+
set(CMAKE_REQUIRED_DEFINITIONS) # clear variable
48+
49+
#
50+
# Check for fseeko
51+
#
52+
check_function_exists(fseeko HAVE_FSEEKO)
53+
if(NOT HAVE_FSEEKO)
54+
add_definitions(-DNO_FSEEKO)
55+
endif()
56+
57+
#
58+
# Check for unistd.h
59+
#
60+
check_include_file(unistd.h Z_HAVE_UNISTD_H)
61+
62+
if(MSVC)
63+
set(CMAKE_DEBUG_POSTFIX "d")
64+
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
65+
add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
66+
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
67+
endif()
68+
69+
if(NOT CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_CURRENT_BINARY_DIR)
70+
# If we're doing an out of source build and the user has a zconf.h
71+
# in their source tree...
72+
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h)
73+
message(STATUS "Renaming")
74+
message(STATUS " ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h")
75+
message(STATUS "to 'zconf.h.included' because this file is included with zlib")
76+
message(STATUS "but CMake generates it automatically in the build directory.")
77+
file(RENAME ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.included)
78+
endif()
79+
endif()
80+
81+
set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc)
82+
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein
83+
${ZLIB_PC} @ONLY)
84+
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zconf.h.cmakein
85+
${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY)
86+
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
87+
88+
89+
#============================================================================
90+
# zlib
91+
#============================================================================
92+
93+
set(ZLIB_PUBLIC_HDRS
94+
${CMAKE_CURRENT_BINARY_DIR}/zconf.h
95+
zlib.h
96+
)
97+
set(ZLIB_PRIVATE_HDRS
98+
crc32.h
99+
deflate.h
100+
gzguts.h
101+
inffast.h
102+
inffixed.h
103+
inflate.h
104+
inftrees.h
105+
trees.h
106+
zutil.h
107+
)
108+
set(ZLIB_SRCS
109+
adler32.c
110+
compress.c
111+
crc32.c
112+
deflate.c
113+
gzclose.c
114+
gzlib.c
115+
gzread.c
116+
gzwrite.c
117+
inflate.c
118+
infback.c
119+
inftrees.c
120+
inffast.c
121+
trees.c
122+
uncompr.c
123+
zutil.c
124+
)
125+
126+
if(NOT MINGW)
127+
set(ZLIB_DLL_SRCS
128+
win32/zlib1.rc # If present will override custom build rule below.
129+
)
130+
endif()
131+
132+
if(CMAKE_COMPILER_IS_GNUCC)
133+
if(ASM686)
134+
set(ZLIB_ASMS contrib/asm686/match.S)
135+
elseif (AMD64)
136+
set(ZLIB_ASMS contrib/amd64/amd64-match.S)
137+
endif ()
138+
139+
if(ZLIB_ASMS)
140+
add_definitions(-DASMV)
141+
set_source_files_properties(${ZLIB_ASMS} PROPERTIES LANGUAGE C COMPILE_FLAGS -DNO_UNDERLINE)
142+
endif()
143+
endif()
144+
145+
if(MSVC)
146+
if(ASM686)
147+
ENABLE_LANGUAGE(ASM_MASM)
148+
set(ZLIB_ASMS
149+
contrib/masmx86/inffas32.asm
150+
contrib/masmx86/match686.asm
151+
)
152+
elseif (AMD64)
153+
ENABLE_LANGUAGE(ASM_MASM)
154+
set(ZLIB_ASMS
155+
contrib/masmx64/gvmat64.asm
156+
contrib/masmx64/inffasx64.asm
157+
)
158+
endif()
159+
160+
if(ZLIB_ASMS)
161+
add_definitions(-DASMV -DASMINF)
162+
endif()
163+
endif()
164+
165+
# parse the full version number from zlib.h and include in ZLIB_FULL_VERSION
166+
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/zlib.h _zlib_h_contents)
167+
string(REGEX REPLACE ".*#define[ \t]+ZLIB_VERSION[ \t]+\"([-0-9A-Za-z.]+)\".*"
168+
"\\1" ZLIB_FULL_VERSION ${_zlib_h_contents})
169+
170+
if(MINGW)
171+
# This gets us DLL resource information when compiling on MinGW.
172+
if(NOT CMAKE_RC_COMPILER)
173+
set(CMAKE_RC_COMPILER windres.exe)
174+
endif()
175+
176+
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj
177+
COMMAND ${CMAKE_RC_COMPILER}
178+
-D GCC_WINDRES
179+
-I ${CMAKE_CURRENT_SOURCE_DIR}
180+
-I ${CMAKE_CURRENT_BINARY_DIR}
181+
-o ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj
182+
-i ${CMAKE_CURRENT_SOURCE_DIR}/win32/zlib1.rc)
183+
set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj)
184+
endif(MINGW)
185+
186+
add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
187+
add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
188+
set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL)
189+
set_target_properties(zlib PROPERTIES SOVERSION 1)
190+
191+
if(NOT CYGWIN)
192+
# This property causes shared libraries on Linux to have the full version
193+
# encoded into their final filename. We disable this on Cygwin because
194+
# it causes cygz-${ZLIB_FULL_VERSION}.dll to be created when cygz.dll
195+
# seems to be the default.
196+
#
197+
# This has no effect with MSVC, on that platform the version info for
198+
# the DLL comes from the resource file win32/zlib1.rc
199+
set_target_properties(zlib PROPERTIES VERSION ${ZLIB_FULL_VERSION})
200+
endif()
201+
202+
if(UNIX)
203+
# On unix-like platforms the library is almost always called libz
204+
set_target_properties(zlib zlibstatic PROPERTIES OUTPUT_NAME z)
205+
if(NOT APPLE)
206+
set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"")
207+
endif()
208+
elseif(BUILD_SHARED_LIBS AND WIN32)
209+
# Creates zlib1.dll when building shared library version
210+
set_target_properties(zlib PROPERTIES SUFFIX "1.dll")
211+
endif()
212+
213+
if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL )
214+
install(TARGETS zlib zlibstatic
215+
RUNTIME DESTINATION "${INSTALL_BIN_DIR}"
216+
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
217+
LIBRARY DESTINATION "${INSTALL_LIB_DIR}" )
218+
endif()
219+
if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL )
220+
install(FILES ${ZLIB_PUBLIC_HDRS} DESTINATION "${INSTALL_INC_DIR}")
221+
endif()
222+
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
223+
install(FILES zlib.3 DESTINATION "${INSTALL_MAN_DIR}/man3")
224+
endif()
225+
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
226+
install(FILES ${ZLIB_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR}")
227+
endif()
228+
229+
#============================================================================
230+
# Example binaries
231+
#============================================================================
232+
233+
add_executable(example test/example.c)
234+
target_link_libraries(example zlib)
235+
add_test(example example)
236+
237+
add_executable(minigzip test/minigzip.c)
238+
target_link_libraries(minigzip zlib)
239+
240+
if(HAVE_OFF64_T)
241+
add_executable(example64 test/example.c)
242+
target_link_libraries(example64 zlib)
243+
set_target_properties(example64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
244+
add_test(example64 example64)
245+
246+
add_executable(minigzip64 test/minigzip.c)
247+
target_link_libraries(minigzip64 zlib)
248+
set_target_properties(minigzip64 PROPERTIES COMPILE_FLAGS "-D_FILE_OFFSET_BITS=64")
249+
endif()

0 commit comments

Comments
 (0)