load("//bazel:macros.bzl", "exports_files_legacy", "select_multi", "skia_cc_deps", "skia_cc_library", "skia_objc_library")
load("//bazel:copts.bzl", "DEFAULT_OBJC_COPTS")

licenses(["notice"])

exports_files_legacy()

skia_cc_library(
    name = "sk_app",
    testonly = True,
    srcs = [
        "Window.cpp",
        "WindowContext.cpp",
        "RasterWindowContext.h",
    ] + select_multi(
        {
            "//src/gpu:dawn_backend": [
                "DawnWindowContext.h",
                "DawnWindowContext.cpp",
            ],
            "//src/gpu:gl_backend": [
                "GLWindowContext.cpp",
                "GLWindowContext.h",
            ],
            "//src/gpu:vulkan_backend": [
                "VulkanWindowContext.h",
                "VulkanWindowContext.cpp",
            ],
        },
    ) + select({
        "@platforms//os:linux": ["//tools/sk_app/unix:srcs"],
        "//conditions:default": [],
        # TODO(kjlubick) add Windows/Mac support
    }),
    hdrs = [
        "Application.h",
        "DisplayParams.h",
        "Window.h",
        "WindowContext.h",
    ],
    visibility = ["//:__subpackages__"],
    deps = [
        "//:skia_internal",
        "//tools/skui",
        "//tools/timer",
    ] + select({
        "@platforms//os:linux": ["//tools/sk_app/unix:deps"],
        "//conditions:default": [],
    }),
)

skia_objc_library(
    name = "sk_app_objc",
    testonly = True,
    srcs = [
        "Window.cpp",
        "WindowContext.cpp",
        "RasterWindowContext.h",
    ] + select_multi(
        {
            # TODO(kjlubick, jmbetancourt) Graphite and Metal backend
            "//src/gpu:dawn_backend": [
                "DawnWindowContext.h",
                "DawnWindowContext.cpp",
            ],
            "//src/gpu:gl_backend": [
                "GLWindowContext.cpp",
                "GLWindowContext.h",
            ],
        },
    ) + select({
        "@platforms//os:macos": ["//tools/sk_app/mac:srcs"],
        "//conditions:default": [],
        # TODO ios support
    }),
    hdrs = [
        "Application.h",
        "DisplayParams.h",
        "Window.h",
        "WindowContext.h",
    ],
    copts = DEFAULT_OBJC_COPTS + [
        "-Wno-deprecated-declarations",
        "-DGL_SILENCE_DEPRECATION",
    ],
    visibility = ["//:__subpackages__"],
    deps = [
        ":platform_deps",
        "//:skia_internal",
        "//tools/skui",
        "//tools/timer",
    ],
)

skia_cc_deps(
    name = "platform_deps",
    testonly = True,
    visibility = ["//visibility:private"],
    deps = select({
        "@platforms//os:macos": ["//tools/sk_app/mac:deps"],
        "//conditions:default": [],
    }),
)
