12ee81decSopenharmony_ci# Copyright (c) 2022 Huawei Device Co., Ltd.
22ee81decSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
32ee81decSopenharmony_ci# you may not use this file except in compliance with the License.
42ee81decSopenharmony_ci# You may obtain a copy of the License at
52ee81decSopenharmony_ci#
62ee81decSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
72ee81decSopenharmony_ci#
82ee81decSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
92ee81decSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
102ee81decSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
112ee81decSopenharmony_ci# See the License for the specific language governing permissions and
122ee81decSopenharmony_ci# limitations under the License.
132ee81decSopenharmony_ci
142ee81decSopenharmony_ciimport("//base/security/device_security_level/common/dslm.gni")
152ee81decSopenharmony_ciimport("//build/ohos.gni")
162ee81decSopenharmony_ci
172ee81decSopenharmony_ciconfig("utils_static_config") {
182ee81decSopenharmony_ci  include_dirs = [ "include" ]
192ee81decSopenharmony_ci}
202ee81decSopenharmony_ci
212ee81decSopenharmony_ci# utils static lib
222ee81decSopenharmony_ciohos_static_library("utils_static") {
232ee81decSopenharmony_ci  sources = [
242ee81decSopenharmony_ci    "src/utils_base64.c",
252ee81decSopenharmony_ci    "src/utils_datetime.c",
262ee81decSopenharmony_ci    "src/utils_hexstring.c",
272ee81decSopenharmony_ci    "src/utils_json.c",
282ee81decSopenharmony_ci    "src/utils_mem.c",
292ee81decSopenharmony_ci    "src/utils_state_machine.c",
302ee81decSopenharmony_ci    "src/utils_tlv.c",
312ee81decSopenharmony_ci    "src/utils_work_queue.c",
322ee81decSopenharmony_ci  ]
332ee81decSopenharmony_ci
342ee81decSopenharmony_ci  include_dirs = [ "include" ]
352ee81decSopenharmony_ci
362ee81decSopenharmony_ci  deps = []
372ee81decSopenharmony_ci
382ee81decSopenharmony_ci  configs = [ "../../common:common_configs" ]
392ee81decSopenharmony_ci
402ee81decSopenharmony_ci  public_configs = [
412ee81decSopenharmony_ci    ":utils_static_config",
422ee81decSopenharmony_ci    "../../common:common_lite_configs",
432ee81decSopenharmony_ci  ]
442ee81decSopenharmony_ci
452ee81decSopenharmony_ci  if (defined(ohos_lite)) {
462ee81decSopenharmony_ci    sources += [ "src/utils_timer.c" ]
472ee81decSopenharmony_ci
482ee81decSopenharmony_ci    include_dirs += [
492ee81decSopenharmony_ci      "$dslm_common_lib_path/include",
502ee81decSopenharmony_ci      "$dslm_common_lib_path/timer_task/include",
512ee81decSopenharmony_ci    ]
522ee81decSopenharmony_ci
532ee81decSopenharmony_ci    if (ohos_kernel_type == "linux" || ohos_kernel_type == "liteos_a") {
542ee81decSopenharmony_ci      deps += [
552ee81decSopenharmony_ci        "$dslm_common_lib_path/timer_task:ace_kit_timer",
562ee81decSopenharmony_ci        "$dslm_hilog_path/featured:hilog_shared",
572ee81decSopenharmony_ci        "$dslm_lite_component_path/cJSON:cjson_shared",
582ee81decSopenharmony_ci      ]
592ee81decSopenharmony_ci    } else if (ohos_kernel_type == "liteos_m") {
602ee81decSopenharmony_ci      deps += [
612ee81decSopenharmony_ci        "$dslm_common_lib_path/timer_task:ace_kit_timer",
622ee81decSopenharmony_ci        "$dslm_hilog_path/featured:hilog_static",
632ee81decSopenharmony_ci        "$dslm_lite_component_path/cJSON:cjson_static",
642ee81decSopenharmony_ci      ]
652ee81decSopenharmony_ci    }
662ee81decSopenharmony_ci  } else {
672ee81decSopenharmony_ci    sanitize = {
682ee81decSopenharmony_ci      integer_overflow = true
692ee81decSopenharmony_ci      ubsan = true
702ee81decSopenharmony_ci      boundary_sanitize = true
712ee81decSopenharmony_ci      cfi = true
722ee81decSopenharmony_ci      cfi_cross_dso = true
732ee81decSopenharmony_ci      blocklist = "../../cfi_blocklist.txt"
742ee81decSopenharmony_ci    }
752ee81decSopenharmony_ci    branch_protector_ret = "pac_ret"
762ee81decSopenharmony_ci
772ee81decSopenharmony_ci    sources += [ "src/utils_timer.cpp" ]
782ee81decSopenharmony_ci
792ee81decSopenharmony_ci    external_deps = [
802ee81decSopenharmony_ci      "cJSON:cjson",
812ee81decSopenharmony_ci      "c_utils:utils",
822ee81decSopenharmony_ci      "hilog:libhilog",
832ee81decSopenharmony_ci    ]
842ee81decSopenharmony_ci  }
852ee81decSopenharmony_ci
862ee81decSopenharmony_ci  part_name = "device_security_level"
872ee81decSopenharmony_ci  subsystem_name = "security"
882ee81decSopenharmony_ci}
89