aboutsummaryrefslogtreecommitdiff
path: root/BUILD.bazel
blob: 8157279b35a5586217ddd683883c06d717f36e70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# https://github.com/bazelbuild/bazel-skylib
load("@bazel_skylib//lib:selects.bzl", "selects")
load("//bazel:macros.bzl", "select_multi")
load("@bazel_gazelle//:def.bzl", "gazelle")

package(default_visibility = ["//:__subpackages__"])

selects.config_setting_group(
    name = "needs_jpeg",
    match_any = [
        "//bazel/common_config_settings:raw_decode_codec",
        "//bazel/common_config_settings:jpeg_decode_codec",
        "//bazel/common_config_settings:jpeg_encode_codec",
    ],
)

selects.config_setting_group(
    name = "needs_png",
    match_any = [
        "//bazel/common_config_settings:png_decode_codec",
        "//bazel/common_config_settings:png_encode_codec",
    ],
)

selects.config_setting_group(
    name = "needs_webp",
    match_any = [
        "//bazel/common_config_settings:webp_decode_codec",
        "//bazel/common_config_settings:webp_encode_codec",
    ],
)

selects.config_setting_group(
    name = "any_freetype_fontmgr",
    match_any = [
        "//bazel/common_config_settings:custom_directory_fontmgr",
        "//bazel/common_config_settings:custom_embedded_fontmgr",
        "//bazel/common_config_settings:custom_empty_fontmgr",
    ],
)

CORE_DEPS = [
    "//src/android:srcs",
    "//src/codec:srcs",
    "//src/core:srcs",
    "//src/image:srcs",
    "//src/images:srcs",
    "//src/effects:srcs",
    "//src/opts:srcs",
    "//src/pathops:srcs",
    "//src/ports:srcs",
    "//src/sfnt:srcs",
    "//src/shaders:srcs",
    "//src/utils:srcs",
    "//third_party:skcms",
] + selects.with_or({
    # https://github.com/bazelbuild/bazel-skylib/blob/main/docs/selects_doc.md#selectswith_or
    ("//bazel/common_config_settings:gl_backend", "//bazel/common_config_settings:vulkan_backend"): [
        "//src/gpu:srcs",
        "//src/sksl:srcs",
        # TODO(kjlubick) should mock be test only?
        "//src/gpu:mock_srcs",
    ],
    "//conditions:default": [],
}) + select_multi(
    {
        "//bazel/common_config_settings:gif_decode_codec": ["//third_party:wuffs"],
        ":needs_png": ["//third_party:libpng"],
        "//bazel/common_config_settings:raw_decode_codec": [
            "//third_party:piex",
            "//third_party:dng_sdk",
        ],
        ":needs_webp": ["//third_party:libwebp"],
        ":needs_jpeg": ["//third_party:libjpeg-turbo"],
    },
    default = [],
) + select({
    ":any_freetype_fontmgr": [
        "//third_party:freetype2",
    ],
    "//conditions:default": [],
})

cc_library(
    name = "skia_core",
    textual_hdrs = ["//src/sksl:txts"],
    deps = CORE_DEPS,
)

# gazelle:prefix go.skia.org/skia
gazelle(name = "gazelle")