1cc290419Sopenharmony_ci# Copyright (C) 2024 Huawei Device Co., Ltd.
2cc290419Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3cc290419Sopenharmony_ci# you may not use this file except in compliance with the License.
4cc290419Sopenharmony_ci# You may obtain a copy of the License at
5cc290419Sopenharmony_ci#
6cc290419Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7cc290419Sopenharmony_ci#
8cc290419Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9cc290419Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10cc290419Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11cc290419Sopenharmony_ci# See the License for the specific language governing permissions and
12cc290419Sopenharmony_ci# limitations under the License.
13cc290419Sopenharmony_ci
14cc290419Sopenharmony_ciimport("//build/ohos.gni")
15cc290419Sopenharmony_ciimport("//developtools/hdc/hdc.gni")
16cc290419Sopenharmony_ci
17cc290419Sopenharmony_ciohos_executable("exec_sudo") {
18cc290419Sopenharmony_ci  if (hdc_feature_support_sudo) {
19cc290419Sopenharmony_ci    sources = [
20cc290419Sopenharmony_ci      "src/main.cpp",
21cc290419Sopenharmony_ci      "src/sudo_iam.cpp",
22cc290419Sopenharmony_ci    ]
23cc290419Sopenharmony_ci    sanitize = {
24cc290419Sopenharmony_ci      cfi = true
25cc290419Sopenharmony_ci      cfi_cross_dso = true
26cc290419Sopenharmony_ci      cfi_vcall_icall_only = true
27cc290419Sopenharmony_ci      debug = false
28cc290419Sopenharmony_ci    }
29cc290419Sopenharmony_ci
30cc290419Sopenharmony_ci    deps = []
31cc290419Sopenharmony_ci
32cc290419Sopenharmony_ci    external_deps = [
33cc290419Sopenharmony_ci      "c_utils:utils",
34cc290419Sopenharmony_ci      "ipc:ipc_single",
35cc290419Sopenharmony_ci      "os_account:account_iam_innerkits",
36cc290419Sopenharmony_ci      "os_account:os_account_innerkits",
37cc290419Sopenharmony_ci      "pin_auth:pinauth_framework",
38cc290419Sopenharmony_ci      "user_auth_framework:userauth_client",
39cc290419Sopenharmony_ci    ]
40cc290419Sopenharmony_ci
41cc290419Sopenharmony_ci    defines = [ "HAS_PIN_AUTH_PART" ]
42cc290419Sopenharmony_ci
43cc290419Sopenharmony_ci    if (build_selinux) {
44cc290419Sopenharmony_ci      external_deps += [ "selinux:libselinux" ]
45cc290419Sopenharmony_ci      defines += [ "SURPPORT_SELINUX" ]
46cc290419Sopenharmony_ci    }
47cc290419Sopenharmony_ci
48cc290419Sopenharmony_ci    subsystem_name = "developtools"
49cc290419Sopenharmony_ci    output_name = "sudo"
50cc290419Sopenharmony_ci    part_name = "hdc"
51cc290419Sopenharmony_ci  }
52cc290419Sopenharmony_ci}
53cc290419Sopenharmony_ci
54cc290419Sopenharmony_cigroup("sudo") {
55cc290419Sopenharmony_ci  if (hdc_feature_support_sudo) {
56cc290419Sopenharmony_ci    deps = [ ":exec_sudo" ]
57cc290419Sopenharmony_ci  }
58cc290419Sopenharmony_ci}
59