1275793eaSopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd. All rights reserved.
2275793eaSopenharmony_ci
3275793eaSopenharmony_ciimport("//build/config/config.gni")
4275793eaSopenharmony_ciimport("//build/ohos.gni")
5275793eaSopenharmony_ciimport("//build/ohos/ndk/ndk.gni")
6275793eaSopenharmony_ci
7275793eaSopenharmony_ciconfig("zlib_config") {
8275793eaSopenharmony_ci  cflags = [
9275793eaSopenharmony_ci    "-Wno-incompatible-pointer-types",
10275793eaSopenharmony_ci    "-Werror",
11275793eaSopenharmony_ci    "-Wno-strict-prototypes",
12275793eaSopenharmony_ci    "-Wimplicit-function-declaration",
13275793eaSopenharmony_ci  ]
14275793eaSopenharmony_ci}
15275793eaSopenharmony_ci
16275793eaSopenharmony_ciconfig("zlib_public_config") {
17275793eaSopenharmony_ci  include_dirs = [
18275793eaSopenharmony_ci    ".",
19275793eaSopenharmony_ci    "contrib/minizip",
20275793eaSopenharmony_ci  ]
21275793eaSopenharmony_ci}
22275793eaSopenharmony_ci
23275793eaSopenharmony_ciohos_static_library("libz") {
24275793eaSopenharmony_ci  sources = [
25275793eaSopenharmony_ci    "adler32.c",
26275793eaSopenharmony_ci    "compress.c",
27275793eaSopenharmony_ci    "contrib/minizip/ioapi.c",
28275793eaSopenharmony_ci    "contrib/minizip/unzip.c",
29275793eaSopenharmony_ci    "contrib/minizip/zip.c",
30275793eaSopenharmony_ci    "crc32.c",
31275793eaSopenharmony_ci    "crc32.h",
32275793eaSopenharmony_ci    "deflate.c",
33275793eaSopenharmony_ci    "deflate.h",
34275793eaSopenharmony_ci    "gzclose.c",
35275793eaSopenharmony_ci    "gzguts.h",
36275793eaSopenharmony_ci    "gzlib.c",
37275793eaSopenharmony_ci    "gzread.c",
38275793eaSopenharmony_ci    "gzwrite.c",
39275793eaSopenharmony_ci    "infback.c",
40275793eaSopenharmony_ci    "inffast.c",
41275793eaSopenharmony_ci    "inffast.h",
42275793eaSopenharmony_ci    "inffixed.h",
43275793eaSopenharmony_ci    "inflate.c",
44275793eaSopenharmony_ci    "inflate.h",
45275793eaSopenharmony_ci    "inftrees.c",
46275793eaSopenharmony_ci    "inftrees.h",
47275793eaSopenharmony_ci    "trees.c",
48275793eaSopenharmony_ci    "trees.h",
49275793eaSopenharmony_ci    "uncompr.c",
50275793eaSopenharmony_ci    "zconf.h",
51275793eaSopenharmony_ci    "zlib.h",
52275793eaSopenharmony_ci    "zutil.c",
53275793eaSopenharmony_ci    "zutil.h",
54275793eaSopenharmony_ci  ]
55275793eaSopenharmony_ci  configs = [ ":zlib_config" ]
56275793eaSopenharmony_ci  public_configs = [ ":zlib_public_config" ]
57275793eaSopenharmony_ci
58275793eaSopenharmony_ci  part_name = "zlib"
59275793eaSopenharmony_ci  subsystem_name = "thirdparty"
60275793eaSopenharmony_ci}
61275793eaSopenharmony_ci
62275793eaSopenharmony_ciohos_shared_library("shared_libz") {
63275793eaSopenharmony_ci  branch_protector_ret = "pac_ret"
64275793eaSopenharmony_ci  sources = [
65275793eaSopenharmony_ci    "adler32.c",
66275793eaSopenharmony_ci    "compress.c",
67275793eaSopenharmony_ci    "contrib/minizip/ioapi.c",
68275793eaSopenharmony_ci    "contrib/minizip/unzip.c",
69275793eaSopenharmony_ci    "contrib/minizip/zip.c",
70275793eaSopenharmony_ci    "crc32.c",
71275793eaSopenharmony_ci    "crc32.h",
72275793eaSopenharmony_ci    "deflate.c",
73275793eaSopenharmony_ci    "deflate.h",
74275793eaSopenharmony_ci    "gzclose.c",
75275793eaSopenharmony_ci    "gzguts.h",
76275793eaSopenharmony_ci    "gzlib.c",
77275793eaSopenharmony_ci    "gzread.c",
78275793eaSopenharmony_ci    "gzwrite.c",
79275793eaSopenharmony_ci    "infback.c",
80275793eaSopenharmony_ci    "inffast.c",
81275793eaSopenharmony_ci    "inffast.h",
82275793eaSopenharmony_ci    "inffixed.h",
83275793eaSopenharmony_ci    "inflate.c",
84275793eaSopenharmony_ci    "inflate.h",
85275793eaSopenharmony_ci    "inftrees.c",
86275793eaSopenharmony_ci    "inftrees.h",
87275793eaSopenharmony_ci    "trees.c",
88275793eaSopenharmony_ci    "trees.h",
89275793eaSopenharmony_ci    "uncompr.c",
90275793eaSopenharmony_ci    "zconf.h",
91275793eaSopenharmony_ci    "zlib.h",
92275793eaSopenharmony_ci    "zutil.c",
93275793eaSopenharmony_ci    "zutil.h",
94275793eaSopenharmony_ci  ]
95275793eaSopenharmony_ci  configs = [ ":zlib_config" ]
96275793eaSopenharmony_ci  public_configs = [ ":zlib_public_config" ]
97275793eaSopenharmony_ci
98275793eaSopenharmony_ci  if (current_os == "ios") {
99275793eaSopenharmony_ci    ldflags = [
100275793eaSopenharmony_ci      "-Wl",
101275793eaSopenharmony_ci      "-install_name",
102275793eaSopenharmony_ci      "@rpath/libshared_libz.framework/libshared_libz",
103275793eaSopenharmony_ci    ]
104275793eaSopenharmony_ci  }
105275793eaSopenharmony_ci
106275793eaSopenharmony_ci  install_images = [
107275793eaSopenharmony_ci    "system",
108275793eaSopenharmony_ci    "updater",
109275793eaSopenharmony_ci  ]
110275793eaSopenharmony_ci
111275793eaSopenharmony_ci  symlink_target_name = [ "libz.so" ]
112275793eaSopenharmony_ci
113275793eaSopenharmony_ci  innerapi_tags = [
114275793eaSopenharmony_ci    "chipsetsdk",
115275793eaSopenharmony_ci    "platformsdk",
116275793eaSopenharmony_ci  ]
117275793eaSopenharmony_ci  part_name = "zlib"
118275793eaSopenharmony_ci  subsystem_name = "thirdparty"
119275793eaSopenharmony_ci}
120275793eaSopenharmony_ci
121275793eaSopenharmony_ciif (current_os == "ios") {
122275793eaSopenharmony_ci  ohos_combine_darwin_framework("libshared_libz") {
123275793eaSopenharmony_ci    deps = [ ":shared_libz" ]
124275793eaSopenharmony_ci    subsystem_name = "thirdparty"
125275793eaSopenharmony_ci    part_name = "zlib"
126275793eaSopenharmony_ci  }
127275793eaSopenharmony_ci}
128275793eaSopenharmony_ci
129275793eaSopenharmony_ciif (current_cpu == "arm64") {
130275793eaSopenharmony_ci  config("zlib_crc_config") {
131275793eaSopenharmony_ci    cflags = [
132275793eaSopenharmony_ci      "-Wno-incompatible-pointer-types",
133275793eaSopenharmony_ci      "-Werror",
134275793eaSopenharmony_ci      "-Wno-strict-prototypes",
135275793eaSopenharmony_ci      "-Wimplicit-function-declaration",
136275793eaSopenharmony_ci      "-march=armv8-a+crc",
137275793eaSopenharmony_ci    ]
138275793eaSopenharmony_ci  }
139275793eaSopenharmony_ci} else {
140275793eaSopenharmony_ci  config("zlib_crc_config") {
141275793eaSopenharmony_ci    cflags = [
142275793eaSopenharmony_ci      "-Wno-incompatible-pointer-types",
143275793eaSopenharmony_ci      "-Werror",
144275793eaSopenharmony_ci      "-Wno-strict-prototypes",
145275793eaSopenharmony_ci      "-Wimplicit-function-declaration",
146275793eaSopenharmony_ci    ]
147275793eaSopenharmony_ci  }
148275793eaSopenharmony_ci}
149275793eaSopenharmony_ci
150275793eaSopenharmony_ciohos_static_library("libz_crc") {
151275793eaSopenharmony_ci  sources = [
152275793eaSopenharmony_ci    "crc32.c",
153275793eaSopenharmony_ci    "crc32.h",
154275793eaSopenharmony_ci    "zconf.h",
155275793eaSopenharmony_ci  ]
156275793eaSopenharmony_ci  configs = [ ":zlib_crc_config" ]
157275793eaSopenharmony_ci  public_configs = [ ":zlib_public_config" ]
158275793eaSopenharmony_ci
159275793eaSopenharmony_ci  part_name = "zlib"
160275793eaSopenharmony_ci  subsystem_name = "thirdparty"
161275793eaSopenharmony_ci}
162