1# Copyright (c) Huawei Technologies Co., Ltd. 2022. All rights reserved. 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("../../base/config.gni") 16 17ohos_source_set("hiebpfplugin_source") { 18 sources = [ 19 "${OHOS_PROFILER_DIR}/device/services/profiler_service/src/trace_file_helper.cpp", 20 "${OHOS_PROFILER_DIR}/device/services/profiler_service/src/trace_file_writer.cpp", 21 "src/hiebpf_module.cpp", 22 ] 23 include_dirs = [ 24 "include", 25 "${OHOS_PROFILER_DIR}/interfaces/kits", 26 "${OHOS_PROFILER_DIR}/device/base/include", 27 "${OHOS_PROFILER_DIR}/device/plugins/api/include", 28 "${OHOS_PROFILER_DIR}/device/services/profiler_service/src", 29 ] 30 deps = [ 31 "${OHOS_PROFILER_DIR}/protos/services:common_types_lite_proto", 32 "${OHOS_PROFILER_DIR}/protos/types/plugins/hiebpf_data:hiebpf_data_cpp", 33 "../../base:hiprofiler_base", 34 ] 35 36 if (current_toolchain != host_toolchain) { 37 defines = [ 38 "HAVE_HILOG", 39 "LITE_PROTO", 40 ] 41 external_deps = [ 42 "bounds_checking_function:libsec_shared", 43 "hilog:libhilog_base", 44 "init:libbegetutil", 45 "openssl:libcrypto_shared", 46 "protobuf:protobuf_lite", 47 ] 48 } 49 subsystem_name = "${OHOS_PROFILER_SUBSYS_NAME}" 50 part_name = "${OHOS_PROFILER_PART_NAME}" 51 public_configs = [ "${OHOS_PROFILER_DIR}/device/base:hiprofiler_test_config" ] 52} 53 54ohos_shared_library("hiebpfplugin") { 55 output_name = "hiebpfplugin" 56 version_script = "libhiebpf_plugin.map" 57 deps = [ ":hiebpfplugin_source" ] 58 if (current_toolchain != host_toolchain) { 59 defines = [ 60 "HAVE_HILOG", 61 "LITE_PROTO", 62 ] 63 external_deps = [ "hilog:libhilog_base" ] 64 } 65 install_enable = true 66 subsystem_name = "${OHOS_PROFILER_SUBSYS_NAME}" 67 part_name = "${OHOS_PROFILER_PART_NAME}" 68} 69 70group("ebpf_targets") { 71 deps = [ 72 ":hiebpfplugin", 73 "tools:ebpf_converter", 74 ] 75 if (!use_libfuzzer) { 76 deps += [ "tools:ebpf_converter(${host_toolchain})" ] 77 } 78} 79