/*
 * Copyright (C) 2024 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 {
    // See: http://go/android-license-faq
    default_applicable_licenses: ["hardware_google_gfxstream_license"],
}

cc_library_static {
    name: "libmagma_android",
    vendor: true,
    header_libs: [
        "libmagma_enc_headers",
        "libmagma_headers",
        "libgfxstream_guest_iostream",
    ],
    shared_libs: [
        "libdrm",
        "liblog",
        "libOpenglCodecCommon",
    ],
    static_libs: [
        "libplatform",
        "libgfxstream_guest_android",
        "libGoldfishAddressSpace",
        "libgfxstream_androidemu_static",
    ],
    srcs: [
        "magma.cpp",
        "magma_enc_util.cpp",
        "magma_enc/magma_enc.cpp",
        "magma_enc/magma_entry.cpp",
        "magma_enc/magma_stubs.cpp",
        "magma_enc/magma_client_context.cpp",
    ],
    cflags: [
        "-Wno-misleading-indentation",
        "-Wno-unused-function",
        "-Wno-unused-parameter",
    ],
}
