• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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    "//base/startup/init/interfaces/innerkits/init_module_engine/include",
27  ]
28}
29
30ohos_static_library("libfsmanager_static") {
31  if (!defined(ohos_lite)) {
32    sources = [
33      "//base/startup/init/interfaces/innerkits/hookmgr/hookmgr.c",
34      "//base/startup/init/services/init/bootstagehooker.c",
35      "fstab.c",
36      "fstab_mount.c",
37      "switch_root/switch_root.c",
38    ]
39    include_dirs = [
40      "//base/startup/init/interfaces/innerkits/include",
41      "//base/startup/init/interfaces/innerkits/include/param",
42      "//base/startup/init/interfaces/innerkits/fs_manager/switch_root/include",
43      "//base/startup/init/services/log",
44      "//base/startup/init/services/param/include",
45    ]
46    defines = []
47    external_deps = [
48      "bounds_checking_function:libsec_static",
49      "cJSON:cjson",
50    ]
51    deps = [ "//base/startup/init/services/utils:libinit_utils" ]
52
53    if ((defined(global_parts_info) &&
54         defined(global_parts_info.startup_hvb)) ||
55        init_startup_feature_erofs_overlay) {
56      sources += [
57        "libfs_dm/fs_dm.c",
58        "libfs_dm/fs_dm_linear.c",
59        "libfs_dm/fs_dm_snapshot.c",
60         ]
61      include_dirs += [
62        "//base/startup/init/interfaces/innerkits/fs_manager/libfs_dm/include",
63        "//base/startup/init/ueventd/include",
64      ]
65      deps += [ "//base/startup/init/ueventd:libueventd_ramdisk_static" ]
66    }
67
68    if (defined(global_parts_info) && defined(global_parts_info.startup_hvb)) {
69      sources += [
70        "dm_verity/dm_verity.c",
71        "libfs_hvb/fs_hvb.c",
72        "libfs_hvb/hvb_ops.c",
73      ]
74
75      include_dirs += [
76        "//base/startup/init/interfaces/innerkits/fs_manager/libfs_hvb/include",
77        "//base/startup/init/interfaces/innerkits/fs_manager/dm_verity/include",
78      ]
79
80      defines += [ "SUPPORT_HVB" ]
81      external_deps += [ "hvb:libhvb_static" ]
82    }
83    if (init_startup_feature_erofs_overlay) {
84      sources += [
85        "erofs_overlay/erofs_mount_overlay.c",
86        "erofs_overlay/erofs_overlay_common.c",
87        "erofs_overlay/erofs_remount_overlay.c",
88      ]
89      include_dirs += [ "//base/startup/init/interfaces/innerkits/fs_manager/erofs_overlay/include" ]
90
91      defines += [ "EROFS_OVERLAY" ]
92    }
93  }
94
95  public_configs = [ ":libfsmanager_exported_configs" ]
96  part_name = "init"
97  subsystem_name = "startup"
98}
99
100ohos_static_library("libfsmanager_static_real") {
101  if (!defined(ohos_lite)) {
102    sources = [
103      "//base/startup/init/interfaces/innerkits/hookmgr/hookmgr.c",
104      "//base/startup/init/services/init/bootstagehooker.c",
105      "fstab.c",
106      "fstab_mount.c",
107      "switch_root/switch_root.c",
108    ]
109    include_dirs = [
110      "//base/startup/init/interfaces/innerkits/include",
111      "//base/startup/init/interfaces/innerkits/include/param",
112      "//base/startup/init/interfaces/innerkits/fs_manager/switch_root/include",
113      "//base/startup/init/services/log",
114      "//base/startup/init/services/param/include",
115    ]
116    external_deps = [
117      "bounds_checking_function:libsec_static",
118      "cJSON:cjson_static",
119    ]
120    deps = [ "//base/startup/init/services/utils:libinit_utils" ]
121    if (defined(global_parts_info) && defined(global_parts_info.startup_hvb)) {
122      sources += [
123        "dm_verity/dm_verity.c",
124        "libfs_dm/fs_dm.c",
125        "libfs_dm/fs_dm_linear.c",
126        "libfs_dm/fs_dm_snapshot.c",
127        "libfs_hvb/fs_hvb.c",
128        "libfs_hvb/hvb_ops.c",
129      ]
130
131      include_dirs += [
132        "//base/startup/init/interfaces/innerkits/fs_manager/libfs_dm/include",
133        "//base/startup/init/interfaces/innerkits/fs_manager/libfs_hvb/include",
134        "//base/startup/init/interfaces/innerkits/fs_manager/dm_verity/include",
135        "//base/startup/init/ueventd/include",
136      ]
137
138      defines = [ "SUPPORT_HVB" ]
139      external_deps += [ "hvb:libhvb_static" ]
140      deps += [ "//base/startup/init/ueventd:libueventd_ramdisk_static_real" ]
141    }
142  }
143
144  public_configs = [ ":libfsmanager_exported_configs" ]
145  part_name = "init"
146  subsystem_name = "startup"
147}
148