1d9f0492fSopenharmony_ci# Copyright (c) 2022 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("//build/ohos.gni")
15d9f0492fSopenharmony_ci
16d9f0492fSopenharmony_ciconfig("seccomp_public_config") {
17d9f0492fSopenharmony_ci  include_dirs = [ "include" ]
18d9f0492fSopenharmony_ci}
19d9f0492fSopenharmony_ci
20d9f0492fSopenharmony_ciif (defined(build_seccomp) && build_seccomp) {
21d9f0492fSopenharmony_ci  if (build_variant == "root") {
22d9f0492fSopenharmony_ci    seccomp_enable_debug = true
23d9f0492fSopenharmony_ci  } else {
24d9f0492fSopenharmony_ci    seccomp_enable_debug = false
25d9f0492fSopenharmony_ci  }
26d9f0492fSopenharmony_ci
27d9f0492fSopenharmony_ci  if (!defined(ohos_lite)) {
28d9f0492fSopenharmony_ci    ohos_shared_library("seccomp") {
29d9f0492fSopenharmony_ci      sources = [ "../../../services/modules/seccomp/seccomp_policy.c" ]
30d9f0492fSopenharmony_ci
31d9f0492fSopenharmony_ci      public_configs = [ ":seccomp_public_config" ]
32d9f0492fSopenharmony_ci
33d9f0492fSopenharmony_ci      include_dirs = [
34d9f0492fSopenharmony_ci        "../include",
35d9f0492fSopenharmony_ci        "../../../services/modules",
36d9f0492fSopenharmony_ci        "../../../services/log",
37d9f0492fSopenharmony_ci      ]
38d9f0492fSopenharmony_ci
39d9f0492fSopenharmony_ci      if (seccomp_enable_debug) {
40d9f0492fSopenharmony_ci        include_dirs += [
41d9f0492fSopenharmony_ci          "../../../interfaces/innerkits/include",
42d9f0492fSopenharmony_ci          "../../../interfaces/innerkits/include/param",
43d9f0492fSopenharmony_ci        ]
44d9f0492fSopenharmony_ci
45d9f0492fSopenharmony_ci        defines = [ "WITH_SECCOMP_DEBUG" ]
46d9f0492fSopenharmony_ci      }
47d9f0492fSopenharmony_ci
48d9f0492fSopenharmony_ci      deps = [ "../../innerkits:libbegetutil" ]
49d9f0492fSopenharmony_ci
50d9f0492fSopenharmony_ci      external_deps = [
51d9f0492fSopenharmony_ci        "bounds_checking_function:libsec_shared",
52d9f0492fSopenharmony_ci        "config_policy:configpolicy_util",
53d9f0492fSopenharmony_ci      ]
54d9f0492fSopenharmony_ci
55d9f0492fSopenharmony_ci      license_file = "//base/startup/init/LICENSE"
56d9f0492fSopenharmony_ci
57d9f0492fSopenharmony_ci      part_name = "init"
58d9f0492fSopenharmony_ci      subsystem_name = "startup"
59d9f0492fSopenharmony_ci
60d9f0492fSopenharmony_ci      install_enable = true
61d9f0492fSopenharmony_ci      install_images = [ "system" ]
62d9f0492fSopenharmony_ci    }
63d9f0492fSopenharmony_ci  }
64d9f0492fSopenharmony_ci} else {
65d9f0492fSopenharmony_ci  group("seccomp") {
66d9f0492fSopenharmony_ci  }
67d9f0492fSopenharmony_ci}
68