//
// Copyright (C) 2022 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.

cc_library {
    name: "libnetd_updatable",
    version_script: "libnetd_updatable.map.txt",
    stubs: {
        versions: [
            "1",
        ],
        symbol_file: "libnetd_updatable.map.txt",
    },
    defaults: ["netd_defaults"],
    header_libs: [
        "bpf_connectivity_headers",
        "libcutils_headers",
    ],
    srcs: [
        "BpfHandler.cpp",
        "NetdUpdatable.cpp",
    ],
    static_libs: [
        "libnetdutils",
    ],
    shared_libs: [
        "libbase",
        "liblog",
    ],
    export_include_dirs: ["include"],
    header_abi_checker: {
        enabled: true,
        symbol_file: "libnetd_updatable.map.txt",
    },
    sanitize: {
        cfi: true,
    },
    apex_available: ["com.android.tethering"],
    min_sdk_version: "30",
}

cc_test {
    name: "netd_updatable_unit_test",
    defaults: ["netd_defaults"],
    test_suites: ["general-tests"],
    require_root: true,  // required by setrlimitForTest()
    header_libs: [
        "bpf_connectivity_headers",
    ],
    srcs: [
        "BpfHandlerTest.cpp",
    ],
    static_libs: [
        "libnetd_updatable",
    ],
    shared_libs: [
        "libbase",
        "libcutils",
        "liblog",
        "libnetdutils",
    ],
    multilib: {
        lib32: {
            suffix: "32",
        },
        lib64: {
            suffix: "64",
        },
    },
}
