1# Copyright (c) 2021-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("//base/hiviewdfx/faultloggerd/faultloggerd.gni") 15 16faultloggerd_sources = [ 17 "fault_logger_config.cpp", 18 "fault_logger_daemon.cpp", 19 "fault_logger_pipe.cpp", 20 "main.cpp", 21] 22 23if (defined(ohos_lite)) { 24 copy("faultlogger.cfg") { 25 sources = [ "$faultloggerd_path/services/config/faultloggerd.cfg" ] 26 outputs = [ "$root_out_dir/etc/init/faultloggerd.cfg" ] 27 } 28 29 copy("faultlogger.conf") { 30 sources = [ "$faultloggerd_path/services/config/faultlogger.conf" ] 31 outputs = [ "$root_out_dir/etc/faultlogger.conf" ] 32 } 33 34 executable("faultloggerd") { 35 visibility = [ "*:*" ] 36 37 include_dirs = [ 38 ".", 39 "$c_utils_include_path", 40 "$faultloggerd_interfaces_path/common", 41 "$faultloggerd_path/common/dfxlog", 42 "$faultloggerd_path/common/dfxutil", 43 "$faultloggerd_path/tools/process_dump", 44 "$hilog_lite_include_path", 45 "$faultloggerd_path/interfaces/innerkits/faultloggerd_client/include", 46 "$faultloggerd_path/interfaces/innerkits/faultloggerd_client", 47 ] 48 49 sources = faultloggerd_sources 50 sources += [ "$c_utils_src_path/directory_ex.cpp" ] 51 52 cflags = [ "-fstack-protector-strong" ] 53 54 deps = [ 55 ":faultlogger.conf", 56 "$faultloggerd_common_path/trace:dfx_trace", 57 "$faultloggerd_path/common/dfxlog:dfx_hilog", 58 "$faultloggerd_path/common/dfxutil:dfx_util", 59 "$faultloggerd_path/interfaces/innerkits/faultloggerd_client:libfaultloggerd", 60 ] 61 62 external_deps = [ "hilog_lite:hilog_shared" ] 63 64 defines = [ "is_ohos_lite" ] 65 if (faultloggerd_hisysevent_enable) { 66 deps += [ "hisysevent:libhisysevent" ] 67 } else { 68 defines += [ "HISYSEVENT_DISABLE" ] 69 } 70 } 71} else { 72 config("faultloggerd_config") { 73 visibility = [ ":*" ] 74 75 include_dirs = [ 76 ".", 77 "$faultloggerd_interfaces_path/common", 78 "$faultloggerd_path/common/dfxlog", 79 "$faultloggerd_path/common/dfxutil", 80 "$faultloggerd_path/tools/process_dump", 81 "$faultloggerd_path/interfaces/innerkits/faultloggerd_client", 82 "$faultloggerd_path/interfaces/innerkits/signal_handler", 83 ] 84 } 85 86 ohos_prebuilt_etc("faultloggerd.cfg") { 87 if (use_musl) { 88 source = "config/faultloggerd.cfg" 89 } else { 90 source = "config/bionic/faultloggerd.cfg" 91 } 92 93 relative_install_dir = "init" 94 part_name = "faultloggerd" 95 subsystem_name = "hiviewdfx" 96 } 97 98 ohos_prebuilt_etc("faultloggerd.para") { 99 source = "config/faultloggerd.para" 100 relative_install_dir = "param" 101 part_name = "faultloggerd" 102 subsystem_name = "hiviewdfx" 103 } 104 105 ohos_prebuilt_etc("faultloggerd.para.dac") { 106 source = "config/faultloggerd.para.dac" 107 relative_install_dir = "param" 108 part_name = "faultloggerd" 109 subsystem_name = "hiviewdfx" 110 } 111 112 ohos_prebuilt_etc("faultlogger.conf") { 113 source = "config/faultlogger.conf" 114 part_name = "faultloggerd" 115 subsystem_name = "hiviewdfx" 116 } 117 118 ohos_executable("faultloggerd") { 119 install_enable = true 120 configs = [ 121 ":faultloggerd_config", 122 "$faultloggerd_path/common/build:coverage_flags", 123 ] 124 sources = faultloggerd_sources 125 126 cflags = [ "-fstack-protector-strong" ] 127 cflags_cc = [ "-DDEBUG_CRASH_LOCAL_HANDLER" ] 128 defines = [ 129 "DFX_LOG_HILOG_BASE", 130 "DFX_ENABLE_TRACE", 131 ] 132 133 deps = [ 134 ":faultlogger.conf", 135 ":faultloggerd.para", 136 ":faultloggerd.para.dac", 137 "$faultloggerd_frameworks_path/localhandler:dfx_local_handler_src", 138 "$faultloggerd_path/common/dfxlog:dfx_hilog_base", 139 "$faultloggerd_path/common/dfxutil:dfx_util", 140 "$faultloggerd_path/common/trace:dfx_trace", 141 "$faultloggerd_path/interfaces/innerkits/faultloggerd_client:libfaultloggerd", 142 ] 143 144 if (!is_asan) { 145 deps += [ ":faultloggerd.cfg" ] 146 } 147 148 external_deps = [ 149 "bounds_checking_function:libsec_shared", 150 "c_utils:utils", 151 "hilog:libhilog_base", 152 "hisysevent:libhisysevent", 153 "hitrace:hitrace_meter", 154 "init:libbegetutil", 155 ] 156 version_script = "faultloggerd.map" 157 install_images = [ 158 "system", 159 "updater", 160 ] 161 part_name = "faultloggerd" 162 subsystem_name = "hiviewdfx" 163 } 164 165 ohos_source_set("faultloggerd_fuzzer_src") { 166 configs = [ ":faultloggerd_config" ] 167 defines = [ 168 "FAULTLOGGERD_FUZZER", 169 "DFX_ENABLE_TRACE", 170 ] 171 sources = [ 172 "fault_logger_config.cpp", 173 "fault_logger_daemon.cpp", 174 "fault_logger_pipe.cpp", 175 ] 176 177 deps = [ 178 "$faultloggerd_common_path/dfxlog:dfx_hilog", 179 "$faultloggerd_common_path/dfxutil:dfx_util", 180 "$faultloggerd_path/common/trace:dfx_trace", 181 "$faultloggerd_path/interfaces/innerkits/faultloggerd_client:libfaultloggerd", 182 ] 183 external_deps = [ 184 "c_utils:utils", 185 "hilog:libhilog_base", 186 "hisysevent:libhisysevent", 187 "hitrace:hitrace_meter", 188 "init:libbegetutil", 189 ] 190 part_name = "faultloggerd" 191 subsystem_name = "hiviewdfx" 192 } 193} 194