1# Copyright (c) 2022 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13import("//base/startup/init/begetd.gni")
14import("//build/ohos.gni")
15
16# For init only
17config("libfsmanager_exported_configs") {
18  visibility = [ ":*" ]
19  include_dirs = [
20    "./libfs_dm/include",
21    "./libfs_hvb/include",
22    "//base/startup/init/interfaces/innerkits/include/fs_manager",
23    "//base/startup/init/interfaces/innerkits/fs_manager/libfs_dm/include",
24    "//base/startup/init/interfaces/innerkits/fs_manager/erofs_overlay/include",
25    "//base/startup/init/interfaces/innerkits/fs_manager/switch_root/include",
26  ]
27}
28
29ohos_static_library("libfsmanager_static") {
30  if (!defined(ohos_lite)) {
31    sources = [
32      "fstab.c",
33      "fstab_mount.c",
34      "switch_root/switch_root.c",
35    ]
36    include_dirs = [
37      "//base/startup/init/interfaces/innerkits/include",
38      "//base/startup/init/interfaces/innerkits/include/param",
39      "//base/startup/init/interfaces/innerkits/init_module_engine/include",
40      "//base/startup/init/interfaces/innerkits/fs_manager/switch_root/include",
41      "//base/startup/init/services/log",
42      "//base/startup/init/services/param/include",
43    ]
44    defines = []
45    external_deps = [ "bounds_checking_function:libsec_static" ]
46    deps = [ "//base/startup/init/services/utils:libinit_utils" ]
47
48    if ((defined(global_parts_info) &&
49         defined(global_parts_info.startup_hvb)) ||
50        init_startup_feature_erofs_overlay) {
51      sources += [ "libfs_dm/fs_dm.c" ]
52      include_dirs += [
53        "//base/startup/init/interfaces/innerkits/fs_manager/libfs_dm/include",
54        "//base/startup/init/ueventd/include",
55      ]
56      deps += [ "//base/startup/init/ueventd:libueventd_ramdisk_static" ]
57    }
58
59    if (defined(global_parts_info) && defined(global_parts_info.startup_hvb)) {
60      sources += [
61        "dm_verity/dm_verity.c",
62        "libfs_hvb/fs_hvb.c",
63        "libfs_hvb/hvb_ops.c",
64      ]
65
66      include_dirs += [
67        "//base/startup/init/interfaces/innerkits/fs_manager/libfs_hvb/include",
68        "//base/startup/init/interfaces/innerkits/fs_manager/dm_verity/include",
69      ]
70
71      defines += [ "SUPPORT_HVB" ]
72      external_deps += [ "hvb:libhvb_static" ]
73    }
74    if (init_startup_feature_erofs_overlay) {
75      sources += [
76        "erofs_overlay/erofs_mount_overlay.c",
77        "erofs_overlay/erofs_overlay_common.c",
78        "erofs_overlay/erofs_remount_overlay.c",
79      ]
80      include_dirs += [ "//base/startup/init/interfaces/innerkits/fs_manager/erofs_overlay/include" ]
81
82      defines += [ "EROFS_OVERLAY" ]
83    }
84  }
85
86  public_configs = [ ":libfsmanager_exported_configs" ]
87  part_name = "init"
88  subsystem_name = "startup"
89}
90
91ohos_static_library("libfsmanager_static_real") {
92  if (!defined(ohos_lite)) {
93    sources = [
94      "fstab.c",
95      "fstab_mount.c",
96      "switch_root/switch_root.c",
97    ]
98    include_dirs = [
99      "//base/startup/init/interfaces/innerkits/include",
100      "//base/startup/init/interfaces/innerkits/include/param",
101      "//base/startup/init/interfaces/innerkits/init_module_engine/include",
102      "//base/startup/init/interfaces/innerkits/fs_manager/switch_root/include",
103      "//base/startup/init/services/log",
104      "//base/startup/init/services/param/include",
105    ]
106    external_deps = [ "bounds_checking_function:libsec_static" ]
107    deps = [ "//base/startup/init/services/utils:libinit_utils" ]
108    if (defined(global_parts_info) && defined(global_parts_info.startup_hvb)) {
109      sources += [
110        "dm_verity/dm_verity.c",
111        "libfs_dm/fs_dm.c",
112        "libfs_hvb/fs_hvb.c",
113        "libfs_hvb/hvb_ops.c",
114      ]
115
116      include_dirs += [
117        "//base/startup/init/interfaces/innerkits/fs_manager/libfs_dm/include",
118        "//base/startup/init/interfaces/innerkits/fs_manager/libfs_hvb/include",
119        "//base/startup/init/interfaces/innerkits/fs_manager/dm_verity/include",
120        "//base/startup/init/ueventd/include",
121      ]
122
123      defines = [ "SUPPORT_HVB" ]
124      external_deps += [ "hvb:libhvb_static" ]
125      deps += [ "//base/startup/init/ueventd:libueventd_ramdisk_static_real" ]
126    }
127  }
128
129  public_configs = [ ":libfsmanager_exported_configs" ]
130  part_name = "init"
131  subsystem_name = "startup"
132}
133