169570cc8Sopenharmony_ci# Copyright (c) 2024 Huawei Device Co., Ltd.
269570cc8Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
369570cc8Sopenharmony_ci# you may not use this file except in compliance with the License.
469570cc8Sopenharmony_ci# You may obtain a copy of the License at
569570cc8Sopenharmony_ci#
669570cc8Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
769570cc8Sopenharmony_ci#
869570cc8Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
969570cc8Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1069570cc8Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1169570cc8Sopenharmony_ci# See the License for the specific language governing permissions and
1269570cc8Sopenharmony_ci# limitations under the License.
1369570cc8Sopenharmony_ciimport("//base/startup/appspawn/appspawn.gni")
1469570cc8Sopenharmony_ciimport("//build/ohos.gni")
1569570cc8Sopenharmony_ci
1669570cc8Sopenharmony_ciconfig("appspawn_config") {
1769570cc8Sopenharmony_ci  visibility = [ "./*" ]
1869570cc8Sopenharmony_ci  include_dirs = [
1969570cc8Sopenharmony_ci    "${appspawn_innerkits_path}/include",
2069570cc8Sopenharmony_ci    "${appspawn_path}/modules/module_engine/include",
2169570cc8Sopenharmony_ci    "${appspawn_path}/util/include",
2269570cc8Sopenharmony_ci    "//commonlibrary/c_utils/base/include",
2369570cc8Sopenharmony_ci  ]
2469570cc8Sopenharmony_ci
2569570cc8Sopenharmony_ci  cflags = []
2669570cc8Sopenharmony_ci  if (build_selinux) {
2769570cc8Sopenharmony_ci    cflags += [ "-DWITH_SELINUX" ]
2869570cc8Sopenharmony_ci  }
2969570cc8Sopenharmony_ci
3069570cc8Sopenharmony_ci  if (build_seccomp) {
3169570cc8Sopenharmony_ci    cflags += [ "-DWITH_SECCOMP" ]
3269570cc8Sopenharmony_ci    if (appspawn_seccomp_privilege) {
3369570cc8Sopenharmony_ci      cflags += [ "-DSECCOMP_PRIVILEGE" ]
3469570cc8Sopenharmony_ci    }
3569570cc8Sopenharmony_ci  }
3669570cc8Sopenharmony_ci}
3769570cc8Sopenharmony_ci
3869570cc8Sopenharmony_ciif (!defined(ohos_lite)) {
3969570cc8Sopenharmony_ci  ohos_prebuilt_etc("appspawn.rc") {
4069570cc8Sopenharmony_ci    source = "appspawn.cfg"
4169570cc8Sopenharmony_ci    relative_install_dir = "init"
4269570cc8Sopenharmony_ci    subsystem_name = "${subsystem_name}"
4369570cc8Sopenharmony_ci    part_name = "${part_name}"
4469570cc8Sopenharmony_ci  }
4569570cc8Sopenharmony_ci
4669570cc8Sopenharmony_ci  ohos_prebuilt_etc("nativespawn.rc") {
4769570cc8Sopenharmony_ci    source = "nativespawn.cfg"
4869570cc8Sopenharmony_ci    relative_install_dir = "init"
4969570cc8Sopenharmony_ci    subsystem_name = "${subsystem_name}"
5069570cc8Sopenharmony_ci    part_name = "${part_name}"
5169570cc8Sopenharmony_ci  }
5269570cc8Sopenharmony_ci
5369570cc8Sopenharmony_ci  ohos_prebuilt_etc("cjappspawn.rc") {
5469570cc8Sopenharmony_ci    source = "cjappspawn.cfg"
5569570cc8Sopenharmony_ci    relative_install_dir = "init"
5669570cc8Sopenharmony_ci    subsystem_name = "${subsystem_name}"
5769570cc8Sopenharmony_ci    part_name = "${part_name}"
5869570cc8Sopenharmony_ci  }
5969570cc8Sopenharmony_ci}
6069570cc8Sopenharmony_ci
6169570cc8Sopenharmony_cigroup("appspawn_all") {
6269570cc8Sopenharmony_ci  deps = []
6369570cc8Sopenharmony_ci  if (!defined(ohos_lite)) {
6469570cc8Sopenharmony_ci    deps += [ "standard:appspawn" ]
6569570cc8Sopenharmony_ci    deps += [ "standard:appspawn_helper" ]
6669570cc8Sopenharmony_ci    deps += [ "standard:pid_ns_init" ]
6769570cc8Sopenharmony_ci    deps += [ ":appspawn.rc" ]
6869570cc8Sopenharmony_ci    deps += [ "etc:etc_files" ]
6969570cc8Sopenharmony_ci    deps += [ "modules/ace_adapter:appspawn_ace" ]
7069570cc8Sopenharmony_ci    deps += [ "modules/asan:appspawn_asan" ]
7169570cc8Sopenharmony_ci    deps += [ "modules/nweb_adapter:appspawn_nweb" ]
7269570cc8Sopenharmony_ci    deps += [ "modules/native_adapter:nativespawn" ]
7369570cc8Sopenharmony_ci    deps += [ "modules/sandbox:appspawn_sandbox" ]
7469570cc8Sopenharmony_ci    deps += [ "modules/common:appspawn_common" ]
7569570cc8Sopenharmony_ci    deps += [ "modules/sysevent:event_reporter" ]
7669570cc8Sopenharmony_ci    deps += [ "${appspawn_innerkits_path}/client:appspawn_client" ]
7769570cc8Sopenharmony_ci    deps += [
7869570cc8Sopenharmony_ci      "${appspawn_path}/modules/module_engine:libappspawn_module_engine",
7969570cc8Sopenharmony_ci      "${appspawn_path}/modules/module_engine:libappspawn_stub_empty",
8069570cc8Sopenharmony_ci    ]
8169570cc8Sopenharmony_ci    deps += [ "service/hnp:hnp" ]
8269570cc8Sopenharmony_ci    deps += [ "service/devicedebug:devicedebug" ]
8369570cc8Sopenharmony_ci    if (appspawn_support_cj) {  # for support cj appspawn
8469570cc8Sopenharmony_ci      deps += [
8569570cc8Sopenharmony_ci        ":cjappspawn.rc",
8669570cc8Sopenharmony_ci        "standard:cjappspawn",
8769570cc8Sopenharmony_ci      ]
8869570cc8Sopenharmony_ci    }
8969570cc8Sopenharmony_ci    if (appspawn_support_native) {  # for support nativespawn
9069570cc8Sopenharmony_ci      deps += [
9169570cc8Sopenharmony_ci        ":nativespawn.rc",
9269570cc8Sopenharmony_ci        "standard:nativespawn",
9369570cc8Sopenharmony_ci      ]
9469570cc8Sopenharmony_ci    }
9569570cc8Sopenharmony_ci  } else {
9669570cc8Sopenharmony_ci    deps += [ "lite:appspawn_lite" ]
9769570cc8Sopenharmony_ci  }
9869570cc8Sopenharmony_ci}
99