xref: /aosp_15_r20/external/angle/third_party/clspv/BUILD.gn (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Workerimport("//build_overrides/clspv.gni")
2*8975f5c5SAndroid Build Coastguard Workerimport("//build_overrides/spirv_tools.gni")
3*8975f5c5SAndroid Build Coastguard Worker
4*8975f5c5SAndroid Build Coastguard Workerdeclare_args() {
5*8975f5c5SAndroid Build Coastguard Worker  # spirv namespace
6*8975f5c5SAndroid Build Coastguard Worker  spirv_namespace_strings = "spv"
7*8975f5c5SAndroid Build Coastguard Worker  spirv_namespace_glsl = "glsl"
8*8975f5c5SAndroid Build Coastguard Worker  spirv_namespace_reflection = "reflection"
9*8975f5c5SAndroid Build Coastguard Worker
10*8975f5c5SAndroid Build Coastguard Worker  # bake file variable names
11*8975f5c5SAndroid Build Coastguard Worker  clspv_bake_file_data_variable_name = "clspv_builtins_header_data"
12*8975f5c5SAndroid Build Coastguard Worker  clspv_bake_file_size_variable_name = "clspv_builtins_header_size"
13*8975f5c5SAndroid Build Coastguard Worker  clspv_bake_file_data_base_variable_name = "opencl_base_builtins_header_data"
14*8975f5c5SAndroid Build Coastguard Worker  clspv_bake_file_size_base_variable_name = "opencl_base_builtins_header_size"
15*8975f5c5SAndroid Build Coastguard Worker
16*8975f5c5SAndroid Build Coastguard Worker  # clspv builtin library variable names
17*8975f5c5SAndroid Build Coastguard Worker  clspv_library_data_var_name = "clspv_builtin_library_data"
18*8975f5c5SAndroid Build Coastguard Worker  clspv_library_size_var_name = "clspv_builtin_library_size"
19*8975f5c5SAndroid Build Coastguard Worker  clspv64_library_data_var_name = "clspv64_builtin_library_data"
20*8975f5c5SAndroid Build Coastguard Worker  clspv64_library_size_var_name = "clspv64_builtin_library_size"
21*8975f5c5SAndroid Build Coastguard Worker}
22*8975f5c5SAndroid Build Coastguard Worker
23*8975f5c5SAndroid Build Coastguard Worker# Action scripts to generate headers
24*8975f5c5SAndroid Build Coastguard Workeraction("clspv_c_strings") {
25*8975f5c5SAndroid Build Coastguard Worker  script = "src/cmake/spirv_c_strings.py"
26*8975f5c5SAndroid Build Coastguard Worker
27*8975f5c5SAndroid Build Coastguard Worker  inputs =
28*8975f5c5SAndroid Build Coastguard Worker      [ "${spirv_tools_spirv_headers_dir}/include/spirv/unified1/spirv.hpp" ]
29*8975f5c5SAndroid Build Coastguard Worker
30*8975f5c5SAndroid Build Coastguard Worker  outputs = [ "$target_gen_dir/clspv/spirv_c_strings.hpp" ]
31*8975f5c5SAndroid Build Coastguard Worker
32*8975f5c5SAndroid Build Coastguard Worker  args = [
33*8975f5c5SAndroid Build Coastguard Worker    "--input-file=" + rebase_path(inputs[0], root_build_dir),
34*8975f5c5SAndroid Build Coastguard Worker    "--output-file=" + rebase_path(outputs[0], root_build_dir),
35*8975f5c5SAndroid Build Coastguard Worker    "--namespace=" + spirv_namespace_strings,
36*8975f5c5SAndroid Build Coastguard Worker  ]
37*8975f5c5SAndroid Build Coastguard Worker}
38*8975f5c5SAndroid Build Coastguard Worker
39*8975f5c5SAndroid Build Coastguard Workeraction("clspv_glsl") {
40*8975f5c5SAndroid Build Coastguard Worker  script = "src/cmake/spirv_ext_inst.py"
41*8975f5c5SAndroid Build Coastguard Worker
42*8975f5c5SAndroid Build Coastguard Worker  inputs = [ "${spirv_tools_spirv_headers_dir}/include/spirv/unified1/extinst.glsl.std.450.grammar.json" ]
43*8975f5c5SAndroid Build Coastguard Worker
44*8975f5c5SAndroid Build Coastguard Worker  outputs = [ "$target_gen_dir/clspv/spirv_glsl.hpp" ]
45*8975f5c5SAndroid Build Coastguard Worker
46*8975f5c5SAndroid Build Coastguard Worker  args = [
47*8975f5c5SAndroid Build Coastguard Worker    "--input-file=" + rebase_path(inputs[0], root_build_dir),
48*8975f5c5SAndroid Build Coastguard Worker    "--output-file=" + rebase_path(outputs[0], root_build_dir),
49*8975f5c5SAndroid Build Coastguard Worker    "--namespace=" + spirv_namespace_glsl,
50*8975f5c5SAndroid Build Coastguard Worker  ]
51*8975f5c5SAndroid Build Coastguard Worker}
52*8975f5c5SAndroid Build Coastguard Worker
53*8975f5c5SAndroid Build Coastguard Workeraction("clspv_reflection") {
54*8975f5c5SAndroid Build Coastguard Worker  script = "src/cmake/spirv_ext_inst.py"
55*8975f5c5SAndroid Build Coastguard Worker
56*8975f5c5SAndroid Build Coastguard Worker  inputs = [ "${spirv_tools_spirv_headers_dir}/include/spirv/unified1/extinst.nonsemantic.clspvreflection.grammar.json" ]
57*8975f5c5SAndroid Build Coastguard Worker
58*8975f5c5SAndroid Build Coastguard Worker  outputs = [ "$target_gen_dir/clspv/spirv_reflection.hpp" ]
59*8975f5c5SAndroid Build Coastguard Worker
60*8975f5c5SAndroid Build Coastguard Worker  args = [
61*8975f5c5SAndroid Build Coastguard Worker    "--input-file=" + rebase_path(inputs[0], root_build_dir),
62*8975f5c5SAndroid Build Coastguard Worker    "--output-file=" + rebase_path(outputs[0], root_build_dir),
63*8975f5c5SAndroid Build Coastguard Worker    "--namespace=" + spirv_namespace_reflection,
64*8975f5c5SAndroid Build Coastguard Worker  ]
65*8975f5c5SAndroid Build Coastguard Worker}
66*8975f5c5SAndroid Build Coastguard Worker
67*8975f5c5SAndroid Build Coastguard Workeraction("clspv-builtins") {
68*8975f5c5SAndroid Build Coastguard Worker  script = "src/cmake/define_clspv_builtins.py"
69*8975f5c5SAndroid Build Coastguard Worker
70*8975f5c5SAndroid Build Coastguard Worker  outputs = [ "$target_gen_dir/clspv-builtins.h" ]
71*8975f5c5SAndroid Build Coastguard Worker
72*8975f5c5SAndroid Build Coastguard Worker  args = [ "--output-file=" + rebase_path(outputs[0], root_build_dir) ]
73*8975f5c5SAndroid Build Coastguard Worker}
74*8975f5c5SAndroid Build Coastguard Worker
75*8975f5c5SAndroid Build Coastguard Worker# The *.bc files are prebuilt binaries in the clspv. If these need to be regenerated, please refer
76*8975f5c5SAndroid Build Coastguard Worker# to the clspv README.md file for instructions.
77*8975f5c5SAndroid Build Coastguard Workeraction("clspv_builtin_library") {
78*8975f5c5SAndroid Build Coastguard Worker  script = "src/cmake/bake_file.py"
79*8975f5c5SAndroid Build Coastguard Worker  inputs = [ "src/cmake/clspv--.bc" ]
80*8975f5c5SAndroid Build Coastguard Worker  outputs = [ "$target_gen_dir/clspv/clspv_builtin_library.h" ]
81*8975f5c5SAndroid Build Coastguard Worker
82*8975f5c5SAndroid Build Coastguard Worker  args = [
83*8975f5c5SAndroid Build Coastguard Worker    "--input-header-file=" + rebase_path(inputs[0], root_build_dir),
84*8975f5c5SAndroid Build Coastguard Worker    "--output-file=" + rebase_path(outputs[0], root_build_dir),
85*8975f5c5SAndroid Build Coastguard Worker    "--header-var=" + clspv_library_data_var_name,
86*8975f5c5SAndroid Build Coastguard Worker    "--header-size=" + clspv_library_size_var_name,
87*8975f5c5SAndroid Build Coastguard Worker  ]
88*8975f5c5SAndroid Build Coastguard Worker}
89*8975f5c5SAndroid Build Coastguard Worker
90*8975f5c5SAndroid Build Coastguard Workeraction("clspv64_builtin_library") {
91*8975f5c5SAndroid Build Coastguard Worker  script = "src/cmake/bake_file.py"
92*8975f5c5SAndroid Build Coastguard Worker  inputs = [ "src/cmake/clspv64--.bc" ]
93*8975f5c5SAndroid Build Coastguard Worker  outputs = [ "$target_gen_dir/clspv/clspv64_builtin_library.h" ]
94*8975f5c5SAndroid Build Coastguard Worker
95*8975f5c5SAndroid Build Coastguard Worker  args = [
96*8975f5c5SAndroid Build Coastguard Worker    "--input-header-file=" + rebase_path(inputs[0], root_build_dir),
97*8975f5c5SAndroid Build Coastguard Worker    "--output-file=" + rebase_path(outputs[0], root_build_dir),
98*8975f5c5SAndroid Build Coastguard Worker    "--header-var=" + clspv64_library_data_var_name,
99*8975f5c5SAndroid Build Coastguard Worker    "--header-size=" + clspv64_library_size_var_name,
100*8975f5c5SAndroid Build Coastguard Worker  ]
101*8975f5c5SAndroid Build Coastguard Worker}
102*8975f5c5SAndroid Build Coastguard Worker
103*8975f5c5SAndroid Build Coastguard Workeraction("clspv_baked_opencl_header") {
104*8975f5c5SAndroid Build Coastguard Worker  script =
105*8975f5c5SAndroid Build Coastguard Worker      "src/cmake/bake_file.py"  # cannot use data_deps as that's a rutime dep
106*8975f5c5SAndroid Build Coastguard Worker  deps = [ ":clspv-builtins" ]
107*8975f5c5SAndroid Build Coastguard Worker
108*8975f5c5SAndroid Build Coastguard Worker  inputs = [
109*8975f5c5SAndroid Build Coastguard Worker    "$target_gen_dir/clspv-builtins.h",
110*8975f5c5SAndroid Build Coastguard Worker    "//$clspv_llvm_dir/clang/lib/Headers/opencl-c-base.h",
111*8975f5c5SAndroid Build Coastguard Worker  ]
112*8975f5c5SAndroid Build Coastguard Worker
113*8975f5c5SAndroid Build Coastguard Worker  outputs = [ "$target_gen_dir/clspv/opencl_builtins_header.h" ]
114*8975f5c5SAndroid Build Coastguard Worker
115*8975f5c5SAndroid Build Coastguard Worker  args = [
116*8975f5c5SAndroid Build Coastguard Worker    "--input-header-file=" + rebase_path(inputs[0], root_build_dir),
117*8975f5c5SAndroid Build Coastguard Worker    "--input-base-file=" + rebase_path(inputs[1], root_build_dir),
118*8975f5c5SAndroid Build Coastguard Worker    "--output-file=" + rebase_path(outputs[0], root_build_dir),
119*8975f5c5SAndroid Build Coastguard Worker    "--header-var=" + clspv_bake_file_data_variable_name,
120*8975f5c5SAndroid Build Coastguard Worker    "--header-size-var=" + clspv_bake_file_size_variable_name,
121*8975f5c5SAndroid Build Coastguard Worker    "--base-var=" + clspv_bake_file_data_base_variable_name,
122*8975f5c5SAndroid Build Coastguard Worker    "--base-size-var=" + clspv_bake_file_size_base_variable_name,
123*8975f5c5SAndroid Build Coastguard Worker  ]
124*8975f5c5SAndroid Build Coastguard Worker}
125*8975f5c5SAndroid Build Coastguard Worker
126*8975f5c5SAndroid Build Coastguard Worker# CLSPV Lib Targets
127*8975f5c5SAndroid Build Coastguard Worker# a common config that will be used by all the clspv targets
128*8975f5c5SAndroid Build Coastguard Workerconfig("clspv_common_config") {
129*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [
130*8975f5c5SAndroid Build Coastguard Worker    "src/include",
131*8975f5c5SAndroid Build Coastguard Worker    "${spirv_tools_spirv_headers_dir}/include",
132*8975f5c5SAndroid Build Coastguard Worker    "$root_gen_dir",
133*8975f5c5SAndroid Build Coastguard Worker    "$target_gen_dir/../",
134*8975f5c5SAndroid Build Coastguard Worker  ]
135*8975f5c5SAndroid Build Coastguard Worker  if (current_os != "win") {
136*8975f5c5SAndroid Build Coastguard Worker    cflags = [ "-Wno-deprecated-declarations" ]
137*8975f5c5SAndroid Build Coastguard Worker  }
138*8975f5c5SAndroid Build Coastguard Worker}
139*8975f5c5SAndroid Build Coastguard Worker
140*8975f5c5SAndroid Build Coastguard Workersource_set("clspv_passes") {
141*8975f5c5SAndroid Build Coastguard Worker  sources = [
142*8975f5c5SAndroid Build Coastguard Worker    "src/lib/AddFunctionAttributesPass.cpp",
143*8975f5c5SAndroid Build Coastguard Worker    "src/lib/AllocateDescriptorsPass.cpp",
144*8975f5c5SAndroid Build Coastguard Worker    "src/lib/AnnotationToMetadataPass.cpp",
145*8975f5c5SAndroid Build Coastguard Worker    "src/lib/ArgKind.cpp",
146*8975f5c5SAndroid Build Coastguard Worker    "src/lib/AutoPodArgsPass.cpp",
147*8975f5c5SAndroid Build Coastguard Worker    "src/lib/BitcastUtils.cpp",
148*8975f5c5SAndroid Build Coastguard Worker    "src/lib/Builtins.cpp",
149*8975f5c5SAndroid Build Coastguard Worker    "src/lib/CallGraphOrderedFunctions.cpp",
150*8975f5c5SAndroid Build Coastguard Worker    "src/lib/ClusterConstants.cpp",
151*8975f5c5SAndroid Build Coastguard Worker    "src/lib/ClusterPodKernelArgumentsPass.cpp",
152*8975f5c5SAndroid Build Coastguard Worker    "src/lib/ComputeStructuredOrder.cpp",
153*8975f5c5SAndroid Build Coastguard Worker    "src/lib/ConstantEmitter.cpp",
154*8975f5c5SAndroid Build Coastguard Worker    "src/lib/Constants.cpp",
155*8975f5c5SAndroid Build Coastguard Worker    "src/lib/DeclarePushConstantsPass.cpp",
156*8975f5c5SAndroid Build Coastguard Worker    "src/lib/DefineOpenCLWorkItemBuiltinsPass.cpp",
157*8975f5c5SAndroid Build Coastguard Worker    "src/lib/DescriptorCounter.cpp",
158*8975f5c5SAndroid Build Coastguard Worker    "src/lib/DirectResourceAccessPass.cpp",
159*8975f5c5SAndroid Build Coastguard Worker    "src/lib/FeatureMacro.cpp",
160*8975f5c5SAndroid Build Coastguard Worker    "src/lib/FixupBuiltinsPass.cpp",
161*8975f5c5SAndroid Build Coastguard Worker    "src/lib/FixupStructuredCFGPass.cpp",
162*8975f5c5SAndroid Build Coastguard Worker    "src/lib/FunctionInternalizerPass.cpp",
163*8975f5c5SAndroid Build Coastguard Worker    "src/lib/HideConstantLoadsPass.cpp",
164*8975f5c5SAndroid Build Coastguard Worker    "src/lib/InlineEntryPointsPass.cpp",
165*8975f5c5SAndroid Build Coastguard Worker    "src/lib/InlineFuncWithImageMetadataGetterPass.cpp",
166*8975f5c5SAndroid Build Coastguard Worker    "src/lib/InlineFuncWithPointerBitCastArgPass.cpp",
167*8975f5c5SAndroid Build Coastguard Worker    "src/lib/InlineFuncWithPointerToFunctionArgPass.cpp",
168*8975f5c5SAndroid Build Coastguard Worker    "src/lib/InlineFuncWithReadImage3DNonLiteralSampler.cpp",
169*8975f5c5SAndroid Build Coastguard Worker    "src/lib/InlineFuncWithSingleCallSitePass.cpp",
170*8975f5c5SAndroid Build Coastguard Worker    "src/lib/KernelArgNamesToMetadataPass.cpp",
171*8975f5c5SAndroid Build Coastguard Worker    "src/lib/Layout.cpp",
172*8975f5c5SAndroid Build Coastguard Worker    "src/lib/LogicalPointerToIntPass.cpp",
173*8975f5c5SAndroid Build Coastguard Worker    "src/lib/LongVectorLoweringPass.cpp",
174*8975f5c5SAndroid Build Coastguard Worker    "src/lib/LowerAddrSpaceCastPass.cpp",
175*8975f5c5SAndroid Build Coastguard Worker    "src/lib/LowerPrivatePointerPHIPass.cpp",
176*8975f5c5SAndroid Build Coastguard Worker    "src/lib/MultiVersionUBOFunctionsPass.cpp",
177*8975f5c5SAndroid Build Coastguard Worker    "src/lib/NativeMathPass.cpp",
178*8975f5c5SAndroid Build Coastguard Worker    "src/lib/NormalizeGlobalVariable.cpp",
179*8975f5c5SAndroid Build Coastguard Worker    "src/lib/OpenCLInlinerPass.cpp",
180*8975f5c5SAndroid Build Coastguard Worker    "src/lib/Option.cpp",
181*8975f5c5SAndroid Build Coastguard Worker    "src/lib/Passes.cpp",
182*8975f5c5SAndroid Build Coastguard Worker    "src/lib/PhysicalPointerArgsPass.cpp",
183*8975f5c5SAndroid Build Coastguard Worker    "src/lib/PrintfPass.cpp",
184*8975f5c5SAndroid Build Coastguard Worker    "src/lib/PushConstant.cpp",
185*8975f5c5SAndroid Build Coastguard Worker    "src/lib/RemoveUnusedArguments.cpp",
186*8975f5c5SAndroid Build Coastguard Worker    "src/lib/ReorderBasicBlocksPass.cpp",
187*8975f5c5SAndroid Build Coastguard Worker    "src/lib/ReplaceLLVMIntrinsicsPass.cpp",
188*8975f5c5SAndroid Build Coastguard Worker    "src/lib/ReplaceOpenCLBuiltinPass.cpp",
189*8975f5c5SAndroid Build Coastguard Worker    "src/lib/ReplacePointerBitcastPass.cpp",
190*8975f5c5SAndroid Build Coastguard Worker    "src/lib/RewriteInsertsPass.cpp",
191*8975f5c5SAndroid Build Coastguard Worker    "src/lib/RewritePackedStructs.cpp",
192*8975f5c5SAndroid Build Coastguard Worker    "src/lib/SPIRVOp.cpp",
193*8975f5c5SAndroid Build Coastguard Worker    "src/lib/SPIRVProducerPass.cpp",
194*8975f5c5SAndroid Build Coastguard Worker    "src/lib/SamplerUtils.cpp",
195*8975f5c5SAndroid Build Coastguard Worker    "src/lib/ScalarizePass.cpp",
196*8975f5c5SAndroid Build Coastguard Worker    "src/lib/SetImageMetadataPass.cpp",
197*8975f5c5SAndroid Build Coastguard Worker    "src/lib/ShareModuleScopeVariables.cpp",
198*8975f5c5SAndroid Build Coastguard Worker    "src/lib/SignedCompareFixupPass.cpp",
199*8975f5c5SAndroid Build Coastguard Worker    "src/lib/SimplifyPointerBitcastPass.cpp",
200*8975f5c5SAndroid Build Coastguard Worker    "src/lib/SpecConstant.cpp",
201*8975f5c5SAndroid Build Coastguard Worker    "src/lib/SpecializeImageTypes.cpp",
202*8975f5c5SAndroid Build Coastguard Worker    "src/lib/SplatArgPass.cpp",
203*8975f5c5SAndroid Build Coastguard Worker    "src/lib/SplatSelectCondition.cpp",
204*8975f5c5SAndroid Build Coastguard Worker    "src/lib/StripFreezePass.cpp",
205*8975f5c5SAndroid Build Coastguard Worker    "src/lib/ThreeElementVectorLoweringPass.cpp",
206*8975f5c5SAndroid Build Coastguard Worker    "src/lib/Types.cpp",
207*8975f5c5SAndroid Build Coastguard Worker    "src/lib/UBOTypeTransformPass.cpp",
208*8975f5c5SAndroid Build Coastguard Worker    "src/lib/UndoBoolPass.cpp",
209*8975f5c5SAndroid Build Coastguard Worker    "src/lib/UndoByvalPass.cpp",
210*8975f5c5SAndroid Build Coastguard Worker    "src/lib/UndoGetElementPtrConstantExprPass.cpp",
211*8975f5c5SAndroid Build Coastguard Worker    "src/lib/UndoInstCombinePass.cpp",
212*8975f5c5SAndroid Build Coastguard Worker    "src/lib/UndoSRetPass.cpp",
213*8975f5c5SAndroid Build Coastguard Worker    "src/lib/UndoTranslateSamplerFoldPass.cpp",
214*8975f5c5SAndroid Build Coastguard Worker    "src/lib/UndoTruncateToOddIntegerPass.cpp",
215*8975f5c5SAndroid Build Coastguard Worker    "src/lib/WrapKernelPass.cpp",
216*8975f5c5SAndroid Build Coastguard Worker    "src/lib/ZeroInitializeAllocasPass.cpp",
217*8975f5c5SAndroid Build Coastguard Worker  ]
218*8975f5c5SAndroid Build Coastguard Worker
219*8975f5c5SAndroid Build Coastguard Worker  deps = [
220*8975f5c5SAndroid Build Coastguard Worker    ":clspv_c_strings",
221*8975f5c5SAndroid Build Coastguard Worker    ":clspv_glsl",
222*8975f5c5SAndroid Build Coastguard Worker    ":clspv_reflection",
223*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/config:llvm-config",
224*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_llvm_components",
225*8975f5c5SAndroid Build Coastguard Worker    "//third_party/spirv-headers/src:spv_headers",
226*8975f5c5SAndroid Build Coastguard Worker  ]
227*8975f5c5SAndroid Build Coastguard Worker
228*8975f5c5SAndroid Build Coastguard Worker  configs += [
229*8975f5c5SAndroid Build Coastguard Worker    ":clspv_common_config",
230*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_llvm_private_config",
231*8975f5c5SAndroid Build Coastguard Worker  ]
232*8975f5c5SAndroid Build Coastguard Worker
233*8975f5c5SAndroid Build Coastguard Worker  configs += clspv_configs_to_append
234*8975f5c5SAndroid Build Coastguard Worker  configs -= clspv_configs_to_remove
235*8975f5c5SAndroid Build Coastguard Worker
236*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [ "$root_gen_dir/$clspv_llvm_dir" ]
237*8975f5c5SAndroid Build Coastguard Worker}
238*8975f5c5SAndroid Build Coastguard Worker
239*8975f5c5SAndroid Build Coastguard Workerstatic_library("clspv_core") {
240*8975f5c5SAndroid Build Coastguard Worker  configs += [ ":clspv_common_config" ]
241*8975f5c5SAndroid Build Coastguard Worker  configs += clspv_configs_to_append
242*8975f5c5SAndroid Build Coastguard Worker  configs -= clspv_configs_to_remove
243*8975f5c5SAndroid Build Coastguard Worker  deps = [
244*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_clang_lib_ast",
245*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_clang_lib_basic",
246*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_clang_lib_codegen",
247*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_clang_lib_frontend",
248*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_clang_lib_serialization",
249*8975f5c5SAndroid Build Coastguard Worker
250*8975f5c5SAndroid Build Coastguard Worker    # llvm/clang
251*8975f5c5SAndroid Build Coastguard Worker    ":clspv64_builtin_library",
252*8975f5c5SAndroid Build Coastguard Worker    ":clspv_baked_opencl_header",
253*8975f5c5SAndroid Build Coastguard Worker    ":clspv_builtin_library",
254*8975f5c5SAndroid Build Coastguard Worker    ":clspv_passes",
255*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_llvm_components",
256*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_llvm_lib_irreader",
257*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_llvm_lib_linker",
258*8975f5c5SAndroid Build Coastguard Worker  ]
259*8975f5c5SAndroid Build Coastguard Worker  sources = [
260*8975f5c5SAndroid Build Coastguard Worker    "src/lib/Compiler.cpp",
261*8975f5c5SAndroid Build Coastguard Worker    "src/lib/FrontendPlugin.cpp",
262*8975f5c5SAndroid Build Coastguard Worker    "src/lib/Sampler.cpp",
263*8975f5c5SAndroid Build Coastguard Worker  ]
264*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [
265*8975f5c5SAndroid Build Coastguard Worker    "//$clspv_llvm_dir/clang/include",
266*8975f5c5SAndroid Build Coastguard Worker    "//$clspv_llvm_dir/llvm/include",
267*8975f5c5SAndroid Build Coastguard Worker    "$root_gen_dir/$clspv_llvm_dir/",
268*8975f5c5SAndroid Build Coastguard Worker    "$target_gen_dir",
269*8975f5c5SAndroid Build Coastguard Worker    "$root_gen_dir/$clspv_llvm_dir/clang/include",
270*8975f5c5SAndroid Build Coastguard Worker  ]
271*8975f5c5SAndroid Build Coastguard Worker}
272*8975f5c5SAndroid Build Coastguard Worker
273*8975f5c5SAndroid Build Coastguard Workershared_library("clspv_core_shared") {
274*8975f5c5SAndroid Build Coastguard Worker  configs += [ ":clspv_common_config" ]
275*8975f5c5SAndroid Build Coastguard Worker  configs += clspv_configs_to_append
276*8975f5c5SAndroid Build Coastguard Worker  configs -= clspv_configs_to_remove
277*8975f5c5SAndroid Build Coastguard Worker
278*8975f5c5SAndroid Build Coastguard Worker  if (is_android) {
279*8975f5c5SAndroid Build Coastguard Worker    # Removing this config, otherwise clspv API will not be visable
280*8975f5c5SAndroid Build Coastguard Worker    configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
281*8975f5c5SAndroid Build Coastguard Worker  }
282*8975f5c5SAndroid Build Coastguard Worker
283*8975f5c5SAndroid Build Coastguard Worker  deps = [
284*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_clang_lib_ast",
285*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_clang_lib_basic",
286*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_clang_lib_codegen",
287*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_clang_lib_frontend",
288*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_clang_lib_serialization",
289*8975f5c5SAndroid Build Coastguard Worker
290*8975f5c5SAndroid Build Coastguard Worker    # llvm/clang
291*8975f5c5SAndroid Build Coastguard Worker    ":clspv64_builtin_library",
292*8975f5c5SAndroid Build Coastguard Worker    ":clspv_baked_opencl_header",
293*8975f5c5SAndroid Build Coastguard Worker    ":clspv_builtin_library",
294*8975f5c5SAndroid Build Coastguard Worker    ":clspv_passes",
295*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_llvm_components",
296*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_llvm_lib_irreader",
297*8975f5c5SAndroid Build Coastguard Worker    "gn/llvm/sources:clspv_llvm_lib_linker",
298*8975f5c5SAndroid Build Coastguard Worker  ]
299*8975f5c5SAndroid Build Coastguard Worker  sources = [
300*8975f5c5SAndroid Build Coastguard Worker    "src/lib/Compiler.cpp",
301*8975f5c5SAndroid Build Coastguard Worker    "src/lib/FrontendPlugin.cpp",
302*8975f5c5SAndroid Build Coastguard Worker    "src/lib/Sampler.cpp",
303*8975f5c5SAndroid Build Coastguard Worker  ]
304*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [
305*8975f5c5SAndroid Build Coastguard Worker    "//$clspv_llvm_dir/clang/include",
306*8975f5c5SAndroid Build Coastguard Worker    "//$clspv_llvm_dir/llvm/include",
307*8975f5c5SAndroid Build Coastguard Worker    "$root_gen_dir/$clspv_llvm_dir/",
308*8975f5c5SAndroid Build Coastguard Worker    "$target_gen_dir",
309*8975f5c5SAndroid Build Coastguard Worker    "$root_gen_dir/$clspv_llvm_dir/clang/include",
310*8975f5c5SAndroid Build Coastguard Worker  ]
311*8975f5c5SAndroid Build Coastguard Worker}
312*8975f5c5SAndroid Build Coastguard Worker
313*8975f5c5SAndroid Build Coastguard Worker# CLSPV Tools Targets
314*8975f5c5SAndroid Build Coastguard Workerconfig("clspv_opt_config") {
315*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [
316*8975f5c5SAndroid Build Coastguard Worker    "src/include",
317*8975f5c5SAndroid Build Coastguard Worker    "$clspv_llvm_dir/llvm/tools/opt",
318*8975f5c5SAndroid Build Coastguard Worker    "$root_gen_dir/$clspv_llvm_dir",
319*8975f5c5SAndroid Build Coastguard Worker  ]
320*8975f5c5SAndroid Build Coastguard Worker  configs = [ "gn/build:llvm_code" ]
321*8975f5c5SAndroid Build Coastguard Worker}
322*8975f5c5SAndroid Build Coastguard Worker
323*8975f5c5SAndroid Build Coastguard Workerexecutable("clspv-opt") {
324*8975f5c5SAndroid Build Coastguard Worker  sources = [ "src/tools/clspv-opt/main.cpp" ]
325*8975f5c5SAndroid Build Coastguard Worker
326*8975f5c5SAndroid Build Coastguard Worker  configs += [ ":clspv_opt_config" ]
327*8975f5c5SAndroid Build Coastguard Worker  configs += clspv_configs_to_append
328*8975f5c5SAndroid Build Coastguard Worker  configs -= clspv_configs_to_remove
329*8975f5c5SAndroid Build Coastguard Worker
330*8975f5c5SAndroid Build Coastguard Worker  deps = [ ":clspv_passes" ]
331*8975f5c5SAndroid Build Coastguard Worker}
332*8975f5c5SAndroid Build Coastguard Worker
333*8975f5c5SAndroid Build Coastguard Workerexecutable("clspv") {
334*8975f5c5SAndroid Build Coastguard Worker  sources = [ "src/tools/driver/main.cpp" ]
335*8975f5c5SAndroid Build Coastguard Worker
336*8975f5c5SAndroid Build Coastguard Worker  configs += [ ":clspv_common_config" ]
337*8975f5c5SAndroid Build Coastguard Worker  configs += clspv_configs_to_append
338*8975f5c5SAndroid Build Coastguard Worker  configs -= clspv_configs_to_remove
339*8975f5c5SAndroid Build Coastguard Worker
340*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [
341*8975f5c5SAndroid Build Coastguard Worker    "$target_gen_dir",
342*8975f5c5SAndroid Build Coastguard Worker    "$root_gen_dir/$clspv_llvm_dir",
343*8975f5c5SAndroid Build Coastguard Worker  ]
344*8975f5c5SAndroid Build Coastguard Worker
345*8975f5c5SAndroid Build Coastguard Worker  deps = [ ":clspv_core" ]
346*8975f5c5SAndroid Build Coastguard Worker}
347*8975f5c5SAndroid Build Coastguard Worker
348*8975f5c5SAndroid Build Coastguard Workerexecutable("clspv-reflection") {
349*8975f5c5SAndroid Build Coastguard Worker  sources = [
350*8975f5c5SAndroid Build Coastguard Worker    "src/tools/reflection/ReflectionParser.cpp",
351*8975f5c5SAndroid Build Coastguard Worker    "src/tools/reflection/main.cpp",
352*8975f5c5SAndroid Build Coastguard Worker  ]
353*8975f5c5SAndroid Build Coastguard Worker
354*8975f5c5SAndroid Build Coastguard Worker  configs += [ ":clspv_common_config" ]
355*8975f5c5SAndroid Build Coastguard Worker  configs += clspv_configs_to_append
356*8975f5c5SAndroid Build Coastguard Worker  configs -= clspv_configs_to_remove
357*8975f5c5SAndroid Build Coastguard Worker
358*8975f5c5SAndroid Build Coastguard Worker  deps = [
359*8975f5c5SAndroid Build Coastguard Worker    ":clspv_core",
360*8975f5c5SAndroid Build Coastguard Worker    ":clspv_reflection",
361*8975f5c5SAndroid Build Coastguard Worker    "${spirv_tools_dir}:spvtools_link",
362*8975f5c5SAndroid Build Coastguard Worker    "//third_party/spirv-headers/src:spv_headers",
363*8975f5c5SAndroid Build Coastguard Worker  ]
364*8975f5c5SAndroid Build Coastguard Worker
365*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [
366*8975f5c5SAndroid Build Coastguard Worker    "$spirv_tools_spirv_headers_dir/include",
367*8975f5c5SAndroid Build Coastguard Worker    "$target_gen_dir",
368*8975f5c5SAndroid Build Coastguard Worker  ]
369*8975f5c5SAndroid Build Coastguard Worker}
370*8975f5c5SAndroid Build Coastguard Worker
371*8975f5c5SAndroid Build Coastguard Workergroup("default") {
372*8975f5c5SAndroid Build Coastguard Worker  deps = [
373*8975f5c5SAndroid Build Coastguard Worker    ":clspv",
374*8975f5c5SAndroid Build Coastguard Worker    ":clspv-opt",
375*8975f5c5SAndroid Build Coastguard Worker    ":clspv-reflection",
376*8975f5c5SAndroid Build Coastguard Worker  ]
377*8975f5c5SAndroid Build Coastguard Worker}
378