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 "//third_party/bounds_checking_function/include", 30 ] 31 deps = [ 32 "${OHOS_PROFILER_DIR}/protos/services:common_types_lite_proto", 33 "${OHOS_PROFILER_DIR}/protos/types/plugins/hiebpf_data:hiebpf_data_cpp", 34 "../../base:hiprofiler_base", 35 "//third_party/bounds_checking_function:libsec_static", 36 "//third_party/openssl:libcrypto_shared", 37 ] 38 39 if (current_toolchain != host_toolchain) { 40 defines = [ 41 "HAVE_HILOG", 42 "LITE_PROTO", 43 ] 44 external_deps = [ "hilog:libhilog" ] 45 } 46 subsystem_name = "${OHOS_PROFILER_SUBSYS_NAME}" 47 part_name = "${OHOS_PROFILER_PART_NAME}" 48 public_configs = [ "${OHOS_PROFILER_DIR}/device/base:hiprofiler_test_config" ] 49} 50 51ohos_shared_library("hiebpfplugin") { 52 output_name = "hiebpfplugin" 53 54 deps = [ ":hiebpfplugin_source" ] 55 if (current_toolchain != host_toolchain) { 56 defines = [ 57 "HAVE_HILOG", 58 "LITE_PROTO", 59 ] 60 external_deps = [ "hilog:libhilog" ] 61 } 62 install_enable = true 63 subsystem_name = "${OHOS_PROFILER_SUBSYS_NAME}" 64 part_name = "${OHOS_PROFILER_PART_NAME}" 65} 66 67group("ebpf_targets") { 68 deps = [ 69 ":hiebpfplugin", 70 "tools:ebpf_converter", 71 ] 72 if (!use_libfuzzer) { 73 deps += [ 74 "tools:ebpf_converter(${host_toolchain})", 75 "tools:ebpf_converter(//build/toolchain/mingw:mingw_x86_64)", 76 ] 77 } 78} 79