//
// Copyright (C) 2018 The Android Open Source Project
//
// 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
//
//      http://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: ["Android-Apache-2.0"],
}

cc_library {
    name: "libcuttlefish_utils",
    srcs: [
        "archive.cpp",
        "base64.cpp",
        "environment.cpp",
        "files.cpp",
        "flag_parser.cpp",
        "flags_validator.cpp",
        "inotify.cpp",
        "json.cpp",
        "network.cpp",
        "proc_file_utils.cpp",
        "scope_guard.cpp",
        "shared_fd_flag.cpp",
        "socket2socket_proxy.cpp",
        "subprocess.cpp",
        "tcp_socket.cpp",
        "tee_logging.cpp",
        "unix_sockets.cpp",
        "users.cpp",
        "vsock_connection.cpp",
    ],
    shared: {
        shared_libs: [
            "libbase",
            "libcuttlefish_fs",
            "libcrypto",
            "libjsoncpp",
        ],
    },
    static: {
        static_libs: [
            "libbase",
            "libcuttlefish_fs",
            "libjsoncpp",
        ],
        shared_libs: [
          "libcrypto", // libcrypto_static is not accessible from all targets
        ],
    },
    defaults: ["cuttlefish_host"],
}

cc_library_static {
    name: "libcuttlefish_utils_product",
    srcs: [
        "inotify.cpp",
    ],
    shared_libs: [
        "libbase",
        "liblog",
    ],
    stl: "libc++_static",
    defaults: ["cuttlefish_guest_product_only"],
}

cc_test_host {
    name: "libcuttlefish_utils_test",
    srcs: [
        "flag_parser_test.cpp",
        "proc_file_utils_test.cpp",
        "result_test.cpp",
        "unique_resource_allocator_test.cpp",
        "unix_sockets_test.cpp",
    ],
    static_libs: [
        "libbase",
        "libcuttlefish_fs",
        "libcuttlefish_utils",
        "libgmock",
    ],
    shared_libs: [
        "libcrypto",
        "liblog",
        "libxml2",
    ],
    test_options: {
        unit_test: true,
    },
    defaults: ["cuttlefish_host"],
}

cc_library {
    name: "libvsock_utils",
    srcs: ["vsock_connection.cpp"],
    shared_libs: ["libbase", "libcuttlefish_fs", "liblog", "libjsoncpp"],
    defaults: ["cuttlefish_guest_only"],
    include_dirs: ["device/google/cuttlefish"],
    export_include_dirs: ["."],
}
