Skip to content

Commit 944a699

Browse files
Andrzej Jarzabekbjornmu
authored andcommitted
Bug#34711762 Upgrade zlib to 1.2.13 [add tarball]
Unpack source tarball, git add everything. Change-Id: Ib6eb64f8e132ca59539208f7bf69245268804ee5
1 parent 6697bd5 commit 944a699

File tree

243 files changed

+80245
-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

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

0 commit comments

Comments
 (0)