// Copyright 2023 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"],
}

// To use the pw_log_basic facade, add pw_log_basic_no_backends to the defaults
// list of the library or binary that uses it and provide the pw_sys_io backend
// and its backend as dependencies.
cc_defaults {
    name: "pw_log_basic_no_backends",
    defaults: [
        "pw_android_common_target_support",
        "pw_sys_io_no_backends",
    ],
    header_libs: [
        "pw_log",
        "pw_log_basic_include_dirs",
        "pw_sys_io_include_dirs",
    ],
    export_header_lib_headers: [
        "pw_log_basic_include_dirs",
    ],
    static_libs: [
        "pw_preprocessor",
        "pw_string",
    ],
    export_static_lib_headers: [
        "pw_preprocessor",
    ],
    srcs: [
        ":pw_log_basic_scr_files",
    ],
}

// Do not include these since they are for pw_log_basic_no_backends. Depend on
// pw_log_basic_no_backends instead.
cc_library_headers {
    name: "pw_log_basic_include_dirs",
    defaults: [
        "pw_android_common_target_support",
    ],
    export_include_dirs: [
        "public",
        "public_overrides",
    ],
}

// Do not include these since they are for pw_log_basic_no_backends. Depend on
// pw_log_basic_no_backends instead.
filegroup {
    name: "pw_log_basic_scr_files",
    srcs: [
        "log_basic.cc",
    ],
}
