1d9f0492fSopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd.
2d9f0492fSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3d9f0492fSopenharmony_ci# you may not use this file except in compliance with the License.
4d9f0492fSopenharmony_ci# You may obtain a copy of the License at
5d9f0492fSopenharmony_ci#
6d9f0492fSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0
7d9f0492fSopenharmony_ci#
8d9f0492fSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9d9f0492fSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10d9f0492fSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11d9f0492fSopenharmony_ci# See the License for the specific language governing permissions and
12d9f0492fSopenharmony_ci# limitations under the License.
13d9f0492fSopenharmony_ci
14d9f0492fSopenharmony_ciimport("//base/startup/init/begetd.gni")
15d9f0492fSopenharmony_ciimport("//build/ohos.gni")
16d9f0492fSopenharmony_ci
17d9f0492fSopenharmony_cicomm_include = [
18d9f0492fSopenharmony_ci  ".",
19d9f0492fSopenharmony_ci  "..",
20d9f0492fSopenharmony_ci  "../init_hook",
21d9f0492fSopenharmony_ci  "//base/startup/init/interfaces/innerkits/include/param",
22d9f0492fSopenharmony_ci  "//base/startup/init/interfaces/innerkits/include",
23d9f0492fSopenharmony_ci  "//base/startup/init/interfaces/innerkits/include/syspara",
24d9f0492fSopenharmony_ci  "//base/startup/init/interfaces/innerkits/syspara",
25d9f0492fSopenharmony_ci]
26d9f0492fSopenharmony_ci
27d9f0492fSopenharmony_ciif (defined(ohos_lite)) {
28d9f0492fSopenharmony_ci  static_library("libudidcomm") {
29d9f0492fSopenharmony_ci    defines = [
30d9f0492fSopenharmony_ci      "_GNU_SOURCE",
31d9f0492fSopenharmony_ci      "OHOS_LITE",
32d9f0492fSopenharmony_ci    ]
33d9f0492fSopenharmony_ci    if (init_lite_no_log) {
34d9f0492fSopenharmony_ci      defines += [ "INIT_NO_LOG" ]
35d9f0492fSopenharmony_ci    }
36d9f0492fSopenharmony_ci    include_dirs = comm_include
37d9f0492fSopenharmony_ci    include_dirs += [
38d9f0492fSopenharmony_ci      "../../../interfaces/innerkits/init_module_engine/include",
39d9f0492fSopenharmony_ci      "../../../interfaces/hals",
40d9f0492fSopenharmony_ci      "//base/hiviewdfx/hilog_lite/interfaces/native/kits",
41d9f0492fSopenharmony_ci    ]
42d9f0492fSopenharmony_ci    sources = [
43d9f0492fSopenharmony_ci      "udid_adp.c",
44d9f0492fSopenharmony_ci      "udid_comm.c",
45d9f0492fSopenharmony_ci    ]
46d9f0492fSopenharmony_ci
47d9f0492fSopenharmony_ci    deps = []
48d9f0492fSopenharmony_ci    external_deps = []
49d9f0492fSopenharmony_ci    if (ohos_kernel_type == "liteos_a" || ohos_kernel_type == "linux") {
50d9f0492fSopenharmony_ci      external_deps += [
51d9f0492fSopenharmony_ci        "bounds_checking_function:libsec_shared",
52d9f0492fSopenharmony_ci        "mbedtls:mbedtls_shared",
53d9f0492fSopenharmony_ci      ]
54d9f0492fSopenharmony_ci    } else if (ohos_kernel_type == "liteos_m") {
55d9f0492fSopenharmony_ci      external_deps += [
56d9f0492fSopenharmony_ci        "bounds_checking_function:libsec_static",
57d9f0492fSopenharmony_ci        "mbedtls:mbedtls_static",
58d9f0492fSopenharmony_ci      ]
59d9f0492fSopenharmony_ci    }
60d9f0492fSopenharmony_ci
61d9f0492fSopenharmony_ci    #if product exit, use product
62d9f0492fSopenharmony_ci    if (init_feature_begetctl_liteos) {
63d9f0492fSopenharmony_ci      PRODUCT_HAL_SYSPARAM_PATH =
64d9f0492fSopenharmony_ci          rebase_path("${ohos_product_adapter_dir}/utils/sys_param")
65d9f0492fSopenharmony_ci      cmd = "if [ -f ${PRODUCT_HAL_SYSPARAM_PATH}/BUILD.gn ]; then echo true; else echo false; fi"
66d9f0492fSopenharmony_ci      PRODUCT_HAL_SYSPARAM_EXISTS =
67d9f0492fSopenharmony_ci          exec_script("//build/lite/run_shell_cmd.py", [ cmd ], "value")
68d9f0492fSopenharmony_ci      if (PRODUCT_HAL_SYSPARAM_EXISTS) {
69d9f0492fSopenharmony_ci        deps += [ "$ohos_product_adapter_dir/utils/sys_param:hal_sysparam" ]
70d9f0492fSopenharmony_ci      }
71d9f0492fSopenharmony_ci      deps += [ "../../../interfaces/hals/utils/sys_param:hal_sys_param" ]
72d9f0492fSopenharmony_ci    }
73d9f0492fSopenharmony_ci  }
74d9f0492fSopenharmony_ci} else {
75d9f0492fSopenharmony_ci  ohos_shared_library("udidmodule") {
76d9f0492fSopenharmony_ci    sources = [
77d9f0492fSopenharmony_ci      "udid_adp.c",
78d9f0492fSopenharmony_ci      "udid_comm.c",
79d9f0492fSopenharmony_ci    ]
80d9f0492fSopenharmony_ci    defines = [ "_GNU_SOURCE" ]
81d9f0492fSopenharmony_ci    include_dirs = comm_include
82d9f0492fSopenharmony_ci    deps = [ "//base/startup/init/interfaces/innerkits/init_module_engine:libinit_module_engine" ]
83d9f0492fSopenharmony_ci
84d9f0492fSopenharmony_ci    external_deps = [
85d9f0492fSopenharmony_ci      "bounds_checking_function:libsec_shared",
86d9f0492fSopenharmony_ci      "mbedtls:mbedtls_shared",
87d9f0492fSopenharmony_ci    ]
88d9f0492fSopenharmony_ci
89d9f0492fSopenharmony_ci    part_name = "init"
90d9f0492fSopenharmony_ci    subsystem_name = "startup"
91d9f0492fSopenharmony_ci    if (target_cpu == "arm64" || target_cpu == "x86_64" ||
92d9f0492fSopenharmony_ci        target_cpu == "riscv64") {
93d9f0492fSopenharmony_ci      module_install_dir = "lib64/init"
94d9f0492fSopenharmony_ci    } else {
95d9f0492fSopenharmony_ci      module_install_dir = "lib/init"
96d9f0492fSopenharmony_ci    }
97d9f0492fSopenharmony_ci    install_images = [
98d9f0492fSopenharmony_ci      "system",
99d9f0492fSopenharmony_ci      "updater",
100d9f0492fSopenharmony_ci    ]
101d9f0492fSopenharmony_ci  }
102d9f0492fSopenharmony_ci
103d9f0492fSopenharmony_ci  config("udid_static_config") {
104d9f0492fSopenharmony_ci    include_dirs = [ "." ]
105d9f0492fSopenharmony_ci  }
106d9f0492fSopenharmony_ci
107d9f0492fSopenharmony_ci  ohos_source_set("libudid_static") {
108d9f0492fSopenharmony_ci    sources = [ "udid_static.c" ]
109d9f0492fSopenharmony_ci    defines = [ "_GNU_SOURCE" ]
110d9f0492fSopenharmony_ci    include_dirs = comm_include
111d9f0492fSopenharmony_ci    public_configs = [ ":udid_static_config" ]
112d9f0492fSopenharmony_ci    public_configs += [ "../../../interfaces/innerkits/init_module_engine:init_module_engine_exported_config" ]
113d9f0492fSopenharmony_ci    part_name = "init"
114d9f0492fSopenharmony_ci    subsystem_name = "startup"
115d9f0492fSopenharmony_ci  }
116d9f0492fSopenharmony_ci
117d9f0492fSopenharmony_ci  # for begetutil
118d9f0492fSopenharmony_ci  ohos_static_library("libudidcomm") {
119d9f0492fSopenharmony_ci    sources = [ "udid_comm.c" ]
120d9f0492fSopenharmony_ci    defines = [ "_GNU_SOURCE" ]
121d9f0492fSopenharmony_ci    include_dirs = comm_include
122d9f0492fSopenharmony_ci    external_deps = [ "bounds_checking_function:libsec_shared" ]
123d9f0492fSopenharmony_ci
124d9f0492fSopenharmony_ci    part_name = "init"
125d9f0492fSopenharmony_ci    subsystem_name = "startup"
126d9f0492fSopenharmony_ci  }
127d9f0492fSopenharmony_ci
128d9f0492fSopenharmony_ci  ohos_static_library("libudidcomm_static") {
129d9f0492fSopenharmony_ci    sources = [ "udid_comm.c" ]
130d9f0492fSopenharmony_ci    defines = [ "_GNU_SOURCE" ]
131d9f0492fSopenharmony_ci    include_dirs = comm_include
132d9f0492fSopenharmony_ci    external_deps = [ "bounds_checking_function:libsec_static" ]
133d9f0492fSopenharmony_ci
134d9f0492fSopenharmony_ci    part_name = "init"
135d9f0492fSopenharmony_ci    subsystem_name = "startup"
136d9f0492fSopenharmony_ci  }
137d9f0492fSopenharmony_ci}
138