1# Copyright (c) 2024 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.
13
14import("//build/ohos.gni")
15import("//foundation/communication/netmanager_ext/netmanager_ext_config.gni")
16
17config("netfirewall_manager_config") {
18  include_dirs = [
19    "$EXT_INNERKITS_ROOT/include",
20    "$EXT_INNERKITS_ROOT/netfirewallclient/include",
21    "$NETCONNMANAGER_COMMON_DIR/include",
22    "$NETMANAGER_EXT_ROOT/utils/log/include",
23    "$NETFIREWALLMANAGER_SOURCE_DIR/include",
24    "$NETWORKSHAREMANAGER_UTILS_DIR/event_report/include",
25    "$NETSYSCONTROLLER_ROOT_DIR/include",
26    "$NETCONNMANAGER_UTILS_DIR/common_utils/include",
27    "$SAMGR_MANAGER_ROOT/interfaces/innerkits/samgr_proxy/include",
28  ]
29
30  defines = [
31    "NETMGR_EXT_LOG_TAG = \"NetFirewallManager\"",
32    "LOG_DOMAIN = 0xD0015B0",
33    "DEFAULT_RULE_FILE = \"/system/etc/communication/netmanager_ext/default_firewall_rule.json\"",
34  ]
35
36  if (enable_netmgr_ext_debug) {
37    defines += [ "NETMGR_DEBUG" ]
38  }
39}
40
41netfirewall_manager_sources = [
42  "$NETFIREWALLMANAGER_SOURCE_DIR/src/netfirewall_database.cpp",
43  "$NETFIREWALLMANAGER_SOURCE_DIR/src/netfirewall_db_helper.cpp",
44  "$NETFIREWALLMANAGER_SOURCE_DIR/src/netfirewall_default_rule_parser.cpp",
45  "$NETFIREWALLMANAGER_SOURCE_DIR/src/netfirewall_hisysevent.cpp",
46  "$NETFIREWALLMANAGER_SOURCE_DIR/src/netfirewall_intercept_recorder.cpp",
47  "$NETFIREWALLMANAGER_SOURCE_DIR/src/netfirewall_policy_manager.cpp",
48  "$NETFIREWALLMANAGER_SOURCE_DIR/src/netfirewall_preference_helper.cpp",
49  "$NETFIREWALLMANAGER_SOURCE_DIR/src/netfirewall_rule_manager.cpp",
50  "$NETFIREWALLMANAGER_SOURCE_DIR/src/netfirewall_rule_native_helper.cpp",
51  "$NETFIREWALLMANAGER_SOURCE_DIR/src/netfirewall_service.cpp",
52  "$NETFIREWALLMANAGER_SOURCE_DIR/src/netfirewall_stub.cpp",
53]
54
55netfirewall_manager_deps = [ "$NETMANAGER_EXT_ROOT/utils:net_event_report" ]
56
57netfirewall_manager_external_deps = [
58  "ability_base:want",
59  "ability_base:zuri",
60  "bundle_framework:appexecfwk_base",
61  "bundle_framework:appexecfwk_core",
62  "cJSON:cjson",
63  "c_utils:utils",
64  "common_event_service:cesfwk_innerkits",
65  "ffrt:libffrt",
66  "hilog:libhilog",
67  "hisysevent:libhisysevent",
68  "hitrace:hitrace_meter",
69  "ipc:ipc_core",
70  "netmanager_base:net_conn_manager_if",
71  "netmanager_base:net_data_share",
72  "netmanager_base:net_manager_common",
73  "netmanager_base:net_native_manager_if",
74  "netmanager_base:netsys_controller",
75  "os_account:os_account_innerkits",
76  "preferences:native_preferences",
77  "relational_store:native_rdb",
78  "safwk:system_ability_fwk",
79  "samgr:samgr_proxy",
80]
81
82ohos_shared_library("netfirewall_manager") {
83  configs = [
84    ":netfirewall_manager_config",
85    "$NETMANAGER_EXT_ROOT/resource:coverage_flags",
86  ]
87
88  sources = netfirewall_manager_sources
89  deps = netfirewall_manager_deps
90  external_deps = netfirewall_manager_external_deps
91
92  cflags = memory_optimization_cflags
93  cflags += [
94    "-fstack-protector-strong",
95    "-D_FORTIFY_SOURCE=2",
96    "-O2",
97  ]
98
99  cflags_cc = memory_optimization_cflags_cc
100  cflags_cc += [
101    "-fstack-protector-strong",
102    "-D_FORTIFY_SOURCE=2",
103    "-O2",
104  ]
105
106  deps += [ "$EXT_INNERKITS_ROOT/netfirewallclient:netfirewall_parcel" ]
107
108  ldflags = memory_optimization_ldflags
109
110  part_name = "netmanager_ext"
111  subsystem_name = "communication"
112}
113
114ohos_static_library("netfirewall_manager_static") {
115  configs = [
116    ":netfirewall_manager_config",
117    "$NETMANAGER_EXT_ROOT/resource:coverage_flags",
118  ]
119
120  sources = netfirewall_manager_sources
121  deps = netfirewall_manager_deps
122  external_deps = netfirewall_manager_external_deps
123
124  part_name = "netmanager_ext"
125  subsystem_name = "communication"
126}
127
128ohos_prebuilt_etc("netfirewall_default_rule") {
129  source = "$NETMANAGER_EXT_ROOT/services/netfirewallmanager/config/default_firewall_rule.json"
130  install_enable = true
131  relative_install_dir = "communication/netmanager_ext"
132  part_name = "netmanager_ext"
133  subsystem_name = "communication"
134}
135