blob: 462ed6eeef61ff495081aecabd3b304e9074fc6a [file] [log] [blame]
Kevin Lubick1f8c31b2021-11-08 15:26:09 -05001# https://github.com/bazelbuild/bazel-skylib
2load("@bazel_skylib//lib:selects.bzl", "selects")
Kevin Lubick8ed49ea2021-11-11 12:50:02 -05003load("//bazel:macros.bzl", "select_multi")
Kevin Lubickcc9d0cd2021-11-23 14:58:20 -05004load("@bazel_gazelle//:def.bzl", "gazelle")
Kevin Lubick8ed49ea2021-11-11 12:50:02 -05005
6package(default_visibility = ["//:__subpackages__"])
Kevin Lubick1f8c31b2021-11-08 15:26:09 -05007
Kevin Lubickcf1e9592021-11-17 08:05:57 -05008selects.config_setting_group(
9 name = "needs_jpeg",
10 match_any = [
11 "//bazel/common_config_settings:raw_decode_codec",
12 "//bazel/common_config_settings:jpeg_decode_codec",
13 "//bazel/common_config_settings:jpeg_encode_codec",
14 ],
15)
16
17selects.config_setting_group(
18 name = "needs_png",
19 match_any = [
20 "//bazel/common_config_settings:png_decode_codec",
21 "//bazel/common_config_settings:png_encode_codec",
22 ],
23)
24
25selects.config_setting_group(
26 name = "needs_webp",
27 match_any = [
28 "//bazel/common_config_settings:webp_decode_codec",
29 "//bazel/common_config_settings:webp_encode_codec",
30 ],
31)
32
Kevin Lubick888d4ef2021-11-16 14:09:44 -050033selects.config_setting_group(
34 name = "any_freetype_fontmgr",
35 match_any = [
36 "//bazel/common_config_settings:custom_directory_fontmgr",
37 "//bazel/common_config_settings:custom_embedded_fontmgr",
38 "//bazel/common_config_settings:custom_empty_fontmgr",
39 ],
Kevin Lubick8ed49ea2021-11-11 12:50:02 -050040)
41
Kevin Lubick6ba9f702021-11-30 08:15:24 -050042CORE_DEPS = [
43 "//src/android:srcs",
44 "//src/codec:srcs",
45 "//src/core:srcs",
46 "//src/image:srcs",
47 "//src/images:srcs",
48 "//src/effects:srcs",
49 "//src/opts:srcs",
50 "//src/pathops:srcs",
51 "//src/ports:srcs",
52 "//src/sfnt:srcs",
53 "//src/shaders:srcs",
54 "//src/utils:srcs",
55 "//third_party:skcms",
56] + selects.with_or({
57 # https://github.com/bazelbuild/bazel-skylib/blob/main/docs/selects_doc.md#selectswith_or
58 ("//bazel/common_config_settings:gl_backend", "//bazel/common_config_settings:vulkan_backend"): [
59 "//src/gpu:srcs",
60 "//src/sksl:srcs",
61 # TODO(kjlubick) should mock be test only?
62 "//src/gpu:mock_srcs",
63 ],
64 "//conditions:default": [],
65}) + select_multi(
Kevin Lubick8ed49ea2021-11-11 12:50:02 -050066 {
Kevin Lubickcf1e9592021-11-17 08:05:57 -050067 "//bazel/common_config_settings:gif_decode_codec": ["//third_party:wuffs"],
68 ":needs_png": ["//third_party:libpng"],
69 "//bazel/common_config_settings:raw_decode_codec": [
Kevin Lubick8ed49ea2021-11-11 12:50:02 -050070 "//third_party:piex",
71 "//third_party:dng_sdk",
72 ],
Kevin Lubickcf1e9592021-11-17 08:05:57 -050073 ":needs_webp": ["//third_party:libwebp"],
74 ":needs_jpeg": ["//third_party:libjpeg-turbo"],
Kevin Lubick8ed49ea2021-11-11 12:50:02 -050075 },
76 default = [],
Kevin Lubickcf1e9592021-11-17 08:05:57 -050077) + select({
Kevin Lubick888d4ef2021-11-16 14:09:44 -050078 ":any_freetype_fontmgr": [
79 "//third_party:freetype2",
80 ],
81 "//conditions:default": [],
Kevin Lubick1f8c31b2021-11-08 15:26:09 -050082})
83
84cc_library(
Kevin Lubick6ba9f702021-11-30 08:15:24 -050085 name = "skia_core",
Kevin Lubick1f8c31b2021-11-08 15:26:09 -050086 textual_hdrs = ["//src/sksl:txts"],
Kevin Lubick8ed49ea2021-11-11 12:50:02 -050087 deps = CORE_DEPS,
Kevin Lubick1f8c31b2021-11-08 15:26:09 -050088)
89
90cc_library(
91 name = "hash_and_encode",
92 testonly = True,
93 srcs = [
94 "//tools:cmdline",
95 "//tools:hash_and_encode",
96 ],
97 deps = [
98 ":skia-core",
99 "//third_party:libpng",
100 ],
101)
102
103cc_library(
104 name = "gms",
105 testonly = True,
106 srcs = [
107 "//gm:gms",
108 "//gm:srcs",
109 "//tools:srcs",
110 ],
111 hdrs = [
112 "//gm:hdrs",
113 ],
114 textual_hdrs = ["//tools:txts"],
115 deps = [":skia-core"],
116)
117
118cc_library(
119 name = "tests",
120 testonly = True,
121 srcs = [
122 "//tests:srcs",
123 "//tools:srcs",
124 ],
125 hdrs = [
126 "//tests:hdrs",
127 ],
128 local_defines = [
129 "GR_TEST_UTILS",
130 ],
131 textual_hdrs = ["//tools:txts"],
132 deps = [":skia-core"],
133)
Kevin Lubickcc9d0cd2021-11-23 14:58:20 -0500134
135# gazelle:prefix go.skia.org/skia
136gazelle(name = "gazelle")