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("device_security_level_sdk_config") {
182ee81decSopenharmony_ci  include_dirs = [ "include" ]
192ee81decSopenharmony_ci}
202ee81decSopenharmony_ci
212ee81decSopenharmony_cigroup("fwk_group") {
222ee81decSopenharmony_ci  if (os_level == "standard") {
232ee81decSopenharmony_ci    deps = [ ":dslm_sdk" ]
242ee81decSopenharmony_ci  } else if (os_level == "small") {
252ee81decSopenharmony_ci    deps = [ ":dslm_sdk_small" ]
262ee81decSopenharmony_ci  } else if (os_level == "mini") {
272ee81decSopenharmony_ci    deps = [ ":dslm_sdk_mini" ]
282ee81decSopenharmony_ci  }
292ee81decSopenharmony_ci}
302ee81decSopenharmony_ci
312ee81decSopenharmony_ciif (defined(ohos_lite)) {
322ee81decSopenharmony_ci  if (ohos_kernel_type == "linux" || ohos_kernel_type == "liteos_a") {
332ee81decSopenharmony_ci    ohos_shared_library("dslm_sdk_small") {
342ee81decSopenharmony_ci      sources = [
352ee81decSopenharmony_ci        "src/lite/device_security_info.c",
362ee81decSopenharmony_ci        "src/lite/small/device_security_level_proxy.c",
372ee81decSopenharmony_ci      ]
382ee81decSopenharmony_ci
392ee81decSopenharmony_ci      include_dirs = [
402ee81decSopenharmony_ci        "src/lite/include",
412ee81decSopenharmony_ci        "src/lite/small",
422ee81decSopenharmony_ci        "../../services/include",
432ee81decSopenharmony_ci        "../../common/include",
442ee81decSopenharmony_ci      ]
452ee81decSopenharmony_ci
462ee81decSopenharmony_ci      configs = [
472ee81decSopenharmony_ci        "../../common:common_configs",
482ee81decSopenharmony_ci        "../../common:common_lite_configs",
492ee81decSopenharmony_ci      ]
502ee81decSopenharmony_ci
512ee81decSopenharmony_ci      public_configs = [ ":device_security_level_sdk_config" ]
522ee81decSopenharmony_ci
532ee81decSopenharmony_ci      deps = [
542ee81decSopenharmony_ci        "$dslm_hilog_path/featured:hilog_shared",
552ee81decSopenharmony_ci        "$dslm_ipc_path/interfaces/innerkits/c/ipc:ipc_single",
562ee81decSopenharmony_ci        "$dslm_samgr_path/samgr_lite/samgr:samgr",
572ee81decSopenharmony_ci        "../../baselib/utils:utils_static",
582ee81decSopenharmony_ci      ]
592ee81decSopenharmony_ci
602ee81decSopenharmony_ci      part_name = "device_security_level"
612ee81decSopenharmony_ci      subsystem_name = "security"
622ee81decSopenharmony_ci    }
632ee81decSopenharmony_ci    group("dslm_sdk") {
642ee81decSopenharmony_ci    }
652ee81decSopenharmony_ci  } else if (ohos_kernel_type == "liteos_m") {
662ee81decSopenharmony_ci    ohos_static_library("dslm_sdk_mini") {
672ee81decSopenharmony_ci      sources = [
682ee81decSopenharmony_ci        "src/lite/device_security_info.c",
692ee81decSopenharmony_ci        "src/lite/mini/device_security_level_inner.c",
702ee81decSopenharmony_ci      ]
712ee81decSopenharmony_ci
722ee81decSopenharmony_ci      include_dirs = [
732ee81decSopenharmony_ci        "src/lite/include",
742ee81decSopenharmony_ci        "src/lite/mini",
752ee81decSopenharmony_ci        "../../common/include",
762ee81decSopenharmony_ci        "../../interfaces/inner_api/src/lite",
772ee81decSopenharmony_ci        "../../services/include",
782ee81decSopenharmony_ci        "../../services/sa/lite/mini",
792ee81decSopenharmony_ci      ]
802ee81decSopenharmony_ci
812ee81decSopenharmony_ci      configs = [
822ee81decSopenharmony_ci        "../../common:common_configs",
832ee81decSopenharmony_ci        "../../common:common_lite_configs",
842ee81decSopenharmony_ci      ]
852ee81decSopenharmony_ci
862ee81decSopenharmony_ci      public_configs = [ ":device_security_level_sdk_config" ]
872ee81decSopenharmony_ci
882ee81decSopenharmony_ci      deps = [
892ee81decSopenharmony_ci        "$dslm_hilog_path/featured:hilog_static",
902ee81decSopenharmony_ci        "$dslm_samgr_path/samgr_lite/samgr:samgr",
912ee81decSopenharmony_ci        "../../baselib/utils:utils_static",
922ee81decSopenharmony_ci      ]
932ee81decSopenharmony_ci
942ee81decSopenharmony_ci      part_name = "device_security_level"
952ee81decSopenharmony_ci      subsystem_name = "security"
962ee81decSopenharmony_ci    }
972ee81decSopenharmony_ci    group("dslm_sdk") {
982ee81decSopenharmony_ci    }
992ee81decSopenharmony_ci  }
1002ee81decSopenharmony_ci} else {
1012ee81decSopenharmony_ci  ohos_shared_library("dslm_sdk") {
1022ee81decSopenharmony_ci    sanitize = {
1032ee81decSopenharmony_ci      integer_overflow = true
1042ee81decSopenharmony_ci      ubsan = true
1052ee81decSopenharmony_ci      boundary_sanitize = true
1062ee81decSopenharmony_ci      cfi = true
1072ee81decSopenharmony_ci      cfi_cross_dso = true
1082ee81decSopenharmony_ci      blocklist = "../../cfi_blocklist.txt"
1092ee81decSopenharmony_ci    }
1102ee81decSopenharmony_ci    branch_protector_ret = "pac_ret"
1112ee81decSopenharmony_ci
1122ee81decSopenharmony_ci    sources = [
1132ee81decSopenharmony_ci      "src/standard/device_security_info.cpp",
1142ee81decSopenharmony_ci      "src/standard/device_security_level_callback_helper.cpp",
1152ee81decSopenharmony_ci      "src/standard/device_security_level_callback_stub.cpp",
1162ee81decSopenharmony_ci      "src/standard/device_security_level_loader.cpp",
1172ee81decSopenharmony_ci      "src/standard/device_security_level_proxy.cpp",
1182ee81decSopenharmony_ci    ]
1192ee81decSopenharmony_ci
1202ee81decSopenharmony_ci    include_dirs = [
1212ee81decSopenharmony_ci      "../../services/include",
1222ee81decSopenharmony_ci      "../../common/include",
1232ee81decSopenharmony_ci    ]
1242ee81decSopenharmony_ci
1252ee81decSopenharmony_ci    configs = [ "../../common:common_configs" ]
1262ee81decSopenharmony_ci
1272ee81decSopenharmony_ci    public_configs = [ ":device_security_level_sdk_config" ]
1282ee81decSopenharmony_ci
1292ee81decSopenharmony_ci    external_deps = [
1302ee81decSopenharmony_ci      "c_utils:utils",
1312ee81decSopenharmony_ci      "hilog:libhilog",
1322ee81decSopenharmony_ci      "init:libbegetutil",
1332ee81decSopenharmony_ci      "ipc:ipc_core",
1342ee81decSopenharmony_ci      "samgr:samgr_proxy",
1352ee81decSopenharmony_ci    ]
1362ee81decSopenharmony_ci
1372ee81decSopenharmony_ci    part_name = "device_security_level"
1382ee81decSopenharmony_ci    subsystem_name = "security"
1392ee81decSopenharmony_ci  }
1402ee81decSopenharmony_ci}
141