• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1load("//bazel:flags.bzl", "bool_flag", "selects")
2load("//bazel:skia_rules.bzl", "exports_files_legacy", "skia_cc_deps", "skia_cc_library", "skia_filegroup", "split_srcs_and_hdrs")
3
4package(
5    default_applicable_licenses = ["//:license"],
6)
7
8licenses(["notice"])
9
10exports_files_legacy()
11
12skia_filegroup(
13    name = "txts",
14    srcs = [
15        "generated/sksl_compute.minified.sksl",
16        "generated/sksl_compute.unoptimized.sksl",
17        "generated/sksl_frag.minified.sksl",
18        "generated/sksl_frag.unoptimized.sksl",
19        "generated/sksl_gpu.minified.sksl",
20        "generated/sksl_gpu.unoptimized.sksl",
21        "generated/sksl_graphite_frag.minified.sksl",
22        "generated/sksl_graphite_frag.unoptimized.sksl",
23        "generated/sksl_graphite_frag_es2.minified.sksl",
24        "generated/sksl_graphite_frag_es2.unoptimized.sksl",
25        "generated/sksl_graphite_vert.minified.sksl",
26        "generated/sksl_graphite_vert.unoptimized.sksl",
27        "generated/sksl_graphite_vert_es2.minified.sksl",
28        "generated/sksl_graphite_vert_es2.unoptimized.sksl",
29        "generated/sksl_public.minified.sksl",
30        "generated/sksl_public.unoptimized.sksl",
31        "generated/sksl_rt_shader.minified.sksl",
32        "generated/sksl_rt_shader.unoptimized.sksl",
33        "generated/sksl_shared.minified.sksl",
34        "generated/sksl_shared.unoptimized.sksl",
35        "generated/sksl_vert.minified.sksl",
36        "generated/sksl_vert.unoptimized.sksl",
37    ],
38)
39
40skia_filegroup(
41    name = "sksl_data",
42    srcs = [
43        "sksl_compute.sksl",
44        "sksl_frag.sksl",
45        "sksl_gpu.sksl",
46        "sksl_graphite_frag.sksl",
47        "sksl_graphite_frag_es2.sksl",
48        "sksl_graphite_vert.sksl",
49        "sksl_graphite_vert_es2.sksl",
50        "sksl_public.sksl",
51        "sksl_rt_shader.sksl",
52        "sksl_shared.sksl",
53        "sksl_vert.sksl",
54    ],
55    visibility = ["//tools/sksl-minify:__pkg__"],
56)
57
58# Two separate groups, for selecting implementation (and for exporting to sksl.gni)
59skia_filegroup(
60    name = "sksl_skslc_module_srcs",
61    srcs = [
62        "SkSLModuleDataFile.cpp",
63    ],
64)
65
66skia_filegroup(
67    name = "sksl_default_module_srcs",
68    srcs = [
69        "SkSLModuleDataDefault.cpp",
70    ],
71)
72
73SKSL_SRCS = [
74    "SkSLAnalysis.cpp",
75    "SkSLAnalysis.h",
76    "SkSLBuiltinTypes.cpp",
77    "SkSLBuiltinTypes.h",
78    "SkSLCompiler.cpp",
79    "SkSLCompiler.h",
80    "SkSLConstantFolder.cpp",
81    "SkSLConstantFolder.h",
82    "SkSLContext.cpp",
83    "SkSLContext.h",
84    "SkSLDefines.h",
85    "SkSLErrorReporter.cpp",
86    "SkSLErrorReporter.h",
87    "SkSLFileOutputStream.h",
88    "SkSLGLSL.h",
89    "SkSLInliner.cpp",
90    "SkSLInliner.h",
91    "SkSLIntrinsicList.cpp",
92    "SkSLIntrinsicList.h",
93    "SkSLLexer.cpp",
94    "SkSLLexer.h",
95    "SkSLMangler.cpp",
96    "SkSLMangler.h",
97    "SkSLMemoryLayout.h",
98    "SkSLMemoryPool.h",
99    "SkSLModuleData.h",
100    "SkSLModuleLoader.cpp",
101    "SkSLModuleLoader.h",
102    "SkSLOperator.cpp",
103    "SkSLOperator.h",
104    "SkSLOutputStream.cpp",
105    "SkSLOutputStream.h",
106    "SkSLParser.cpp",
107    "SkSLParser.h",
108    "SkSLPool.cpp",
109    "SkSLPool.h",
110    "SkSLPosition.cpp",
111    "SkSLPosition.h",
112    "SkSLProgramKind.h",
113    "SkSLProgramSettings.h",
114    "SkSLSampleUsage.cpp",
115    "SkSLString.cpp",
116    "SkSLString.h",
117    "SkSLStringStream.h",
118    "SkSLUtil.cpp",
119    "SkSLUtil.h",
120    "spirv.h",
121]
122
123split_srcs_and_hdrs(
124    name = "sksl",
125    files = SKSL_SRCS,
126)
127
128skia_filegroup(
129    name = "gpu_hdrs",
130    srcs = [
131        "GLSL.std.450.h",
132    ],
133    visibility = ["//src/sksl/codegen:__pkg__"],
134)
135
136# TODO(kjlubick) remove uses of this in G3 and Android and then delete
137bool_flag(
138    name = "enable_sksl_tracing",
139    default = False,
140)
141
142selects.config_setting_group(
143    name = "use_sksl_gpu_srcs",
144    match_any = [
145        "//src/gpu:has_ganesh_backend",
146        ":enable_skslc_true",
147    ],
148    visibility = ["//:__subpackages__"],
149)
150
151bool_flag(
152    name = "enable_skslc",
153    default = False,
154)
155
156skia_filegroup(
157    name = "srcs",
158    srcs = [
159        ":sksl_srcs",
160        "//src/sksl/analysis:srcs",
161        "//src/sksl/codegen:srcs",
162        "//src/sksl/ir:srcs",
163        "//src/sksl/tracing:srcs",
164        "//src/sksl/transform:srcs",
165    ] + select({
166        "//src/sksl:enable_skslc_true": [
167            ":sksl_skslc_module_srcs",
168        ],
169        "//conditions:default": [
170            ":sksl_default_module_srcs",
171        ],
172    }),
173    visibility = ["//src:__pkg__"],
174)
175
176skia_filegroup(
177    name = "private_hdrs",
178    srcs = [
179        ":sksl_hdrs",
180        "//src/sksl/analysis:private_hdrs",
181        "//src/sksl/codegen:private_hdrs",
182        "//src/sksl/ir:private_hdrs",
183        "//src/sksl/tracing:private_hdrs",
184        "//src/sksl/transform:private_hdrs",
185    ] + select({
186        ":use_sksl_gpu_srcs": [":gpu_hdrs"],
187        "//conditions:default": [],
188    }),
189    visibility = ["//src:__pkg__"],
190)
191
192skia_cc_deps(
193    name = "deps",
194    textual_hdrs = [
195        ":txts",
196    ],
197    visibility = ["//src:__pkg__"],
198    deps = [
199        "//src/sksl/codegen:deps",
200    ] + select({
201        "//src/sksl:enable_skslc_true": [
202            "//tools:get_executable_path",
203            "@dawn//:tint",
204            "@dawn//src/tint/lang/wgsl",
205            "@dawn//src/tint/lang/wgsl/reader",
206            "@spirv_tools",
207        ],
208        "//conditions:default": [],
209    }),
210)
211
212skia_filegroup(
213    name = "core_srcs",
214    srcs = [
215        ":sksl_srcs",
216        "//src/sksl/analysis:srcs",
217        "//src/sksl/ir:srcs",
218        "//src/sksl/tracing:core_srcs",
219        "//src/sksl/transform:srcs",
220    ] + select({
221        "//src/sksl:enable_skslc_true": [
222            ":sksl_skslc_module_srcs",
223        ],
224        "//conditions:default": [
225            ":sksl_default_module_srcs",
226        ],
227    }),
228    visibility = ["//src/core:__pkg__"],
229)
230
231skia_filegroup(
232    name = "core_priv_hdrs",
233    srcs = [
234        ":sksl_hdrs",
235        "//src/sksl/analysis:private_hdrs",
236        "//src/sksl/ir:private_hdrs",
237        "//src/sksl/tracing:core_priv_hdrs",
238        "//src/sksl/transform:private_hdrs",
239    ],
240    visibility = ["//src/core:__pkg__"],
241)
242
243skia_cc_library(
244    name = "generated_sksl",
245    textual_hdrs = [":txts"],
246    visibility = ["//src/core:__pkg__"],
247)
248