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