1e5c31af7Sopenharmony_ci# cmake file for zlib
2e5c31af7Sopenharmony_ci
3e5c31af7Sopenharmony_ciif (NOT DE_DEFS)
4e5c31af7Sopenharmony_ci	message(FATAL_ERROR "Include Defs.cmake")
5e5c31af7Sopenharmony_ciendif ()
6e5c31af7Sopenharmony_ci
7e5c31af7Sopenharmony_ciif (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/src/zlib.h")
8e5c31af7Sopenharmony_ci	set(DEFAULT_ZLIB_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/src)
9e5c31af7Sopenharmony_cielse ()
10e5c31af7Sopenharmony_ci	# Assume build inside Android source tree
11e5c31af7Sopenharmony_ci	set(DEFAULT_ZLIB_SRC_PATH "../zlib/src")
12e5c31af7Sopenharmony_ciendif ()
13e5c31af7Sopenharmony_ci
14e5c31af7Sopenharmony_ciset(ZLIB_SRC_PATH ${DEFAULT_ZLIB_SRC_PATH} CACHE STRING "Path to zlib source tree")
15e5c31af7Sopenharmony_ci
16e5c31af7Sopenharmony_ciif (IS_ABSOLUTE ${ZLIB_SRC_PATH})
17e5c31af7Sopenharmony_ci	set(ZLIB_ABS_PATH ${ZLIB_SRC_PATH})
18e5c31af7Sopenharmony_cielse ()
19e5c31af7Sopenharmony_ci	set(ZLIB_ABS_PATH "${CMAKE_SOURCE_DIR}/${ZLIB_SRC_PATH}")
20e5c31af7Sopenharmony_ciendif ()
21e5c31af7Sopenharmony_ci
22e5c31af7Sopenharmony_ciset(ZLIB_SRCS
23e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/adler32.c
24e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/compress.c
25e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/crc32.c
26e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/crc32.h
27e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/deflate.c
28e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/deflate.h
29e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/gzclose.c
30e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/gzguts.h
31e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/gzlib.c
32e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/gzread.c
33e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/gzwrite.c
34e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/infback.c
35e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/inffast.c
36e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/inffast.h
37e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/inffixed.h
38e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/inflate.c
39e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/inflate.h
40e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/inftrees.c
41e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/inftrees.h
42e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/trees.c
43e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/trees.h
44e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/uncompr.c
45e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/zconf.h
46e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/zlib.h
47e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/zutil.c
48e5c31af7Sopenharmony_ci	${ZLIB_ABS_PATH}/zutil.h
49e5c31af7Sopenharmony_ci	)
50e5c31af7Sopenharmony_ci
51e5c31af7Sopenharmony_ciif (DE_COMPILER_IS_MSC)
52e5c31af7Sopenharmony_ci	# 4127: conditional expression is constant
53e5c31af7Sopenharmony_ci	# 4131: 'x': uses old style declarator
54e5c31af7Sopenharmony_ci	# 4242, 4244: conversion from 'x' to 'y', possible loss of data
55e5c31af7Sopenharmony_ci	# 4996: deprecated POSIX name
56e5c31af7Sopenharmony_ci	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Wall /wd4127 /wd4131 /wd4242 /wd4244 /wd4996")
57e5c31af7Sopenharmony_ci
58e5c31af7Sopenharmony_cielseif (DE_COMPILER_IS_GCC OR DE_COMPILER_IS_CLANG)
59e5c31af7Sopenharmony_ci	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-implicit-function-declaration")
60e5c31af7Sopenharmony_ci
61e5c31af7Sopenharmony_ciendif ()
62e5c31af7Sopenharmony_ci
63e5c31af7Sopenharmony_ciif (DE_OS_IS_UNIX OR DE_OS_IS_QNX)
64e5c31af7Sopenharmony_ci	add_definitions(-D_XOPEN_SOURCE=600)
65e5c31af7Sopenharmony_ciendif ()
66e5c31af7Sopenharmony_ci
67e5c31af7Sopenharmony_ciif (NOT DE_COMPILER_IS_MSC)
68e5c31af7Sopenharmony_ci	add_definitions(-DZ_HAVE_UNISTD_H)
69e5c31af7Sopenharmony_ciendif ()
70e5c31af7Sopenharmony_ci
71e5c31af7Sopenharmony_ciset(CMAKE_C_FLAGS ${DE_3RD_PARTY_C_FLAGS})
72e5c31af7Sopenharmony_ci
73e5c31af7Sopenharmony_ciadd_library(z STATIC ${ZLIB_SRCS})
74e5c31af7Sopenharmony_ci
75e5c31af7Sopenharmony_ciset(ZLIB_INCLUDE_PATH	${ZLIB_ABS_PATH}	PARENT_SCOPE)
76e5c31af7Sopenharmony_ciset(ZLIB_LIBRARY		z					PARENT_SCOPE)
77