// Copyright 2024 The Pigweed Authors
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.

package {
    default_applicable_licenses: ["external_pigweed_license"],
}

cc_library_static {
    name: "pw_bluetooth_proxy",
    defaults: [
        "pw_android_common_backends",
        "pw_android_common_target_support",
    ],

    // LINT.IfChange
    srcs: [
        "acl_data_channel.cc",
        "basic_l2cap_channel.cc",
        "channel_proxy.cc",
        "gatt_notify_channel.cc",
        "h4_storage.cc",
        "l2cap_aclu_signaling_channel.cc",
        "l2cap_channel.cc",
        "l2cap_channel_manager.cc",
        "l2cap_coc.cc",
        "l2cap_leu_signaling_channel.cc",
        "l2cap_signaling_channel.cc",
        "l2cap_status_tracker.cc",
        "proxy_host.cc",
        "recombiner.cc",
        "rfcomm_channel.cc",
        "rfcomm_fcs.cc",
        "single_channel_proxy.cc",
    ],
    export_include_dirs: [
        "public",
    ],
    static_libs: [
        "pw_allocator",
        "pw_containers",
        "pw_function",
        "pw_multibuf",
        "pw_result",
        "pw_span",
        "pw_span_cast",
        "pw_status",
    ],
    export_static_lib_headers: [
        "pw_allocator",
        "pw_containers",
        "pw_function",
        "pw_multibuf",
        "pw_result",
        "pw_span",
        "pw_status",
    ],
    header_libs: [
        "emboss_runtime_headers",
        "fuchsia_sdk_lib_stdcompat",
        "pw_bluetooth_emboss_util_include_dirs",
    ],
    generated_headers: [
        "pw_bluetooth_generate_emboss_att",
        "pw_bluetooth_generate_emboss_hci_commands",
        "pw_bluetooth_generate_emboss_hci_common",
        "pw_bluetooth_generate_emboss_hci_data",
        "pw_bluetooth_generate_emboss_hci_events",
        "pw_bluetooth_generate_emboss_hci_h4",
        "pw_bluetooth_generate_emboss_l2cap_frames",
        "pw_bluetooth_generate_emboss_rfcomm_frames",
    ],
    export_generated_headers: [
        "pw_bluetooth_generate_emboss_att",
        "pw_bluetooth_generate_emboss_hci_commands",
        "pw_bluetooth_generate_emboss_hci_common",
        "pw_bluetooth_generate_emboss_hci_data",
        "pw_bluetooth_generate_emboss_hci_events",
        "pw_bluetooth_generate_emboss_hci_h4",
        "pw_bluetooth_generate_emboss_l2cap_frames",
        "pw_bluetooth_generate_emboss_rfcomm_frames",
    ],
    // LINT.ThenChange(BUILD.gn, BUILD.bazel, CMakeLists.txt)
}
